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

Một bước BPE: chọn cặp ký hiệu phổ biến nhất

Byte-Pair Encoding (BPE) xây từ vựng bằng cách lặp lại một bước: đếm mọi cặp ký hiệu liền

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

tokenizationbpecountingentry-ramp

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

Nội dung đề bài

Mô tả bài toán

Byte-Pair Encoding (BPE) xây từ vựng bằng cách lặp lại một bước: đếm mọi cặp ký hiệu liền kề trong ngữ liệu, chọn cặp xuất hiện nhiều nhất rồi gộp nó thành một ký hiệu mới. Đếm theo tần số của từ giúp các từ thường gặp ảnh hưởng nhiều hơn.

Yêu cầu

Viết hàm bpe_most_frequent_pair(corpus) trả về cặp ký hiệu được gộp ở bước này dưới dạng [a, b].

Quy ước nộp bài

Nộp hàm bpe_most_frequent_pair trong solution.py. Hệ thống gọi hàm trực tiếp và so giá trị; không đọc stdin và không in ra stdout.

Input

  • corpus: danh sách các cặp [danhsáchkýhiệu, tầnsố]; mỗi cặp là một từ đã tách ký

hiệu kèm số lần xuất hiện.

Output

Danh sách hai chuỗi [a, b] là cặp liền kề có tổng tần số lớn nhất; khi hòa, chọn cặp nhỏ hơn theo thứ tự chữ cái của chuỗi thứ nhất rồi chuỗi thứ hai.

Ràng buộc

  • Đếm có trọng số theo tần số của từ.
  • Nếu ngữ liệu không có cặp liền kề nào thì ném ValueError.
  • Chỉ dùng thư viện chuẩn.

Ví dụ 1

Input

bpe_most_frequent_pair(corpus=[[["l", "o", "w"], 5], [["l", "o", "w", "e", "r"], 2], [["n", "e", "w", "e", "s", "t"], 3]])

Output

["l", "o"]

Ví dụ 2

Input

bpe_most_frequent_pair(corpus=[[["a", "b"], 3], [["a", "b", "c"], 1]])

Output

["a", "b"]

Giải thích

Với corpus = [[["l", "o", "w"], 5], [["l", "o", "w", "e", "r"], 2], [["n", "e", "w", "e", "s", "t"], 3]]: cặp ("l", "o") và ("o", "w") cùng được 7 lần, nên chọn cặp nhỏ hơn theo chữ cái là ["l", "o"].

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.

Nhóm Zalo