Chia văn bản thành các chunk cố định
Trước khi đưa văn bản vào embedding, hệ truy hồi cắt nó thành các chunk có kích thước
Tiến độ của tôi ở bài này
Điểm và code bạn nộp được lưu vào tài khoản sau khi chấm bài.
Đang tải điểm của bạn…
Kiến thức và chủ đề
Kiến thức tiên quyết: python-basics, python-while-loop.
Nội dung đề bài
Mô tả bài toán
Trước khi đưa văn bản vào embedding, hệ truy hồi cắt nó thành các chunk có kích thước cố định, thường cho hai chunk liền nhau chồng lấn vài ký tự để không mất thông tin ở ranh giới. Việc chọn ranh giới chunk ảnh hưởng trực tiếp tới chất lượng truy hồi.
Yêu cầu
Viết hàm chunk_bounds(text, size, overlap=0) trả về danh sách các đoạn [start, end] với start tính từ 0 và end không bao gồm ký tự tại vị trí end.
Quy ước nộp bài
Nộp hàm chunk_bounds trong solution.py. Hệ thống gọi hàm trực tiếp, so danh sách đoạn với kỳ vọng; không đọc stdin và không in ra stdout.
Input
- text: văn bản cần cắt.
- size: số ký tự mỗi chunk, số nguyên dương.
- overlap: số ký tự chồng lấn giữa hai chunk liền nhau, mặc định 0.
Output
Danh sách các cặp [start, end] theo thứ tự; bước nhảy giữa hai chunk là size - overlap, chunk cuối bị cắt còn len(text).
Ràng buộc
- size phải là số nguyên dương; ném ValueError khi size <= 0.
- overlap phải thoả 0 <= overlap < size; ném ValueError nếu không.
- Chỉ tạo chunk có ít nhất một ký tự, không tạo chunk rỗng.
Ví dụ 1
Input
chunk_bounds(text="abcdefghij", size=4, overlap=0)
Output
[[0, 4], [4, 8], [8, 10]]
Ví dụ 2
Input
chunk_bounds(text="abcdefgh", size=4, overlap=0)
Output
[[0, 4], [4, 8]]
Giải thích
Với text = "abcdefghij" (10 ký tự), size = 4 và overlap = 0, ta có [[0, 4], [4, 8], [8, 10]].
Gợi ý và lời giải chỉ mở sau khi bạn bấm Nộp bài. Giáo viên và quản trị viên mở được ngay.
Góp ý & báo lỗi bài tập
Đề bài chưa rõ, test có vấn đề hay bạn có ý tưởng giúp bài tốt hơn? Gửi cho đội ngũ AI Empire nhé — mỗi góp ý đều được đọc.
