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

MRR - nghịch đảo hạng trung bình

MRR đánh giá chất lượng xếp hạng bằng cách nhìn vào vị trí của tài liệu liên quan đầu

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

retrievalrankingmetricentry-ramp

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

Nội dung đề bài

Mô tả bài toán

MRR đánh giá chất lượng xếp hạng bằng cách nhìn vào vị trí của tài liệu liên quan đầu tiên trong mỗi danh sách. Tài liệu liên quan càng xuất hiện sớm thì điểm nghịch đảo hạng càng cao; nếu không có tài liệu liên quan nào thì đóng góp bằng 0.

Yêu cầu

Viết hàm mean_reciprocal_rank(rankings, relevant) trả về nghịch đảo hạng trung bình của một loạt câu hỏi.

Quy ước nộp bài

Nộp hàm mean_reciprocal_rank 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

  • rankings: danh sách các bảng xếp hạng, mỗi bảng là danh sách mã tài liệu theo thứ tự.
  • relevant: danh sách các tập tài liệu liên quan, phần tử thứ i ứng với câu hỏi i.

Output

Một số thực bằng trung bình của 1 / hạng với hạng là vị trí (tính từ 1) của tài liệu liên quan đầu tiên; nếu một bảng không có tài liệu liên quan thì đóng góp 0.

Ràng buộc

  • rankings không được rỗng; ném ValueError.
  • relevant phải cùng độ dài với rankings; ném ValueError nếu khác.

Ví dụ 1

Input

mean_reciprocal_rank(rankings=[["a", "b", "c"], ["b", "a", "c"]], relevant=[["b"], ["c"]])

Output

0.4166666666666667

Ví dụ 2

Input

mean_reciprocal_rank(rankings=[["x", "y"]], relevant=[["x"]])

Output

1.0

Giải thích

Với rankings = [["a", "b", "c"], ["b", "a", "c"]] và relevant = [["b"], ["c"]], câu hỏi đầu có b ở hạng 2 nên được 1/2, câu hỏi sau có c ở hạng 3 nên được 1/3, trung bình là 0.4166666666666667.

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