Tutorial ini menunjukkan kepada anda bagaimana untuk menentukan topik utama dokumen dengan cepat dengan menganalisis kekerapan perkataan menggunakan python. Kejadian perkataan secara manual adalah membosankan; Pendekatan automatik ini memudahkan proses.
Kami akan menggunakan fail teks sampel, test.txt
(muat turun, tetapi jangan mengintip!), Untuk menggambarkan. Matlamatnya adalah untuk meneka subjek tutorial berdasarkan kekerapan perkataan.
Memahami ungkapan biasa
Proses ini menggunakan Ekspresi Biasa (REGEX). Jika tidak dikenali, regex adalah urutan watak yang menentukan corak carian untuk padanan rentetan (seperti "Cari dan Ganti"). Untuk menyelam yang lebih mendalam, rujuk kepada tutorial Regex yang berdedikasi.
Membina program
Baca fail: Program ini bermula dengan membaca fail teks ke dalam rentetan:
document_text = open('test.txt', 'r') text_string = document_text.read().lower()
Ekspresi biasa: kata -kata penapis regex dengan 3 hingga 15 aksara:
match_pattern = re.findall(r'\b[a-z]{3,15}\b', text_string)
kekerapan perkataan: Kamus menjejaki frekuensi perkataan:
frequency = {} for word in match_pattern: count = frequency.get(word, 0) frequency[word] = count + 1
output: Program kemudian mencetak setiap perkataan dan kekerapannya:
frequency_list = frequency.keys() for word in frequency_list: print(word, frequency[word])
Program Lengkap
inilah kod python gabungan:
import re frequency = {} document_text = open('test.txt', 'r') text_string = document_text.read().lower() match_pattern = re.findall(r'\b[a-z]{3,15}\b', text_string) for word in match_pattern: count = frequency.get(word, 0) frequency[word] = count + 1 frequency_list = frequency.keys() for word in frequency_list: print(word, frequency[word])
Running Ini akan mengeluarkan senarai frekuensi perkataan. Petunjuk perkataan yang paling kerap di topik tutorial asal.
mengendalikan fail teks yang lebih besar
untuk fail yang lebih besar, menyusun kamus kekerapan memudahkan mencari kata -kata yang paling kerap:
import re frequency = {} document_text = open('dracula.txt', 'r') # Example: dracula.txt text_string = document_text.read().lower() match_pattern = re.findall(r'\b[a-z]{3,15}\b', text_string) for word in match_pattern: count = frequency.get(word, 0) frequency[word] = count + 1 most_frequent = dict(sorted(frequency.items(), key=lambda elem: elem[1], reverse=True)) most_frequent_count = most_frequent.keys() for word in most_frequent_count: print(word, most_frequent[word])
untuk memperbaiki analisis, tidak termasuk kata -kata biasa seperti "," "dan," dan sebagainya, menggunakan senarai hitam:
Ini menyediakan analisis yang lebih fokus.
import re frequency = {} document_text = open('dracula.txt', 'r') text_string = document_text.read().lower() match_pattern = re.findall(r'\b[a-z]{3,15}\b', text_string) blacklisted = ['the', 'and', 'for', 'that', 'which'] for word in match_pattern: if word not in blacklisted: count = frequency.get(word, 0) frequency[word] = count + 1 most_frequent = dict(sorted(frequency.items(), key=lambda elem: elem[1], reverse=True)) most_frequent_count = most_frequent.keys() for word in most_frequent_count: print(word, most_frequent[word])
Skrip Python yang dipertingkatkan ini menawarkan kaedah yang mantap untuk menganalisis teks dan mengenal pasti topik utama berdasarkan kekerapan perkataan. Ingatlah untuk menyesuaikan kriteria panjang dan perkataan panjang untuk memenuhi keperluan khusus anda.
Atas ialah kandungan terperinci Mengira kekerapan perkataan dalam fail menggunakan python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!