N-gram
Phương pháp chia văn bản thành các chuỗi con liên tiếp gồm N ký tự hoặc từ, được sử dụng trong tìm kiếm và tính độ tương đồng văn bản.
N-gram là chuỗi con liên tiếp gồm N ký tự hoặc từ được trích xuất từ văn bản. Khi N=1 gọi là unigram, N=2 là bigram và N=3 là trigram. Ví dụ, các bigram ký tự của "hello" là "he", "el", "ll" và "lo". Ngoài N-gram cấp ký tự, còn có N-gram cấp từ: các bigram từ của "I love Tokyo" là "I love" và "love Tokyo". Kỹ thuật cơ bản này đã được sử dụng trong xử lý ngôn ngữ tự nhiên và truy xuất thông tin trong nhiều thập kỷ và tiếp tục là thành phần cốt lõi trong nhiều hệ thống hiện đại.
Ưu điểm lớn nhất của N-gram là không cần phân tích hình thái học hay từ điển. Ngay cả đối với các ngôn ngữ như tiếng Nhật và tiếng Trung nơi ranh giới từ không rõ ràng, token có thể được tạo bằng cách trượt cửa sổ cơ học qua văn bản. Các công cụ tìm kiếm toàn văn như Elasticsearch và Apache Solr cung cấp bộ tách N-gram như tính năng tiêu chuẩn, cho phép xây dựng chỉ mục tìm kiếm độc lập với ngôn ngữ. Bạn có thể tham khảo sách về công cụ tìm kiếm toàn văn để giới thiệu có hệ thống về lập chỉ mục N-gram.
N-gram cũng được sử dụng rộng rãi để tính toán độ tương đồng văn bản. Bằng cách so sánh sự trùng lặp của các tập N-gram được tạo từ hai văn bản sử dụng các chỉ số như hệ số Jaccard hoặc độ tương đồng cosine, mức độ tương đồng giữa các tài liệu có thể được định lượng. Phương pháp này được áp dụng trong nhiều tình huống bao gồm kiểm tra chính tả, tìm kiếm mờ, phát hiện đạo văn và công cụ đề xuất. Tính năng gợi ý tìm kiếm của Google là một ví dụ sử dụng dự đoán dựa trên N-gram cho các truy vấn đang nhập.
N-gram cũng đóng vai trò quan trọng như công nghệ nền tảng cho mô hình ngôn ngữ. Trong mô hình ngôn ngữ N-gram, xác suất của từ tiếp theo được ước tính từ N-1 từ trước đó. Trước khi deep learning trở nên phổ biến, đây là công nghệ cốt lõi trong dịch máy và nhận dạng giọng nói. Ngày nay, mô hình N-gram vẫn hữu ích cho các tác vụ phân loại và lọc văn bản nhẹ nhờ chi phí tính toán thấp và khả năng diễn giải.
Tuy nhiên, N-gram có một số lưu ý. Khi N tăng, kích thước chỉ mục tăng nhanh, đẩy chi phí lưu trữ và tính toán lên cao. Còn có vấn đề dương tính giả khi các chuỗi con không liên quan về ngữ nghĩa khớp nhau - ví dụ, tìm kiếm "Tokyo" có thể khớp với "Kyoto" trong bigram ký tự tiếng Nhật. Để giảm thiểu điều này, nhiều hệ thống áp dụng phương pháp kết hợp N-gram với phân tích hình thái học. Bạn có thể tham khảo sách thuật toán truy xuất thông tin về lý thuyết và triển khai N-gram chuyên sâu.
Từ góc độ đếm ký tự, kết quả phân đoạn N-gram phụ thuộc trực tiếp vào độ dài văn bản. Văn bản có độ dài L tạo ra L-N+1 N-gram ký tự, nghĩa là văn bản ngắn hơn cho ít N-gram hơn. Sử dụng công cụ đếm ký tự để xác định độ dài văn bản trước giúp ước tính độ chi tiết và chính xác của phân tích N-gram.