[Buổi 21][Xử lý chuỗi][WS] Bài 1: Text Processing Pipeline
Text Processing Pipeline
Bối cảnh
Một dòng mô tả tag có thể chứa case và whitespace lộn xộn. Mỗi token hợp lệ chỉ gồm chữ cái.
Pipeline cần clean, tokenize, validate, lowercase và tạo báo cáo tần suất.
Yêu cầu
- Đọc cả dòng và tách theo whitespace.
- Nếu có token chứa ký tự không phải chữ cái, in INVALID.
- Lowercase mọi token.
- Đếm tổng token, số token khác nhau và tần suất từng token.
- In dòng đầu
total distinct. - Tiếp theo in
token counttheo thứ tự tăng của token.
Input
Một dòng.
Output
INVALID hoặc report.
Ràng buộc
0 ≤ |line| ≤ 3000; token ASCII.
Ví dụ 1
Input
Dev dev Cpp DEV
Output
4 2
cpp 1
dev 3
Giải thích
Pipeline chuẩn hóa toàn bộ token về lowercase: Dev dev Cpp DEV trở thành dev dev cpp dev. Có 4 token và 2 từ phân biệt. Map tần suất cho cpp→1, dev→3; khi duyệt map theo key tăng dần, output là 4 2, sau đó cpp 1, dev 3.
Ví dụ 2
Input
one two one
Output
3 2
one 2
two 1
Giải thích
Dòng one two one sau tokenization có ba token one, two, one. Có hai từ phân biệt; frequency là one→2, two→1. Vì vậy dòng đầu là 3 2, rồi hai dòng thống kê theo key tăng dần.
Thông tin học tập
- Module: M06
- Buổi: B21
- Loại bài: WORKSHOP
- Độ khó: Medium
- Concepts: pipeline, normalization, tokenization, validation, map frequency, reporting
- Giới hạn kiến thức: B01-B21
- Time limit: 2 second(s)
- Memory limit: 256 MB
- Point: 100
Comments