ai-410Đọc toàn bộ đề miễn phí

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

AICơ bản12 phút

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ủ đề

retrievalchunkingentry-ramp

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]].

3 cấp độ gợi ýMở dần khi bạn thật sự cần hỗ trợ.
Phân tích lời giảiGiải thích hướng tư duy và thuật toán.
Code tham khảoDùng để đối chiếu sau khi tự làm.

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.

Nhóm Zalo