Bộ đếm tần suất từ miễn phí

Phân tích văn bản để đếm tần suất từ và xác định những từ xuất hiện nhiều nhất. Lý tưởng cho phân tích văn bản, nghiên cứu nội dung và phát hiện mẫu.

Về phân tích tần suất từ

Tần suất từ là số đếm về tần suất xuất hiện của mỗi từ trong một văn bản, mảnh phân tích thống kê đơn giản nhất có thể có mà bạn có thể thực hiện trên một thân tác phẩm viết, nhưng vẫn là nguồn gốc của cả một lĩnh vực. Nghiên cứu thực nghiệm về tần suất từ trong tiếng Anh bắt đầu với George Kingsley Zipf, một nhà ngôn ngữ học Harvard mà cuốn sách năm 1935 The Psycho-Biology of Language và phần tiếp theo năm 1949 Human Behavior and the Principle of Least Effort đã ghi lại những gì hiện được gọi là Luật Zipf: tần suất của bất kỳ từ nào tỷ lệ nghịch xấp xỉ với thứ hạng của nó trong bảng tần suất. Từ phổ biến nhất trong tiếng Anh ("the") chiếm khoảng 7% tất cả các token từ trong một corpus tiếng Anh điển hình; phổ biến nhất thứ hai ("of") khoảng 3,5%; thứ ba khoảng 2,8%. Mối quan hệ này có hiệu lực trên gần như tất cả các ngôn ngữ tự nhiên và trên gần như tất cả các loại văn bản, sách, báo, lời nói được sao chép, bình luận mã, mạng xã hội. Nó thậm chí còn áp dụng cho điều ngược lại: hầu hết các từ chỉ xuất hiện một hoặc hai lần trong bất kỳ văn bản cụ thể nào, bất kể văn bản lớn đến đâu. Zipf gán điều này cho nguyên tắc nỗ lực ít nhất: người nói giảm thiểu chi phí phát âm trong khi người nghe giảm thiểu chi phí hiểu, và trạng thái cân bằng là phân phối luật lũy thừa.

Corpus tính toán đầu tiên được thiết kế đặc biệt cho phân tích tần suất là Brown Corpus, được biên soạn bởi W. Nelson Francis và Henry Kučera tại Brown University và xuất bản năm 1961. Nó chứa 1.014.312 token từ từ 500 mẫu văn xuôi trên 15 thể loại (báo chí, tiểu thuyết, viết tôn giáo, bài báo khoa học, dân gian phổ biến, tài liệu chính phủ và nhiều hơn nữa), mỗi mẫu dài 2.000 từ. Brown Corpus là nền tảng của ngôn ngữ học tiếng Anh thực nghiệm, mọi nghiên cứu tần suất từ tiếng Anh hiện đại đều xây dựng trên nó trực tiếp hoặc gián tiếp. Đối tác Anh, LOB Corpus (Lancaster-Oslo/Bergen), theo sau vào năm 1976 với cấu trúc tương tự cho tiếng Anh Anh. Các corpora quy mô công nghiệp ngày nay (dữ liệu n-gram của Google từ hơn 8 triệu cuốn sách, iWeb Corpus với 14 tỷ từ, các corpora được thu thập từ web của OSCAR với hàng trăm tỷ từ) đều truy nguyên phương pháp luận của họ trở lại Brown.

Stop Word: Khái niệm và Danh sách

Một phân tích tần suất không có lọc stop-word bị thống trị bởi các từ chức năng, mạo từ, giới từ, liên từ, trợ động từ, xuất hiện trong mọi câu và mang ít ý nghĩa chủ đề. Thuật ngữ "stop words" được Hans Peter Luhn đặt ra trong bài báo năm 1958 của ông "The Automatic Creation of Literature Abstracts," được viết tại IBM Research trên IBM 704. Luhn gọi chúng là "noise words", các từ phổ biến đến mức chúng che giấu các từ nội dung thông tin hơn về mặt chủ đề. Danh sách stop-word hiện đại vẫn khá nhỏ. Danh sách stop-word tiếng Anh của thư viện Python NLTK là 179 từ; của spaCy khoảng 326. Kích thước chính xác phụ thuộc vào triết lý: danh sách của NLTK là bảo thủ (chỉ những từ có chức năng phổ quát nhất); của spaCy mạnh mẽ hơn (bao gồm nhiều động từ và đại từ phổ biến). Các ngôn ngữ khác cần danh sách riêng của họ, và bản thân các danh sách trở nên khó soạn hơn. Tiếng Đức có nhiều từ ghép phân tách thành các phần phổ biến ngắn hơn. Tiếng Trung, Nhật và Thái không có dấu phân cách khoảng trắng nào cả, vì vậy trước khi bạn có thể hỏi "tần suất của từ này là gì", bạn phải thực hiện phân đoạn, quyết định ranh giới từ ở đâu, đây là một vấn đề sâu hơn so với việc tách token bằng khoảng trắng đơn giản của tiếng Anh. Danh sách stop-word của công cụ này bao gồm tiếng Anh; đối với văn bản không phải tiếng Anh, đầu ra tần suất thô không phân biệt chữ hoa chữ thường sẽ hữu ích hơn phiên bản đã lọc stop-word.

Điều gì được coi là một từ, Vấn đề Token hóa

Đếm từ nghe có vẻ đơn giản cho đến khi bạn cố gắng chỉ định chính xác một từ là gì. "don't" là một từ hay hai (do + n't)? "state-of-the-art" là một từ hay bốn? URL example.com có phải là một từ? Còn U.S.A., ba từ, một từ, hay một từ nên được chuẩn hóa thành USA? Các quy tắc tokenization của Penn Treebank (được phát triển tại Đại học Pennsylvania cho corpus Penn Treebank, 1989-) đã trở thành tiêu chuẩn de-facto cho NLP tiếng Anh và tách các phép rút gọn thành các token riêng biệt (don'tdo + n't). UAX #29 (Unicode Text Segmentation) của Tiêu chuẩn Unicode định nghĩa các ranh giới từ nhận biết ngôn ngữ hoạt động trên hầu hết các script. Nền tảng web hiện đại hiển thị điều này dưới dạng Intl.Segmenter, có sẵn baseline trong Chrome, Firefox và Safari kể từ năm 2024, cho nó một chuỗi và một locale, nhận lại một iterator của các ranh giới từ tôn trọng các quy ước của ngôn ngữ đầu vào. Công cụ này sử dụng cách tiếp cận dựa trên regex ([\p{L}\p{N}][\p{L}\p{N}_'-]* với cờ Unicode) xử lý hầu hết các trường hợp tốt nhưng coi state-of-the-art là bốn từ và có thể gặp khó khăn với dấu nháy đơn typographic cong (ký tự U+2019 mà Word tạo ra theo mặc định, dấu nháy đơn ASCII thẳng U+0027 hoạt động chính xác).

Stemming và Lemmatization

Đếm tần suất ngây thơ coi run, runs, runningran là bốn từ khác nhau. Đối với một số câu hỏi, đó là câu trả lời đúng (bạn thực sự muốn đếm các dạng bề mặt riêng biệt); đối với nhiều câu hỏi khác, bạn muốn chúng được gấp lại thành một khái niệm duy nhất. Stemming cắt bỏ các hậu tố theo quy tắc, Porter stemmer nổi tiếng của Martin Porter (1980) giảm các từ thành thân của chúng thông qua thuật toán loại bỏ hậu tố nhiều bước: runningrun, catscat, generouslygenerous. Porter sau đó đã tinh chỉnh hệ thống thành Snowball (2001), một ngôn ngữ nhỏ để viết stemmers trên nhiều ngôn ngữ. Stemming nhanh và không phụ thuộc vào ngôn ngữ nhưng tạo ra các không-từ (argues, argued, arguing đều trở thành argu). Lemmatization là phương án thay thế tinh vi hơn: nó sử dụng từ điển và phân tích ngữ pháp để ánh xạ từng dạng bề mặt đến lemma chính tắc của nó, tạo ra các từ thực (ranrun, không phải ra). Lemmatization chậm hơn, yêu cầu từ điển ngôn ngữ cụ thể và xử lý các trường hợp bất thường mà stemming bị sai. NLTK và spaCy đều cung cấp lemmatizers; công cụ này không làm cả hai, theo thiết kế, phân tích tần suất trên các dạng bề mặt hữu ích hơn cho một số ứng dụng (phân tích phong cách, sự đa dạng từ vựng) so với phiên bản đã được lemmatized.

TF-IDF: Tại sao tần suất của một từ trong một tài liệu là không đủ

Phân tích tần suất một tài liệu có thể cho bạn biết những từ nào xuất hiện thường xuyên nhất trong văn bản cụ thể này, nhưng không thể cho bạn biết những từ nào là đặc trưng cho văn bản này. The xuất hiện thường xuyên nhất trong mọi tài liệu tiếng Anh, vì vậy tần suất cao của nó trong tài liệu của bạn không nói cho bạn biết điều gì. TF-IDF (Term Frequency-Inverse Document Frequency) là giải pháp cổ điển: nó cân nhắc tần suất của mỗi thuật ngữ trong một tài liệu bằng nghịch đảo của tần suất thuật ngữ xuất hiện trên corpus rộng hơn. Các từ phổ biến ở khắp mọi nơi (the, of, and) nhận trọng số nhỏ; các từ phổ biến trong tài liệu của bạn nhưng hiếm ở nơi khác nhận trọng số lớn. Khái niệm IDF được giới thiệu bởi Karen Spärck Jones trong bài báo năm 1972 của bà "A Statistical Interpretation of Term Specificity and Its Application in Retrieval" trong Journal of Documentation, Jones là một trong những nhân vật nền tảng trong ngôn ngữ học tính toán và truy xuất thông tin, và đóng góp của bà cho các công cụ tìm kiếm (mọi thuật toán xếp hạng tìm kiếm từ PageRank trở đi đều nợ một cái gì đó cho TF-IDF) phần lớn bị đánh giá thấp. Công cụ này tính toán tần suất thô, không phải TF-IDF, TF-IDF yêu cầu một corpus để so sánh với, và không có một corpus đúng duy nhất cho đầu vào người dùng tùy ý.

N-gram và Google Books Ngram Viewer

Tần suất từ đơn lẻ là trường hợp đặc biệt của phân tích 1-gram. Bigram (chuỗi hai từ) và trigram (chuỗi ba từ) bắt cụm từ nhiều từ, "machine learning" là một bigram sẽ không bao giờ xuất hiện trong phân tích tần suất một từ nhưng nhiều thông tin hơn các số đếm riêng biệt của machinelearning. Tập dữ liệu n-gram lớn nhất có sẵn công khai là Google Books Ngram Viewer, ra mắt vào ngày 16 tháng 12 năm 2010 và được xây dựng từ văn bản nhận diện ký tự quang học của khoảng 8 triệu cuốn sách, khoảng 6% của mọi cuốn sách đã từng được xuất bản. Trình xem cho phép bạn vẽ tần suất của bất kỳ 1-, 2-, 3-, 4- hoặc 5-gram nào trên tiếng Anh (và một số ngôn ngữ khác) từ năm 1500 đến hiện tại. Nó đã được sử dụng cho mọi thứ từ việc theo dõi sự thăng trầm của tiếng lóng đến xác định niên đại của các bản thảo không có ngày tháng đến ghi lại sự thiên vị giới trong việc sử dụng tiếng Anh lịch sử. Tạo văn bản chuỗi Markov, tiền thân của các mô hình ngôn ngữ hiện đại, được xây dựng trên thống kê n-gram, dự đoán từ tiếp theo từ N từ trước đó là chính xác những gì bảng tần suất n-gram cho bạn biết. Công cụ này đếm các từ đơn lẻ; phân tích bigram và trigram nằm trong danh sách tính năng tương lai.

Kích thước từ vựng và Luật Heaps

Một người nói tiếng Anh bản ngữ trưởng thành biết khoảng 20.000 đến 35.000 họ từ (một "họ từ" là một từ cơ sở cộng với các biến cách của nó, run, runs, running, ran là một họ). Nghiên cứu của Brysbaert et al. năm 2016 trong Frontiers in Psychology đặt trung vị cho người Mỹ trưởng thành có học vấn đại học vào khoảng 42.000 từ cơ sở. Luật Heaps (Heaps 1978; quan sát cơ bản quay trở lại những năm 1950) mô tả cách từ vựng phát triển với kích thước corpus: V ∝ K · Nβ, trong đó V là số đếm từ duy nhất (từ vựng), N là tổng số đếm token (kích thước corpus), K là một hằng số trong phạm vi 10-100, và β nằm giữa 0,4 và 0,6 đối với tiếng Anh. Nói một cách đơn giản: văn bản càng dài, bạn càng gặp nhiều từ mới, nhưng mỗi từ liên tiếp ít có khả năng là mới hơn. Một bài luận 1.000 từ giới thiệu có lẽ 400 từ duy nhất; một bài luận 10.000 từ giới thiệu khoảng 1.300 từ duy nhất; một cuốn tiểu thuyết 100.000 từ khoảng 4.500. Mối quan hệ là sub-linear nhưng không bị giới hạn, không có "giới hạn từ vựng" lý thuyết cho ngôn ngữ tự nhiên. Quy tắc ngón tay cái cho các content writers: một bài đăng blog 1.500 từ điển hình chứa khoảng 500-600 từ duy nhất, và 20 từ thường xuyên nhất hàng đầu (chủ yếu là stop word) bao gồm khoảng một nửa tổng số lần xuất hiện.

Khi nào phân tích tần suất từ thực sự hữu ích

Công cụ này hoạt động như thế nào trong trình duyệt của bạn

Việc triển khai đơn giản. Văn bản được chạy qua một regex nhận biết Unicode ([\p{L}\p{N}][\p{L}\p{N}_'-]*/gu) khớp các chuỗi chữ cái và số dưới dạng các từ; các khớp được chuẩn hóa thành chữ thường nếu tùy chọn không phân biệt chữ hoa chữ thường được bật; mỗi từ được tăng trong một Map JavaScript; các mục sau đó được sắp xếp theo số đếm giảm dần và được hiển thị dưới dạng biểu đồ và bảng. Tổng thời gian trên tài liệu 100.000 từ là dưới một giây trên một máy tính xách tay điển hình. Map là cấu trúc dữ liệu phù hợp ở đây, nó bảo toàn thứ tự chèn, có tra cứu và cập nhật O(1), và được tuần tự hóa một cách sạch sẽ thành một mảng 2D để xuất. Một triển khai tinh vi hơn sẽ sử dụng Intl.Segmenter (API phân đoạn nhận biết Unicode, baseline kể từ tháng 4 năm 2024) cho các ngôn ngữ có ranh giới từ không tầm thường, đặc biệt là CJK; cách tiếp cận regex hoạt động tốt cho các ngôn ngữ châu Âu và bị phá vỡ đối với tiếng Trung, Nhật và Thái không có dấu phân cách từ bằng khoảng trắng.

Quyền riêng tư: Tại sao Chỉ-Trình duyệt Quan trọng ở đây

Các bản nháp của tác phẩm viết chưa xuất bản, bài đăng blog, ghi chú nội bộ, sản phẩm bàn giao của khách hàng, các chương bản thảo, các bài báo học thuật đang tiến hành, là chính xác loại văn bản mà việc tải lên dịch vụ bên thứ ba là không mong muốn. Các công cụ tần suất từ phía máy chủ yêu cầu gửi toàn bộ văn bản đến điểm cuối từ xa, điều đó có nghĩa là nó ở trong nhật ký của máy chủ, có thể trong bộ nhớ cache CDN, có thể trong một đường ống phân tích, có thể trong một bản sao lưu. Đối với văn bản đã xuất bản, vấn đề này không liên quan. Đối với công việc nháp, bản copy của khách hàng dưới NDA, hoặc bất kỳ bản thảo nào bạn chưa muốn ai bên ngoài nhóm của bạn nhìn thấy, kiến trúc rất quan trọng. Công cụ này chạy toàn bộ đường ống trong trình duyệt của bạn qua JavaScript. Văn bản không bao giờ băng qua mạng, xác minh trong tab Network của DevTools khi bạn nhấp Analyze, hoặc đưa trang offline (chế độ máy bay) sau khi tải và xác nhận phân tích vẫn hoạt động. An toàn cho các bản nháp bí mật, sản phẩm bàn giao của khách hàng và bất kỳ văn bản nào bạn không muốn được sao chép vào ổ cứng của người lạ.

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

Từ dừng là gì?

Từ dừng là các từ phổ biến như « cái », « là », « và », « hoặc » xuất hiện thường xuyên trong hầu hết các văn bản nhưng mang ít ý nghĩa. Lọc chúng ra cho phép tập trung phân tích vào các từ có ý nghĩa hơn.

Phần trăm được tính như thế nào?

Phần trăm được tính như sau: (lần xuất hiện của từ ÷ tổng số từ) × 100. Ví dụ, nếu một từ xuất hiện 5 lần trong văn bản tổng cộng 100 từ, tần suất của nó là 5%.

Bộ đếm này có xử lý các cụm từ (n-gram) không?

Chỉ các từ đơn lẻ, hiện tại. Bigram (chuỗi hai từ như "machine learning"), trigram và n-gram dài hơn nằm trong danh sách tính năng tương lai. Google Books Ngram Viewer (ra mắt ngày 16 tháng 12 năm 2010) là tài liệu tham khảo công khai để phân tích n-gram ở quy mô; đối với văn bản cá nhân, NLTK và spaCy cung cấp trích xuất n-gram trong một vài dòng Python.

Tôi có thể phân tích các văn bản rất dài không?

Có, công cụ này chạy hoàn toàn trong trình duyệt của bạn và có thể xử lý các văn bản nhiều MB. Tuy nhiên, các văn bản rất lớn có thể mất vài giây để xử lý. Dữ liệu của bạn không bao giờ rời khỏi thiết bị của bạn.

Nó có hoạt động cho văn bản không phải tiếng Anh không?

Một phần. Regex nhận biết Unicode xác định chính xác các ký tự từ trong bất kỳ ngôn ngữ nào sử dụng chữ Latin, Cyrillic, Hy Lạp, Hebrew hoặc Arabic. Đối với tiếng Trung, Nhật và Thái, không có dấu phân cách từ bằng khoảng trắng, tần suất thô theo ký tự sẽ hoạt động nhưng không thực sự là "tần suất từ" theo nghĩa ngôn ngữ học, bạn cần phân đoạn từ trước (jieba cho tiếng Trung, MeCab cho tiếng Nhật, Intl.Segmenter của ICU cho hỗ trợ phía trình duyệt). Bộ lọc stop-word chỉ là tiếng Anh.

Văn bản của tôi có được tải lên không?

Không. Phân tích chạy hoàn toàn trong trình duyệt của bạn qua JavaScript. Văn bản đã dán không bao giờ băng qua mạng, xác minh trong tab Network của DevTools khi bạn nhấp Analyze, hoặc đưa trang offline (chế độ máy bay) sau khi tải và công cụ vẫn sẽ hoạt động. An toàn cho các bản nháp bí mật, sản phẩm bàn giao của khách hàng, các chương bản thảo dưới NDA, ghi chú nội bộ hoặc bất cứ điều gì khác mà bạn không muốn được sao chép vào ổ cứng của người lạ.

Công cụ liên quan

Công cụ Đếm Từ & Ký Tự Trực Tuyến Miễn Phí Công cụ Đếm Từ & Ký Tự Trực Tuyến Miễn Phí Bộ đếm ký tự