Công nghệ C-checker

LCS, N-gram và Semantic Similarity hoạt động thế nào?

Vì sao một lượt kiểm tra có thể mất thời gian và mỗi phép đo đóng góp gì vào báo cáo tương đồng tiếng Trung.

1. C-checker không chỉ so hai chuỗi văn bản

Một công cụ chính tả thường chỉ cần phân tích nội dung người dùng nhập. C-checker phải thực hiện nhiều công đoạn hơn: chia tài liệu thành các khối ngắn, tạo truy vấn tìm nguồn công khai, tải một số trang ứng viên, làm sạch nội dung rồi so sánh từng ứng viên bằng nhiều phép đo. Tốc độ vì thế phụ thuộc cả độ dài tài liệu, số nguồn tìm được, phản hồi của website bên ngoài và tài nguyên xử lý mô hình.

Lưu ý: thời gian chờ không chỉ đến từ AI. Tìm kiếm và tải các trang nguồn trên Internet thường là phần có độ trễ biến động nhất.

2. LCS: phát hiện chuỗi chung theo đúng thứ tự

LCS, viết tắt của Longest Common Subsequence, tìm dãy token chung dài nhất xuất hiện theo cùng thứ tự trong hai đoạn. Các token giống nhau không bắt buộc phải nằm sát nhau, nên LCS vẫn nhận ra trường hợp người viết chèn thêm một vài từ vào câu gốc.

Trong phiên bản hiện tại, C-checker token hóa văn bản tiếng Trung rồi tính độ dài LCS chia cho độ dài lớn hơn của hai chuỗi token. Thuật toán quy hoạch động cổ điển có chi phí xấp xỉ O(n × m), với n và m là số token của hai đoạn. Vì hệ thống làm việc trên các câu hoặc khối ngắn thay vì so toàn bộ luận văn với toàn bộ trang web trong một lần, chi phí được giới hạn nhưng vẫn tăng theo số ứng viên.

LCS mạnh khi trật tự từ được giữ lại, nhưng yếu hơn trước cách viết lại làm thay đổi cấu trúc sâu. Điểm cao cũng có thể xuất hiện ở định nghĩa chuẩn hoặc cụm chuyên ngành bắt buộc.

3. N-gram: đo các cụm token liền nhau

N-gram tạo những cụm liên tiếp gồm N token. C-checker hiện dùng bigram, tức các cặp token liền nhau, rồi tính mức chồng lấp đối xứng giữa hai tập hợp. Nếu nhiều cặp từ xuất hiện ở cả hai đoạn, điểm N-gram tăng.

Phép đo này đơn giản và nhanh hơn việc suy luận mô hình ngữ nghĩa. Nó nhạy với sao chép nguyên văn và các chỉnh sửa nhỏ, nhưng giảm mạnh khi người viết đổi nhiều từ, đảo cấu trúc hoặc diễn đạt lại. N-gram cũng không tự hiểu một cụm là trích dẫn hợp lệ hay câu chữ phổ biến.

4. Semantic Similarity: đo độ gần về ý nghĩa

C-checker dùng mô hình paraphrase-multilingual-MiniLM-L12-v2 để biến hai đoạn thành vector, sau đó tính cosine similarity. Nhờ đó, hai câu không trùng nhiều token vẫn có thể nhận điểm ngữ nghĩa cao nếu mô hình nhận thấy chúng diễn đạt nội dung gần nhau.

Semantic similarity hữu ích với paraphrase, nhưng không phải máy “phát hiện đạo ý tưởng” tuyệt đối. Hai câu được viết độc lập về cùng một chủ đề có thể gần nhau; câu mơ hồ hoặc quá ngắn cũng dễ thiếu ngữ cảnh. Quan trọng hơn, mô hình chỉ chấm các nguồn mà bước tìm kiếm đã thu được. Nếu nguồn không được lập chỉ mục, nằm sau đăng nhập hoặc không tải được, phép đo ngữ nghĩa không thể tự tìm ra nguồn đó.

5. Contiguous: chuỗi giống nhau liền mạch

Ngoài ba chỉ số thường được nhắc đến, C-checker còn tính chuỗi token giống nhau dài nhất và liên tiếp trong cả hai đoạn. Chỉ số Contiguous giúp phân biệt một dãy được chép liền mạch với các token giống nhau nhưng nằm rải rác.

6. Cách kết hợp thành điểm Final

Chỉ sốTrọng số hiện tại
LCS35% — trật tự token chung
N-gram20% — cụm token liền nhau
Semantic35% — độ gần về ý nghĩa
Contiguous10% — chuỗi trùng liền mạch

C-checker tính cả bốn chỉ số cho mỗi ứng viên rồi cộng theo trọng số trên. Kết quả Final từ 35% mới được giữ lại để hiển thị. Đây là mô hình chấm điểm song song, không phải quy trình trong đó N-gram loại nguồn trước rồi mới chạy LCS và Semantic.

7. Vì sao kết hợp nhiều phép đo?

Mỗi chỉ số nhìn văn bản từ một góc khác nhau. LCS và N-gram cung cấp bằng chứng rõ về câu chữ; Semantic bổ sung khả năng nhận ra diễn đạt gần nghĩa; Contiguous nhấn mạnh những chuỗi được giữ nguyên. Kết hợp chúng giúp giảm sự phụ thuộc vào một tín hiệu duy nhất, nhưng không loại bỏ hoàn toàn sai số.

Khi đọc báo cáo, đừng chỉ nhìn Final. Hãy xem chỉ số nào làm điểm tăng, đọc phần highlight, mở nguồn và kiểm tra trích dẫn. Xem thêm hướng dẫn đọc báo cáohạn chế của C-checker.