Bài toán tách từ tiếng Việt

Xử lý ngôn ngữ tự nhiên bao gồm rất nhiều các bài toán như dịch tự động (machine translation), tóm tắt văn bản (text summarization), tìm kiếm thông tin (information retrieval), trích chọn thông tin (information extraction), v.v. Muốn giải quyết được các bài toán trên thì bài toán phân tách từ (word segmentation) là bài toán quan trọng nhất, nó quyết định thành công của các bài toán khác.

Như chúng ta đã biết, văn bản tiếng Việt đặt dấu cách giữa các âm tiết chứ không phải giữa các từ. Một từ có thể có một, hai hoặc nhiều âm tiết nên có nhiều cách phân chia các âm tiết thành các từ, gây ra nhập nhằng. Việc phân giải nhập nhằng này gọi là bài toán tách từ.

Tiêu chí quan trọng nhất trong bài toán tách từ đương nhiên là độ chính xác. Hiện tại người ta đã đạt được độ chính xác lên đến 97% tính theo từ. Tuy nhiên nếu tính theo câu (số câu được tách hoàn toàn đúng/tổng số câu) thì độ chính xác chỉ khoảng 50%. Đây là vấn đề nghiêm trọng đối với các bước xử lý sau như phân tích ngữ pháp, ngữ nghĩa vì một từ bị tách sai có ảnh hưởng toàn bộ đến cách phân tích cả câu.

Ngoài ra tiêu chí độ chính xác tách từ mới cũng quan trọng với các ứng dụng thực tế. Tiếng Việt là một sinh ngữ – nó luôn luôn biến đổi. Các từ mới thuần Việt cũng như vay mượn được tạo ra hàng ngày. Nếu một ứng dụng không xử lý được những từ này thì hiệu năng của nó sẽ giảm dần theo thời gian.

Hiện tại có một số cách tiếp cận bài toán tách từ như sau:

  • Ghép cực đại: Đặt các từ vào câu sao cho phủ hết được câu đó, thoả mãn một số heuristic nhất định. Phương pháp này các ưu điểm là rất nhanh, nhưng có rất nhiều hạn chế, ví dụ như độ chính xác thấp, không xử lý được những từ không có trong từ điển.
  • Luật: Xây dựng tập luật bằng tay hoặc tự động để phân biệt các cách kết hợp được phép và không được phép.
  • Đồ thị hoá: Xây dựng một đồ thị biểu diễn câu và giải bài toán tìm đường đi ngắn nhất trên đồ thị.
  • Máy học: Coi như bài toán gán nhãn chuỗi. Cách này được sử dụng trong JVNSegmenter[1], Đông du[2].
  • Dùng mô hình ngôn ngữ: Cho trước một số cách tách từ của toàn bộ câu, một mô hình ngôn ngữ có thể đánh giá được cách nào có khả năng cao hơn. Đây là cách tiếp cận của vnTokenizer[3].

Tài liệu tham khảo

  1.  Nguyen, C.-T., Nguyen, T.-K., Phan, X.-H., Nguyen, L.-M., & Ha, Q.-T. (2006). Vietnamese word segmentation with CRFs and SVMs: An investigation. In 20th Pacific Asia Conference on Language, Information and Computation (PACLIC 2006).
  2. Lưu Tuấn Anh, Yamamoto Kazuhide. Ứng dụng phương pháp Pointwise vào bài toán tách từ cho tiếng Việt.
  3.  Le, H.-P., Nguyen, M.-H. T., Roussanaly, A., & Ho, T.-V. (2008). A Hybrid Approach to Word Segmentation of Vietnamese Texts. Language and Automata Theory and Applications, 240.

Có thể bạn sẽ thích…

Trả lời

EnglishVietnamese