Tách 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ị.
 * Gán nhãn: Coi như bài toán gán nhãn chuỗi. Cách này được sử dụng trong JVNSegmenter, Đông du.
 * 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.

Phương pháp mô hình ngôn ngữ
Một mô hình ngôn ngữ cố gắng nắm bắt trực giác của con người về một câu "tự nhiên" hoặc "không tự nhiên" do đó mô hình ngôn ngữ có thể coi là giải pháp tối hậu cho bài toán tách từ.

Số cách tách từ cho một câu có thể rất lớn do sự bùng nổ tổ hợp nên cần có một bước xử lý để lọc ra một số lượng vừa đủ các cách tách từ làm đầu vào cho mô hình ngôn ngữ. Chẳng hạn vnTokenizer sử dụng phương pháp đồ thị hoá trước khi áp dụng mô hình ngôn ngữ.

Một vấn đề mà các mô hình ngôn ngữ hiện nay chưa làm tốt đó là từ mới. Tất cả các từ mà mô hình chưa gặp lần nào cũng như các đoạn văn bản chứa nó sẽ được gán cho những giá trị xác suất rất nhỏ không phản ánh đúng trực giác của con người. Do đó độ chính xác đối với từ mới nói chung là rất kém.