Rumah > pembangunan bahagian belakang > Tutorial Python > Cara Menggunakan Python untuk Mencari Pengagihan Zipf Fail Teks

Cara Menggunakan Python untuk Mencari Pengagihan Zipf Fail Teks

Jennifer Aniston
Lepaskan: 2025-03-05 09:58:11
asal
924 orang telah melayarinya

How to Use Python to Find the Zipf Distribution of a Text File

Tutorial ini menunjukkan cara menggunakan Python untuk memproses konsep statistik undang -undang ZIPF dan menunjukkan kecekapan bacaan Python dan menyusun fail teks besar ketika memproses undang -undang.

Anda mungkin tertanya -tanya apa istilah

pengedaran zipf bermakna. Untuk memahami istilah ini, kita perlu menentukan undang -undang ZIPF. Jangan risau, saya akan cuba memudahkan arahan. Undang -undang ZIPF

Undang -undang Zipf hanya bermaksud: Dalam korpus bahasa semulajadi yang besar, kata -kata yang paling kerap berlaku muncul kira -kira dua kali lebih kerap sebagai kata -kata yang kerap kedua, tiga kali sebagai kata -kata kerap ketiga, empat kali sebagai kata -kata yang kerap keempat, dan sebagainya.

mari kita lihat contoh. Jika anda melihat corpus coklat dalam bahasa Inggeris Amerika, anda akan melihat bahawa perkataan yang paling kerap adalah "yang" (muncul 69,971 kali). Kata kedua yang sering muncul "dari" muncul 36,411 kali.

"The" akaun kira -kira 7% daripada perbendaharaan kata corpus coklat (69,971 daripada lebih daripada 1 juta perkataan). Dan "daripada" menyumbang kira -kira 3.6% daripada korpus (kira -kira separuh daripada "the"). Oleh itu, kita dapat melihat bahawa undang -undang ZIPF terpakai untuk kes ini.

Oleh itu, undang -undang Zipf cuba memberitahu kita bahawa sebilangan kecil item biasanya menduduki sebahagian besar aktiviti yang kita perhatikan. Sebagai contoh, beberapa penyakit (kanser, penyakit kardiovaskular) menyumbang sebahagian besar kematian. Ini juga terpakai kepada kata -kata yang menduduki kebanyakan kekerapan kata -kata dalam karya sastera, serta banyak contoh lain dalam kehidupan kita.

Penyediaan data

Sebelum meneruskan, izinkan saya memperkenalkan anda kepada data eksperimen yang akan kami gunakan dalam tutorial ini. Data kami datang dari versi teks Dracula yang terdapat di laman web Projek Gutenberg.

Pembinaan Program

Selepas memuat turun data dari bahagian sebelumnya, mari kita mula membina skrip python yang akan mencari pengedaran ZIPF data dalam

dracula.txt

.

Langkah pertama ialah menggunakan fungsi untuk membaca fail.

Oleh kerana kita mencari corak (iaitu kata -kata), ungkapan biasa berguna. Kami akan menggunakan Python

untuk menghapuskan sebarang perkataan yang bukan kata -kata dalam erti kata tradisional. Sebagai contoh, ia tidak akan sepadan dengan robotics_89, 40_pie_40, dan Bigmango. "Bigmango" tidak sepadan kerana ia bermula dengan pelbagai huruf besar. read()

Ekspresi biasa ini pada dasarnya memberitahu kita untuk mencari semua perkataan yang bermula dengan huruf (topi atau huruf kecil) diikuti oleh sekurang -kurangnya 2 aksara dan tidak lebih daripada 9 aksara. Dalam erti kata lain, saiz perkataan yang terkandung dalam julat output dari 3 hingga 10 aksara.

b[A-Za-z][a-z]{2,9}b Di Python, ini boleh dinyatakan sebagai:

Sekarang, kita boleh menjalankan gelung untuk mengira kekerapan setiap kejadian:

words = re.findall(r'(\b[A-Za-z][a-z]{2,9}\b)', file_to_string)
Salin selepas log masuk
Salin selepas log masuk
Di sini, jika perkataan tidak terdapat dalam senarai perkataan, kami menggunakan fungsi

untuk melintasi nilai -nilai supaya kita juga dapat menjejaki kedudukan indeks kata -kata yang berbeza dan bukannya membuang ralat gelung.

Kekerapan perkataan yang paling kerap dibahagikan dengan kekerapan kata -kata lain untuk mengira nisbah mereka. Ini membolehkan kita melihat bagaimana undang -undang Zipf diikuti.

Mengintegrasikan semua kandungan

Setelah memahami blok bangunan yang berlainan dalam program, mari kita lihat bagaimana mereka disatukan:

words = re.findall(r'(\b[A-Za-z][a-z]{2,9}\b)', file_to_string)
Salin selepas log masuk
Salin selepas log masuk

di sini saya akan memaparkan sepuluh perkataan pertama yang dikembalikan oleh program dan kekerapannya:

for word in words:
    count = frequency.get(word,0)
    frequency[word] = count + 1
Salin selepas log masuk

Dari pengedaran ZIPF ini, kita dapat mengesahkan undang -undang ZIPF, iaitu beberapa perkataan (kata -kata frekuensi tinggi) mewakili kebanyakan perkataan, seperti "", "dan", "itu", "adalah" dan "untuk".

Kesimpulan

Dalam tutorial ini, kita melihat bagaimana Python memudahkan pemprosesan konsep statistik seperti undang -undang ZIPF. Terutama apabila berurusan dengan fail teks besar, Python sangat mudah, dan jika kita secara manual mencari pengagihan ZIPF, ia memerlukan banyak masa dan usaha. Seperti yang dapat kita lihat, kita dapat dengan cepat memuat, menghuraikan dan mencari pengagihan ZIPF fail saiz 28 MB. Dan kerana kamus Python, output menyusun juga mudah.

Artikel ini telah dikemas kini dan mengandungi sumbangan dari Monty Shokeen. Monty adalah pemaju stack penuh yang juga suka menulis tutorial dan mempelajari perpustakaan JavaScript baru.

Atas ialah kandungan terperinci Cara Menggunakan Python untuk Mencari Pengagihan Zipf Fail Teks. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan