IOAI 2025 — Phân tách từ ghép
Xem PDFMô tả bài toán
Trong tiếng Đức, từ ghép (Komposita) được tạo ra bằng cách nối nhiều từ ngắn lại với nhau thành một từ dài. Ví dụ, Fußball là ghép của Fuß ("chân") và Ball ("quả bóng"); Autobahnanschlussstelle là ghép của Autobahn ("đường cao tốc"), Anschluss ("kết nối") và Stelle ("vị trí").
Nhiệm vụ của bạn là, cho trước một từ ghép tiếng Đức, hãy tách nó trở lại thành các từ thành phần ban đầu.
Cách biểu diễn lời giải: với một từ có độ dài n, bạn cần xuất một mảng nhị phân độ dài đúng bằng n, trong đó mỗi phần tử ứng với một ký tự của từ. Giá trị 1 đánh dấu vị trí kết thúc của một từ con, còn 0 đánh dấu các vị trí ở đầu hoặc giữa từ con (vị trí được đánh số từ 0).
Ví dụ. Từ Fußballspieler (độ dài 14) được tách thành Fuß + ball + spieler. Các vị trí kết thúc của ba từ con lần lượt là 2, 6 và 13, nên nhãn tương ứng là:
[0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1]
Lưu ý ký tự cuối cùng của từ luôn là vị trí kết thúc của một từ con, do đó phần tử cuối của mảng luôn bằng 1.
Dữ liệu
Bộ dữ liệu được cung cấp ở định dạng JSON, mỗi tệp là một đối tượng dạng {từ: mảng_nhãn}. Cụ thể:
train.json— 94.306 từ ghép kèm nhãn phân tách chuẩn để huấn luyện.val.json— 11.788 từ ghép, mảng nhãn để rỗng; dùng để bạn chạy mô hình trên tập đánh giá.val_answer.json— đáp án chuẩn của tập validation, để bạn tự chấm điểm và tinh chỉnh mô hình ở local.test.json— 11.789 từ ghép, mảng nhãn để rỗng; đây là tập bạn cần dự đoán để nộp.
Ngoài ra, đề bài có đính kèm notebook mẫu ioai25wordseg_baseline.ipynb minh hoạ cách đọc dữ liệu, huấn luyện một mô hình cơ bản và sinh tệp nộp bài.
Bài nộp
Bạn cần nộp một tệp .zip chứa duy nhất một tệp test_answer.json. Tệp này là một đối tượng JSON dạng:
{"từ_1": [nhãn_1], "từ_2": [nhãn_2], ...}
trong đó:
- Mỗi khóa là một từ trong
test.json. - Mỗi giá trị là mảng 0/1 có độ dài bằng đúng số ký tự của từ tương ứng.
- Mọi từ trong
test.jsonđều phải xuất hiện. Nếu một từ bị thiếu, hoặc mảng nhãn có độ dài khác với độ dài của từ, từ đó sẽ bị tính 0 điểm.
Tiêu chí chấm
Điểm cuối cùng là trung bình F1 trên từng từ trong tập test.
Với mỗi từ, từ mảng nhãn ta khôi phục được tập các "từ con" — mỗi từ con là một đoạn [start, end) được xác định bởi hai vị trí kết thúc liên tiếp. Gọi G là tập từ con theo đáp án chuẩn và P là tập từ con theo dự đoán. Khi đó:
- precision = |G ∩ P| / |P|
- recall = |G ∩ P| / |G|
- F1 = 2 · precision · recall / (precision + recall)
Một từ con chỉ được coi là đúng khi trùng khớp hoàn toàn cả vị trí bắt đầu lẫn vị trí kết thúc với đáp án. Nếu mảng dự đoán giống hệt đáp án, F1 = 1; mọi đường biên thừa hoặc thiếu đều làm giảm điểm. Nếu độ dài mảng dự đoán không khớp độ dài từ, điểm F1 của từ đó là 0.
Điểm tổng = trung bình cộng F1 trên toàn bộ 11.789 từ của test.json.
Nguồn
Bài này được lấy từ kỳ thi IOAI 2025 — GAITE Task 4: Combinatorial Word Segmentation. Mô tả gốc và tài nguyên kèm theo có tại kho IOAI-2025 chính thức.
Kỳ thi:
- IOAI 2025 — GAITE Contest (5 Tháng 8., 2025)
Bình luận