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

Xây từ vựng từ tần số từ

Bước đầu tiên khi chuẩn bị dữ liệu văn bản là xây từ vựng. Người ta đếm tần số từng từ,

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

tokenizationvocabularysortingentry-ramp

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

Nội dung đề bài

Mô tả bài toán

Bước đầu tiên khi chuẩn bị dữ liệu văn bản là xây từ vựng. Người ta đếm tần số từng từ, loại bỏ những từ quá hiếm, rồi xếp các từ còn lại thành một danh sách có thứ tự xác định để mã hoá ổn định.

Yêu cầu

Viết hàm build_vocabulary(frequencies, min_freq) trả về danh sách từ đã lọc và sắp xếp.

Quy ước nộp bài

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

  • frequencies: từ điển ánh xạ từ sang số lần xuất hiện.
  • min_freq: tần số tối thiểu để một từ được giữ lại.

Output

Danh sách từ có tần số >= min_freq, sắp theo tần số giảm dần; khi bằng tần số thì theo thứ tự chữ cái tăng dần.

Ràng buộc

  • Bộ lọc dùng >=, không dùng >.
  • Khi hai từ cùng tần số phải so theo thứ tự chữ cái để kết quả tất định.
  • Không dùng thư viện ngoài.

Ví dụ 1

Input

build_vocabulary(frequencies={"the": 5, "cat": 2, "sat": 2, "on": 1, "mat": 1}, min_freq=2)

Output

["the", "cat", "sat"]

Ví dụ 2

Input

build_vocabulary(frequencies={"the": 5, "cat": 2, "sat": 2, "on": 1, "mat": 1}, min_freq=1)

Output

["the", "cat", "sat", "mat", "on"]

Giải thích

Với frequencies = {"the": 5, "cat": 2, "sat": 2, "on": 1, "mat": 1} và min_freq = 2, các từ on và mat bị loại. Còn lại the (5) rồi cat, sat (cùng 2), nên kết quả là ["the", "cat", "sat"].

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