Tất cả thử thách
Dễ 0 đã giải Tỷ lệ chấp nhận 0%

Tách từ và xây dựng từ vựng

Tách văn bản thành các từ viết thường và xây dựng từ vựng sắp theo tần suất, bước đầu tiên của mọi mô hình ngôn ngữ.

Bạn sẽ học được gì

  • Tách văn bản thành token từ viết thường
  • Đếm tần suất từ
  • Sắp xếp từ vựng theo tần suất rồi theo bảng chữ cái

Đề bài

Xem bản gốc (English)

Mô hình ngôn ngữ làm việc với token, không phải văn bản thô. Một bộ tách từ đơn giản chuyển văn bản thành chữ thường và coi mỗi chuỗi liên tiếp các chữ cái a-z và chữ số 0-9 là một từ; mọi thứ khác (khoảng trắng, dấu câu, ký tự khác) đều ngăn cách các từ.

Xây dựng từ vựng: các từ khác nhau, sắp xếp theo số lần xuất hiện (nhiều nhất trước), nếu bằng nhau thì theo thứ tự bảng chữ cái. Vị trí của một từ trong danh sách này là ID token của nó.

Hãy cài đặt build_vocabulary(text).

Đầu vào

text: Một văn bản bất kỳ.

Đầu ra

Trả về từ vựng dưới dạng danh sách từ. Trả về danh sách rỗng nếu văn bản không có từ nào.

Ràng buộc

0 ≤ độ dài của text ≤ 100.000

Ví dụ

Ví dụ 1
Đầu vào:
text = "The cat sat on the mat. The end!"

Kết quả mong đợi:
expected = ["the", "cat", "end", "mat", "on", "sat"]
Đầu vào:
std::string text = "The cat sat on the mat. The end!";

Kết quả mong đợi:
std::vector<std::string> expected = {"the", "cat", "end", "mat", "on", "sat"};
Đầu vào:
string text = "The cat sat on the mat. The end!";

Kết quả mong đợi:
string[] expected = new string[] {"the", "cat", "end", "mat", "on", "sat"};

Giải thích

Sau khi chuyển thành chữ thường, các từ là the, cat, sat, on, the, mat, the, end. "the" xuất hiện 3 lần; các từ còn lại xuất hiện một lần và được sắp theo bảng chữ cái: ["the", "cat", "end", "mat", "on", "sat"].

Ví dụ 2
Đầu vào:
text = "AI, ai and A.I. (2024)"

Kết quả mong đợi:
expected = ["ai", "2024", "a", "and", "i"]
Đầu vào:
std::string text = "AI, ai and A.I. (2024)";

Kết quả mong đợi:
std::vector<std::string> expected = {"ai", "2024", "a", "and", "i"};
Đầu vào:
string text = "AI, ai and A.I. (2024)";

Kết quả mong đợi:
string[] expected = new string[] {"ai", "2024", "a", "and", "i"};

Giải thích

Các từ: ai, ai, and, a, i, 2024. "ai" xuất hiện hai lần; các từ khác một lần, sắp theo bảng chữ cái với chữ số đứng trước chữ cái: ["ai", "2024", "a", "and", "i"].

Tham khảo

Thử thách này đã được điều chỉnh cho CodeUtility. Hãy làm theo đề bài và các ràng buộc ở trên.

Học hỏi từ người khác

Giải pháp cộng đồng

Chưa có giải pháp nào được chia sẻ. Hãy giải thử thách này để đăng giải pháp đầu tiên.