Advertisement
  1. Code
  2. Python

Menghitung Frekuensi Kata di Dalam Sebuah File Menggunakan Python

Scroll to top
Read Time: 4 min

() translation by (you can also view the original English article)

Pernahkah bertanya-tanya tentang sebuah cara cepat untuk memberitahu apa yang sedang difokuskan oleh suatu dokumen? Apakah topik utamanya? Mari saya berikan trik sederhana ini. Buat daftar kata unik yang disebutkan di dalam dokumen, dan kemudian cek berapa kali tiap kata disebutkan (frekuensi). Ini akan memberikanmu sebuah petunjuk apa topik utama dokumen itu. Namun itu tidak akan berkerja dengan mudah secara manual, sehingga kita memerlukan beberapa proses terotomatisasi bukan?

Ya, sebuah proses terotomatisasi akan membuat ini jauh lebih mudah. Mari lihat bagaimana kita dapat membuat daftar kata-kata unik di dalam sebuah file teks dan memeriksa frekuensi tiap kata menggunakan Python.

File Tes

Di dalam tutorial ini, kita akan menggunakan test.txt sebagai file tes kita. Teruskan dan download itu, namun jangan membukanya! Mari kita buat sebuah permainan kecil. Teks di dalam file tes ini adalah dari salah satu tutorial saya di Envato Tuts+. Berdasarkan frekuensi kata, mari tebak tutorial yang mana asal teks ini.

Mari mulai permainannya!

Regular Expressions

Karena kita akan menerapkan sebuah pola dalam permainan kita, kita perlu menggunakan regular expressions (regex). Jika "regular expression" adalah istilah baru bagim, ini adalah definisi yang bagus dari Wikipedia:

Sebuah urutan karakter yang menjelaskan sebuah pola pencarian, terutama untuk digunakan dalam pola pencocokan dengan strings, atau string matching, yaitu operasi seperti "temukan dan ganti". Konsep ini muncul pada tahun 1950, dimana seorang ahli matematika Amerika Stephen Kleene meresmikan penjelasan bahasa reguler, dan hadir ke dalam penggunaan umum dengan Unix peralatan pemroses teks ed, sebuah editor, dan grep, sebuah filter.

Jika kamu ingin mengetahui lebih lanjut tentang reguler expression sebelum melanjutkan dengan tutorial ini, kamu dapat melihat tutorial saya yang lainnya Regular Expression Dalam Python, dan kembali lagi untuk melanjutkan tutorial ini.

Membangun Program

Mari kerjakan tahap demi tahap dalam membangun permainan ini. Hal pertama yang ingin kita lakukan adalah menyimpan file teks di dalam sebuah variabel string.

1
document_text = open('test.txt', 'r')
2
text_string = document_text.read()

Sekarang, untuk membuat penerapan regular expression menjadi lebih mudah, mari ubah semua huruf dalam dokumen kita dalam bentuk cetak kecil, dengan menggunakan function lower(), sebagai berikut:

1
text_string = document_text.read().lower()

Mari menuliskan regular expression yang akan mengembalikan semua kata dengan jumlah karakter di dalam range [3-15]. Dengan memulai dari 3 akan membantu menghindari kata-kata yang mungkin tidak menarik untuk dihitung frekuensinya seperti if, of, in, etc, dan kata-kata yang memiliki panjang karakter lebih dari 15 mungkin bukan kata yang benar. Regular expression untuk pola seperti itu tampak sebagai berikut:

1
\b[a-z]{3,15}\b

\b terkait dengan word boundary (batas kata). Untuk informasi lebih lanjut tentang batas kata, kamu dapat memeriksa tutorial ini.

Regular expression di atas dapat dituliskan sebagai berikut:

1
match_pattern = re.search(r'\b[a-z]{3,15}\b', text_string)

Karena kita ingin mencari melalui banyak kata di dalam dokumen, kita dapat menggunakan function findall:

Mengembalikan semua kecocokan non-overlap pola di dalam string, sebagai sebuah daftar string. String dipindai dari kiri ke kanan, dan kecocokan dikembalikan di dalam urutan yang ditemukan. Jika satu atau lebih group disajikan di dalam pola, kembalikan daftar group; ini akan menjadi daftar tuples jika pola memiliki lebih dari satu group. Kecocokan yang kosong dicantumkan di dalam hasil kecuali mereka menyentuh awalan kecocokan lainnya.

Pada titik ini, kita ingin menemukan frekuensi tiap kata di dalam dokumen. Konsep yang sesuai untuk digunakan di sini adalah Kamus Python, karena kita memerlukan pasangan key-value, dimana key adalah kata, dan value mewakili frekuensi kata yang tampil di dalam dokumen.

Anggap kita menyatakan sebuah kamus kosong frequency = { }, paragraf di atas akan tampak sebagai berikut:

1
for word in match_pattern:
2
    count = frequency.get(word,0)
3
    frequency[word] = count + 1

Sekarang kita dapat melihat key kita menggunakan:

1
frequency_list = frequency.keys()

Terakhir, untuk mendapatkan kata dan frekuensinya (angka jumlah munculnya itu di dalam file teks), kita dapat melakukan hal di bawah ini:

1
for words in frequency_list:
2
    print words, frequency[words]

Mari letakkan program bersama-sama di dalam section berikutnya, dan lihat bagaimana tampaknya output.

Meletakkan Semuanya Bersama-sama

Setelah mendiskusikan program tahap demi tahap, sekarang mari lihat bagaimana tampilan program:

1
import re
2
import string
3
frequency = {}
4
document_text = open('test.txt', 'r')
5
text_string = document_text.read().lower()
6
match_pattern = re.findall(r'\b[a-z]{3,15}\b', text_string)
7
8
for word in match_pattern:
9
    count = frequency.get(word,0)
10
    frequency[word] = count + 1
11
    
12
frequency_list = frequency.keys()
13
14
for words in frequency_list:
15
    print words, frequency[words]

Jika kamu menjalankan program, kamu harusnya mendapatkan sesuatu seperti di bawah ini:

Mac OS X terminalMac OS X terminalMac OS X terminal

Mari kembali ke permainan kita. Dengan menelusuri frekuensi kata, apa yang kamu pikirkan tentang topik file teks (dengan konten yang berasal dari tutorial Python saya yang lainnya)?

(Petunjuk: periksa kata dengan frekuensi maksimum).

Advertisement
Did you find this post useful?
Want a weekly email summary?
Subscribe below and we’ll send you a weekly email summary of all new Code tutorials. Never miss out on learning about the next big thing.
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.