Trình trích xuất N-gram

N-gram là một chuỗi gồm n từ liên tiếp trong văn bản. Công cụ này chuyển văn bản của bạn về chữ thường, tách thành từ tại mỗi khoảng trắng và dấu câu, rồi đếm mọi n-gram có độ dài bạn chọn (từ 1 đến 8). Kết quả là bảng tần suất dạng CSV, sắp xếp từ cụm xuất hiện nhiều nhất xuống ít nhất: đúng loại bảng dùng để kiểm tra mật độ từ khóa trong SEO, làm mượt mô hình ngôn ngữ và phát hiện đạo văn.

Cách trích xuất n-gram

  1. 1

    Dán văn bản của bạn

    Có thể là bài viết, bản gỡ băng hoặc nội dung mô tả sản phẩm. Không giới hạn độ dài với văn bản ở mức hợp lý.

  2. 2

    Chọn n

    Unigram (1), bigram (2), trigram (3), tối đa là 8. Mỗi lần chạy chỉ xử lý một độ dài.

  3. 3

    Trích xuất

    Văn bản được chuyển về chữ thường rồi tách thành từ; dấu câu được coi là dấu phân cách và bị loại bỏ.

  4. 4

    Đọc bảng tần suất

    Mỗi n-gram hiện kèm số lần xuất hiện, sắp xếp theo tần suất giảm dần.

  5. 5

    Sao chép file CSV

    Kết quả phân tách bằng dấu phẩy (N-gram,Count), dán thẳng vào bảng tính được ngay.

Mỗi độ dài n-gram cho bạn biết điều gì

N Tên Trường hợp sử dụng
1 Unigram Mật độ từ khóa, phác họa chủ đề
2 Bigram Cụm từ (“search intent”, “page speed”), kết hợp từ quen thuộc
3 Trigram Cụm từ đuôi dài, phát hiện đặc trưng
4+ Từ 4-gram trở lên Phát hiện nội dung trùng lặp, dấu hiệu đạo văn

Công cụ tách văn bản của bạn như thế nào

  • Mọi thứ đều chuyển về chữ thường, nên “The” và “the” nằm chung một dòng.
  • Từ là một chuỗi liền mạch gồm chữ cái, chữ số hoặc dấu nháy đơn. Mọi ký tự khác (dấu câu, ký hiệu, xuống dòng) đều là dấu phân cách và bị loại bỏ.
  • Ranh giới câu không được giữ lại. Từ cuối của câu này và từ đầu của câu kế tiếp vẫn có thể ghép thành một n-gram, vì vậy hãy thận trọng với các cặp bắc cầu qua hai câu. Nếu điều đó quan trọng, hãy phân tích từng câu hoặc từng đoạn một.
  • Từ dừng được giữ nguyên. Công cụ không lọc giúp bạn; nếu chỉ muốn các cụm có nghĩa, hãy xóa những dòng đó khỏi file CSV sau khi xuất.
  • Từ được nhận diện nhờ khoảng trắng và dấu câu. Với tiếng Việt, khoảng trắng ngăn cách âm tiết chứ không ngăn cách từ, nên cái mà công cụ gọi là “từ” thực chất là âm tiết: bigram sẽ gom đúng các từ ghép hai âm tiết như “công cụ” hay “tìm kiếm”, còn unigram chỉ cho bạn từng âm tiết rời. Vì vậy, với tiếng Việt hãy bắt đầu từ n = 2 hoặc n = 3. Tiếng Trung, tiếng Nhật và tiếng Thái thì không có khoảng trắng nào giữa các từ: cả câu sẽ vào như một “từ” duy nhất, cần tách từ trước bằng jieba, MeCab hoặc bộ tách từ tiếng Thái.

Khi nào nên loại bỏ từ dừng

Từ dừng là những hư từ xuất hiện với tần suất rất cao, như “the”, “a”, “of”, “and” trong tiếng Anh, hay “của”, “và”, “là”, “được” trong tiếng Việt. Giữ chúng lại sẽ khiến danh sách bigram đầy những cụm vô nghĩa như “of the” hay “của và”. Công cụ này không xóa chúng, nên hãy tự bỏ những dòng đó khỏi bản xuất khi bạn chỉ cần các cụm mang nghĩa, và giữ lại khi bạn nghiên cứu văn phong, xác định tác giả, hoặc huấn luyện mô hình ngôn ngữ, nơi hư từ chính là tín hiệu.

Ứng dụng trong SEO

Với một bài viết nhắm tới “nginx config generator”, hãy kiểm tra:

  • Bigram và trigram mục tiêu có nằm trong top 20 không. Nếu “nginx config” xếp thứ 40, nhiều khả năng bạn đang dùng thuật ngữ đó quá ít.
  • Bạn có nhồi từ khóa không. Nếu nó đứng thứ nhất với khoảng cách quá xa, bài viết sẽ đọc như spam.
  • Có các cụm gần nghĩa đi kèm không. Những bigram liên quan như “server block”, “proxy pass” và “ssl certificate” giúp công cụ tìm kiếm tin rằng chủ đề đã được bao quát đầy đủ.

Ứng dụng trong NLP và học thuật

  • Các mô hình ngôn ngữ dùng tần suất n-gram để làm mượt và backoff (Kneser-Ney, Good-Turing).
  • Nghiên cứu xác định tác giả so sánh phân bố trigram giữa các tác giả khả dĩ.
  • Đánh giá dịch máy (BLEU) chấm điểm dựa trên mức trùng khớp n-gram giữa bản dịch máy và bản dịch tham chiếu.

Câu hỏi thường gặp

Từ một dòng tweet (khi đó n-gram gần như vô nghĩa) cho tới một chương sách. Để bigram đủ tin cậy về mặt thống kê, hãy dùng từ 1.000 từ trở lên; với trigram là từ 10.000 trở lên. Ít hơn mức đó, thứ hạng sẽ rất nhiễu.

Có, nhưng cần hiểu đúng: khoảng trắng trong tiếng Việt ngăn cách âm tiết chứ không ngăn cách từ, nên mỗi “từ” mà công cụ đếm thực ra là một âm tiết. Hãy dùng n = 2 để bắt các từ ghép hai âm tiết (“máy tính”, “công cụ”) và n = 3 cho cụm ba âm tiết. Nếu cần đúng ranh giới từ, hãy tách từ trước bằng underthesea hoặc VnCoreNLP rồi dán kết quả vào đây.

Ở đây thì không. Văn bản luôn được chuyển về chữ thường trước khi đếm, nên “The” và “the” (hay “Apple” và “apple”) cùng nằm một dòng thay vì tách làm hai. Không có chế độ phân biệt hoa thường: nếu cần giữ riêng tên riêng hay đoạn mã, hãy đánh dấu chúng trong văn bản trước khi dán.

Chúng đóng vai trò dấu phân cách và không bao giờ nằm trong một n-gram. Tuy vậy chúng không cắt cửa sổ đếm: từ cuối câu này và từ đầu câu sau vẫn được tính chung thành một bigram. Nếu bạn cần tôn trọng nghiêm ngặt ranh giới câu, hãy xử lý riêng từng câu hoặc từng đoạn.

Công cụ không áp dụng danh sách nào, bạn tự lọc sau khi xuất. Danh sách từ dừng tiếng Anh phổ biến nhất là bộ 179 từ của NLTK, được hầu hết công cụ SEO sử dụng. Snowball, SpaCy và scikit-learn cung cấp các danh sách hơi khác nhau. Với tiếng Việt, hãy dùng danh sách từ dừng tiếng Việt đi kèm underthesea.

Công cụ liên quan

Công cụ này có phiên bản bằng các ngôn ngữ khác