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

Recall@k cho danh sách truy hồi

Recall@k đo xem trong k tài liệu đầu tiên mà hệ truy hồi trả về có bao nhiêu tài

AICơ bản10 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ủ đề

retrievalmetricentry-ramp

Kiến thức tiên quyết: python-basics, python-sets.

Nội dung đề bài

Mô tả bài toán

Recall@k đo xem trong k tài liệu đầu tiên mà hệ truy hồi trả về có bao nhiêu tài liệu thực sự liên quan bị bắt được. Đây là một trong những thước đo đánh giá truy hồi đơn giản và phổ biến nhất.

Yêu cầu

Viết hàm recall_at_k(retrieved, relevant, k) trả về tỉ lệ tài liệu liên quan nằm trong k kết quả đầu của danh sách truy hồi.

Quy ước nộp bài

Nộp hàm recall_at_k trong solution.py. Hệ thống gọi hàm trực tiếp, so giá trị với sai số 1e-6; không đọc stdin và không in ra stdout.

Input

  • retrieved: danh sách mã tài liệu đã truy hồi, xếp theo độ liên quan giảm dần.
  • relevant: danh sách mã tài liệu liên quan thực sự.
  • k: số kết quả đầu cần xét, số nguyên dương.

Output

Một số thực bằng |relevant ∩ retrieved[:k]| / |relevant|, đếm theo tập hợp để không tính trùng khi một tài liệu xuất hiện nhiều lần.

Ràng buộc

  • relevant phải khác rỗng; ném ValueError nếu không có tài liệu liên quan nào.
  • k phải là số nguyên dương; ném ValueError khi k <= 0.
  • Nếu k vượt số phần tử của retrieved thì coi như xét toàn bộ danh sách.

Ví dụ 1

Input

recall_at_k(retrieved=["d1", "d2", "d3", "d4"], relevant=["d2", "d4"], k=2)

Output

0.5

Ví dụ 2

Input

recall_at_k(retrieved=["d1", "d2", "d3", "d4"], relevant=["d2", "d4"], k=4)

Output

1.0

Giải thích

Với retrieved = ["d1", "d2", "d3", "d4"], relevant = ["d2", "d4"] và k = 2, hai kết quả đầu là d1 và d2, chỉ d2 liên quan nên kết quả là 0.5.

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