Inverted Index Và TF-IDF Retrieval – Từ Đầu
TF(t, d) = count(t, d)|d|, IDF(t) = logN + 1df(t) + 1
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: bm25-retrieval-from-scratch.
Nội dung đề bài
Mục tiêu kiến thức
TF-IDF đánh giá độ quan trọng của từ: TF(t, d) = count(t, d)|d|, IDF(t) = logN + 1df(t) + 1 TF-IDF(t, d) = TF(t, d) × IDF(t)
Yêu cầu
class TFIDFRetriever:
def fit(self, documents: list[str]) -> 'TFIDFRetriever':
# Build vocabulary, compute IDF, build inverted index
pass
def transform(self, documents: list[str]) -> np.ndarray:
# Returns TF-IDF matrix [N_docs, vocab_size]
pass
def search(self, query: str, top_k: int = 5) -> list[tuple[int, float]]:
# Returns [(doc_idx, score), ...] sorted descending
passInput
- Lớp TFIDFRetriever(): Khởi tạo đối tượng với các tham số, trọng số hoặc cấu hình tương ứng.
Output
- Các phương thức của TFIDFRetriever: Trả về kết quả tính toán hoặc cập nhật trạng thái nội bộ của đối tượng.
Ràng buộc
- Thời gian chạy tối đa: 3000ms.
- Giới hạn bộ nhớ: 256MB.
- Dữ liệu đầu vào hợp lệ theo đúng kiểu dữ liệu và miền giá trị được mô tả.
Ví dụ 1
Input
docs = ['the cat sat on the mat', 'the dog ran fast']
ret = TFIDFRetriever()
ret.fit(docs)
Output
<solution.TFIDFRetriever object at 0x0000021F6C810090>
Giải thích
Hàm/lớp được gọi với các tham số mẫu trên và trả về kết quả số học / kích thước tensor tương ứng theo đúng thiết kế.
Ví dụ 2
Input
docs = ['machine learning algorithms', 'cooking recipes pasta', 'deep learning neural networks', 'baking bread']
ret = TFIDFRetriever()
ret.fit(docs)
results = ret.search('learning algorithms', top_k=2)
top_idxs = [r[0] for r in results]
Output
[0, 2]
Giải thích
Hàm/lớp được gọi với các tham số mẫu trên và trả về kết quả số học / kích thước tensor tương ứng theo đúng thiết kế.
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.
