Penghitung Frekuensi Kata Gratis

Analisis teks untuk menghitung frekuensi kata dan mengidentifikasi kata yang paling sering muncul. Ideal untuk analisis teks, riset konten, dan deteksi pola.

Tentang analisis frekuensi kata

Frekuensi kata adalah hitungan seberapa sering setiap kata muncul dalam sebuah teks, potongan analisis statistik paling sederhana yang dapat Anda lakukan pada tubuh tulisan, namun sumber dari seluruh bidang. Studi empiris frekuensi kata dalam bahasa Inggris dimulai dengan George Kingsley Zipf, seorang ahli linguistik Harvard yang buku tahun 1935 The Psycho-Biology of Language dan tindak lanjut tahun 1949 Human Behavior and the Principle of Least Effort mendokumentasikan apa yang sekarang dikenal sebagai Hukum Zipf: frekuensi kata mana pun kira-kira berbanding terbalik dengan peringkatnya dalam tabel frekuensi. Kata paling umum dalam bahasa Inggris ("the") mencakup sekitar 7% dari semua token kata dalam korpus bahasa Inggris tipikal; yang paling umum kedua ("of") sekitar 3,5%; yang ketiga sekitar 2,8%. Hubungan ini berlaku di hampir semua bahasa alami dan di hampir semua jenis teks, buku, surat kabar, ucapan yang ditranskripsi, komentar kode, media sosial. Bahkan berlaku untuk kebalikannya: sebagian besar kata hanya muncul sekali atau dua kali dalam teks yang diberikan, tidak peduli seberapa besar teks itu. Zipf mengaitkan ini dengan prinsip upaya paling sedikit: pembicara meminimalkan biaya ucapan sementara pendengar meminimalkan biaya pemahaman, dan keseimbangannya adalah distribusi hukum pangkat.

Korpus komputasi pertama yang dirancang khusus untuk analisis frekuensi adalah Brown Corpus, dikompilasi oleh W. Nelson Francis dan Henry Kučera di Brown University dan diterbitkan pada 1961. Berisi 1.014.312 token kata dari 500 sampel prosa di 15 genre (laporan surat kabar, fiksi, tulisan religius, makalah ilmiah, lore populer, dokumen pemerintah, dan banyak lagi), setiap sampel sepanjang 2.000 kata. Brown Corpus adalah fondasi linguistik bahasa Inggris empiris, setiap studi frekuensi kata modern dalam bahasa Inggris dibangun di atasnya secara langsung atau tidak langsung. Mitra Inggrisnya, LOB Corpus (Lancaster-Oslo/Bergen), mengikuti pada 1976 dengan struktur yang sama untuk bahasa Inggris British. Korpora skala-industri saat ini (data n-gram Google dari 8+ juta buku, iWeb Corpus pada 14 miliar kata, korpora web-crawled OSCAR pada ratusan miliar kata) semuanya melacak metodologi mereka kembali ke Brown.

Stop Word: Konsep dan Daftar

Analisis frekuensi tanpa pemfilteran stop-word didominasi oleh kata fungsi, artikel, preposisi, konjungsi, auxiliaries, yang muncul dalam setiap kalimat dan membawa sedikit makna topikal. Istilah "stop words" diciptakan oleh Hans Peter Luhn dalam makalahnya tahun 1958 "The Automatic Creation of Literature Abstracts," ditulis di IBM Research di IBM 704. Luhn menyebutnya "kata berisik", kata-kata yang begitu umum sehingga menutupi kata konten yang lebih informatif secara topikal. Daftar stop-word modern masih cukup kecil. Daftar stop-word bahasa Inggris pustaka Python NLTK adalah 179 kata; spaCy sekitar 326. Ukuran tepat tergantung pada filosofi: daftar NLTK konservatif (hanya kata-kata paling universal-fungsi); spaCy lebih agresif (termasuk banyak kata kerja dan kata ganti umum). Bahasa lain membutuhkan daftar sendiri, dan daftar itu sendiri menjadi lebih sulit untuk disusun. Bahasa Jerman memiliki banyak kata majemuk yang terurai menjadi bagian umum yang lebih pendek. Bahasa Cina, Jepang dan Thailand tidak memiliki pemisah spasi sama sekali, jadi sebelum Anda dapat bertanya "berapa frekuensi kata ini" Anda harus melakukan segmentasi, memutuskan di mana batas kata berada, yang merupakan masalah lebih dalam daripada tokenisasi-spasi sederhana bahasa Inggris. Daftar stop-word alat ini mencakup bahasa Inggris; untuk teks non-Inggris, output frekuensi mentah case-insensitive akan lebih berguna daripada versi yang difilter stop-word.

Apa yang Dihitung sebagai Kata, Masalah Tokenisasi

Menghitung kata terdengar sederhana sampai Anda mencoba menentukan dengan tepat apa itu satu kata. Apakah "don't" satu kata atau dua (do + n't)? Apakah "state-of-the-art" satu kata atau empat? Apakah URL example.com sebuah kata? Bagaimana dengan U.S.A., tiga kata, satu kata, atau satu kata yang harus dinormalisasi menjadi USA? Aturan tokenisasi Penn Treebank (dikembangkan di University of Pennsylvania untuk korpus Penn Treebank, 1989-) menjadi standar de-facto untuk NLP bahasa Inggris dan memisahkan kontraksi menjadi token terpisah (don'tdo + n't). UAX #29 (Unicode Text Segmentation) Standar Unicode mendefinisikan batas kata yang sadar bahasa yang bekerja di sebagian besar skrip. Platform web modern mengekspos ini sebagai Intl.Segmenter, tersedia baseline di Chrome, Firefox dan Safari sejak 2024, beri string dan locale, dapatkan iterator batas kata yang menghormati konvensi bahasa input. Alat ini menggunakan pendekatan berbasis regex ([\p{L}\p{N}][\p{L}\p{N}_'-]* dengan flag Unicode) yang menangani sebagian besar kasus dengan baik tetapi memperlakukan state-of-the-art sebagai empat kata dan mungkin kesulitan dengan apostrof tipografi melengkung (karakter U+2019 yang Word hasilkan secara default, apostrof ASCII lurus U+0027 bekerja dengan benar).

Stemming dan Lemmatisasi

Hitungan frekuensi naif memperlakukan run, runs, running dan ran sebagai empat kata yang berbeda. Untuk beberapa pertanyaan itu jawaban yang tepat (Anda benar-benar ingin menghitung bentuk permukaan secara terpisah); untuk banyak lainnya, Anda ingin mereka diciutkan menjadi konsep tunggal. Stemming memotong sufiks berdasarkan aturan, Porter stemmer terkenal oleh Martin Porter (1980) mengurangi kata menjadi stem mereka melalui algoritma penghapusan sufiks multi-langkah: runningrun, catscat, generouslygenerous. Porter kemudian menyempurnakan sistem menjadi Snowball (2001), bahasa kecil untuk menulis stemmer di berbagai bahasa. Stemming cepat dan agnostik bahasa tetapi menghasilkan non-kata (argues, argued, arguing semuanya menjadi argu). Lemmatisasi adalah alternatif yang lebih canggih: menggunakan kamus dan analisis tata bahasa untuk memetakan setiap bentuk permukaan ke lemma kanoniknya, menghasilkan kata-kata nyata (ranrun, bukan ra). Lemmatisasi lebih lambat, membutuhkan kamus bahasa-spesifik, dan menangani kasus tidak teratur yang stemming dapat salah. NLTK dan spaCy keduanya mengirim lemmatizer; alat ini tidak melakukan keduanya, dengan desain, analisis frekuensi pada bentuk permukaan lebih berguna untuk beberapa aplikasi (analisis gaya, keragaman kosakata) daripada versi yang dilemmatisasi.

TF-IDF: Mengapa Frekuensi Kata dalam Satu Dokumen Tidak Cukup

Analisis frekuensi dokumen tunggal dapat memberi tahu Anda kata mana yang paling sering muncul dalam teks tertentu ini, tetapi tidak dapat memberi tahu Anda kata mana yang khas untuk teks ini. The muncul paling sering di setiap dokumen bahasa Inggris, sehingga frekuensi tingginya dalam dokumen Anda tidak memberi tahu Anda apa-apa. TF-IDF (Term Frequency-Inverse Document Frequency) adalah solusi klasik: ia menimbang frekuensi setiap istilah dalam dokumen dengan kebalikan dari seberapa sering istilah muncul di seluruh korpus yang lebih luas. Kata-kata yang umum di mana-mana (the, of, and) mendapat bobot kecil; kata-kata yang umum dalam dokumen Anda tetapi jarang di tempat lain mendapat bobot besar. Konsep IDF diperkenalkan oleh Karen Spärck Jones dalam makalahnya tahun 1972 "A Statistical Interpretation of Term Specificity and Its Application in Retrieval" di Journal of Documentation, Jones adalah salah satu tokoh fundamental dalam linguistik komputasi dan pengambilan informasi, dan kontribusinya untuk mesin pencari (setiap algoritma peringkat pencarian dari PageRank dan seterusnya berutang sesuatu pada TF-IDF) sebagian besar kurang dihargai. Alat ini menghitung frekuensi mentah, bukan TF-IDF, TF-IDF membutuhkan korpus untuk dibandingkan, dan tidak ada satu korpus yang benar untuk input pengguna sembarang.

N-gram dan Google Books Ngram Viewer

Frekuensi kata tunggal adalah kasus khusus dari analisis 1-gram. Bigram (urutan dua kata) dan trigram (urutan tiga kata) menangkap frasa multi-kata, "machine learning" adalah bigram yang tidak akan pernah muncul dalam analisis frekuensi kata tunggal tetapi lebih informatif daripada hitungan terpisah machine dan learning. Dataset n-gram terbesar yang tersedia untuk umum adalah Google Books Ngram Viewer, diluncurkan pada 16 Desember 2010 dan dibangun dari teks OCR-dikenali sekitar 8 juta buku, sekitar 6% dari setiap buku yang pernah diterbitkan. Viewer memungkinkan Anda untuk memplot frekuensi setiap 1-, 2-, 3-, 4- atau 5-gram di bahasa Inggris (dan beberapa bahasa lainnya) dari tahun 1500 hingga sekarang. Telah digunakan untuk segala sesuatu dari melacak kebangkitan dan kejatuhan slang hingga menanggali manuskrip yang tidak bertanggal hingga mendokumentasikan bias gender dalam penggunaan bahasa Inggris sejarah. Generasi teks rantai-Markov, pendahulu model bahasa modern, dibangun di atas statistik n-gram, memprediksi kata berikutnya dari N kata sebelumnya adalah persis apa yang dikatakan tabel frekuensi n-gram kepada Anda. Alat ini menghitung kata tunggal; analisis bigram dan trigram ada di daftar fitur masa depan.

Ukuran Kosakata dan Hukum Heaps

Penutur asli dewasa bahasa Inggris mengetahui sekitar 20.000 hingga 35.000 keluarga kata (sebuah "keluarga kata" adalah kata dasar ditambah infleksi, run, runs, running, ran sebagai satu keluarga). Studi Brysbaert et al. tahun 2016 di Frontiers in Psychology menempatkan median untuk orang dewasa Amerika berpendidikan perguruan tinggi sekitar 42.000 kata dasar. Hukum Heaps (Heaps 1978; pengamatan yang mendasari kembali ke tahun 1950-an) menggambarkan bagaimana kosakata tumbuh dengan ukuran korpus: V ∝ K · Nβ, di mana V adalah hitungan kata unik (kosakata), N adalah hitungan total token (ukuran korpus), K adalah konstanta dalam rentang 10-100, dan β antara 0,4 dan 0,6 untuk bahasa Inggris. Dalam istilah sederhana: semakin panjang teks, semakin banyak kata baru yang Anda temui, tetapi setiap kata berikutnya kurang mungkin baru. Esai 1.000 kata mungkin memperkenalkan 400 kata unik; esai 10.000 kata memperkenalkan sekitar 1.300 kata unik; novel 100.000 kata sekitar 4.500. Hubungannya sublinear tetapi tidak terbatas, tidak ada "batas kosakata" teoretis untuk bahasa alami. Aturan praktis untuk penulis konten: postingan blog 1.500 kata tipikal berisi sekitar 500-600 kata unik, dan 20 yang paling sering muncul (sebagian besar stop word) mencakup sekitar setengah dari total kejadian.

Kapan Analisis Frekuensi-Kata Sebenarnya Berguna

Bagaimana Alat Ini Bekerja di Browser Anda

Implementasinya sederhana. Teks dijalankan melalui regex Unicode-sadar ([\p{L}\p{N}][\p{L}\p{N}_'-]*/gu) yang mencocokkan urutan huruf dan angka sebagai kata; pertandingan dinormalisasi ke huruf kecil jika opsi case-insensitive aktif; setiap kata diincrement dalam JavaScript Map; entri kemudian diurutkan berdasarkan hitungan menurun dan dirender sebagai grafik dan tabel. Waktu total pada dokumen 100.000 kata di bawah satu detik pada laptop tipikal. Map adalah struktur data yang tepat di sini, ia melestarikan urutan penyisipan, memiliki pencarian dan pembaruan O(1), dan diserialisasi dengan bersih ke array 2D untuk ekspor. Implementasi yang lebih canggih akan menggunakan Intl.Segmenter (API segmentasi sadar-Unicode, baseline sejak April 2024) untuk bahasa dengan batas kata non-trivial, terutama CJK; pendekatan regex bekerja dengan baik untuk bahasa Eropa dan rusak untuk Cina, Jepang dan Thailand yang tidak memiliki pemisah kata spasi.

Privasi: Mengapa Browser-Saja Penting di Sini

Draf tulisan yang belum diterbitkan, posting blog, memo internal, deliverable klien, bab manuskrip, makalah akademis yang sedang berlangsung, persis jenis teks di mana mengunggah ke layanan pihak ketiga tidak diinginkan. Alat frekuensi kata sisi server memerlukan pengiriman seluruh teks ke endpoint jarak jauh, yang berarti itu duduk di log server, mungkin di cache CDN, mungkin di pipeline analitik, mungkin di backup. Untuk teks yang diterbitkan, masalahnya tidak relevan. Untuk pekerjaan draf, copy klien di bawah NDA, atau manuskrip apa pun yang belum Anda ingin siapa pun di luar tim Anda melihatnya, arsitektur itu penting. Alat ini menjalankan seluruh pipeline di browser Anda melalui JavaScript. Teks tidak pernah melintasi jaringan, verifikasi di tab Network DevTools saat Anda mengklik Analyze, atau bawa halaman offline (mode pesawat) setelah dimuat dan konfirmasi analisis masih bekerja. Aman untuk draf rahasia, deliverable klien dan teks apa pun yang tidak ingin Anda salin ke hard drive orang asing.

Pertanyaan yang Sering Diajukan

Apa itu kata henti?

Kata henti adalah kata umum seperti «the», «is», «and», «or» yang sering muncul dalam sebagian besar teks tetapi membawa sedikit makna. Menyaringnya memungkinkan analisis lebih fokus pada kata-kata yang lebih bermakna.

Bagaimana persentase dihitung?

Persentase dihitung sebagai: (kemunculan kata ÷ total kata) × 100. Misalnya, jika sebuah kata muncul 5 kali dalam teks dengan total 100 kata, frekuensinya adalah 5%.

Apakah penghitung ini menangani frasa (n-gram)?

Hanya kata tunggal, saat ini. Bigram (urutan dua kata seperti "machine learning"), trigram dan n-gram yang lebih panjang ada di daftar fitur masa depan. Google Books Ngram Viewer (diluncurkan 16 Desember 2010) adalah referensi publik untuk analisis n-gram pada skala; untuk teks pribadi, NLTK dan spaCy mengirim ekstraksi n-gram dalam beberapa baris Python.

Bisakah saya menganalisis teks yang sangat panjang?

Ya, alat ini berjalan sepenuhnya di peramban Anda dan dapat memproses teks beberapa MB. Teks yang sangat besar mungkin membutuhkan beberapa detik untuk diproses. Data Anda tidak pernah meninggalkan perangkat Anda.

Apakah berfungsi untuk teks non-Inggris?

Sebagian. Regex yang sadar-Unicode dengan benar mengidentifikasi karakter kata dalam bahasa skrip Latin, Sirilik, Yunani, Ibrani atau Arab apa pun. Untuk Cina, Jepang dan Thailand, yang tidak memiliki pemisah kata spasi, frekuensi mentah per karakter akan berfungsi tetapi tidak benar-benar "frekuensi kata" dalam arti linguistik, Anda perlu segmentasi kata terlebih dahulu (jieba untuk Cina, MeCab untuk Jepang, Intl.Segmenter ICU untuk dukungan sisi browser). Filter stop-word hanya bahasa Inggris.

Apakah teks saya diunggah?

Tidak. Analisis berjalan sepenuhnya di browser Anda melalui JavaScript. Teks yang ditempel tidak pernah melintasi jaringan, verifikasi di tab Network DevTools saat Anda mengklik Analyze, atau bawa halaman offline (mode pesawat) setelah dimuat dan alat akan tetap bekerja. Aman untuk draf rahasia, deliverable klien, bab manuskrip di bawah NDA, memo internal atau hal lain yang tidak ingin Anda salin ke hard drive orang asing.

Alat terkait

Gratis Kata & Karakter Counter Online Gratis Kata & Karakter Counter Online Karakter Counter