Analisis statistik teks menggunakan perpustakaan pynlpl
Pengenalan
Analisis statistik teks adalah salah satu langkah penting dalam pemprosesan teks. Ia membantu kita memahami data teks kita dengan cara yang mendalam dan matematik. Analisis jenis ini dapat membantu kita memahami corak tersembunyi, dan berat kata -kata tertentu dalam ayat, dan secara keseluruhan, membantu dalam membina model bahasa yang baik. Pynlpl atau seperti yang kita panggil ia Pineapple Library, adalah salah satu perpustakaan Python terbaik untuk analisis statistik teks. Perpustakaan ini juga berguna untuk tugas-tugas lain seperti pembersihan dan penganalisis teks, dan ia menyediakan fungsi pra-pemprosesan teks seperti tokenizers, pengekstrak n-gram, dan banyak lagi. Di samping itu, Pynlpl boleh digunakan untuk membina model bahasa yang mudah.
Dalam blog ini, anda akan memahami cara melakukan analisis teks menggunakan pynlpl. Kami akan mula memahami semua cara untuk memasang perpustakaan ini di sistem kami. Seterusnya, kita akan memahami istilah matriks bersama-sama dan pelaksanaannya menggunakan perpustakaan Pynlpl. Selepas itu, kami akan belajar bagaimana untuk membuat senarai kekerapan untuk mengenal pasti perkataan yang paling berulang. Seterusnya, kami akan melakukan analisis pengedaran teks untuk mengukur persamaan antara dua dokumen teks atau rentetan. Akhirnya, kita akan memahami dan mengira jarak leveshtein menggunakan perpustakaan ini. Anda boleh mengikuti dan kod sendiri, atau anda boleh mengklik butang 'Salin & Edit' dalam pautan ini untuk melaksanakan semua program.
Objektif pembelajaran
- Memahami cara memasang perpustakaan ini secara terperinci melalui semua kaedah yang ada.
- Ketahui cara membuat matriks bersama-sama untuk menganalisis hubungan perkataan.
- Belajar untuk melaksanakan tugas -tugas biasa seperti menjana senarai frekuensi dan mengira jarak Levenshtein.
- Belajar untuk melaksanakan tugas -tugas lanjutan seperti menjalankan analisis pengedaran teks dan mengukur persamaan dokumen.
Artikel ini diterbitkan sebagai sebahagian daripada Blogathon Sains Data.
Jadual Kandungan
- Bagaimana cara memasang pynlpl?
- Bagaimana cara menggunakan pynlpl untuk analisis teks?
- Matriks Co-occurrence Terma
- Senarai Kekerapan
- Analisis pengedaran teks
- Jarak Levenshtein
- Mengukur kesamaan dokumen
- Soalan yang sering ditanya
Bagaimana cara memasang pynlpl?
Kami boleh memasang perpustakaan ini dalam dua cara, pertama menggunakan PYPI, dan kedua menggunakan GitHub.
Melalui PYPI
Untuk memasangnya menggunakan Pypi Paste arahan di bawah di terminal anda.
PIP Pasang Pynlpl
Jika anda menggunakan buku nota seperti Jupyter Notebook, Notebook Kaggle, atau Google Colab, kemudian tambahkan '!' sebelum arahan di atas.
Melalui GitHub
Untuk memasang perpustakaan ini menggunakan GitHub, klon repositori Pynlpl rasmi ke dalam sistem anda menggunakan arahan di bawah.
Git Clone https://github.com/proycon/pynlpl.git
Kemudian tukar direktori terminal anda ke folder ini menggunakan 'CD' kemudian tampal arahan di bawah ini untuk memasang perpustakaan.
pemasangan python3 setup.py
Bagaimana cara menggunakan pynlpl untuk analisis teks?
Marilah kita meneroka bagaimana kita boleh menggunakan Pynlpl untuk analisis teks.
Matriks Co-occurrence Terma
Matriks Co-occurrence Term (TCM) adalah kaedah statistik untuk mengenal pasti seberapa kerap perkataan bersama dengan perkataan tertentu dalam teks. Matriks ini membantu kita memahami hubungan antara kata -kata dan boleh mendedahkan corak tersembunyi yang berguna. Ia biasanya digunakan dalam membina ringkasan teks, kerana ia memberikan hubungan antara kata -kata yang dapat membantu menghasilkan ringkasan ringkas. Sekarang, mari kita lihat bagaimana untuk membina matriks ini menggunakan perpustakaan Pynlpl.
Kami akan terlebih dahulu mengimport fungsi senarai frekuensi dari pynlpl.statistics, yang digunakan untuk mengira berapa kali perkataan telah diulang dalam teks. Kami akan meneroka ini dengan lebih terperinci di bahagian kemudian. Di samping itu, kami akan mengimport kaedah lalai dari modul koleksi. Seterusnya, kami akan membuat fungsi bernama create_cooccurrence_matrix, yang mengambil input teks dan saiz tetingkap, dan mengembalikan matriks. Dalam fungsi ini, kita akan terlebih dahulu memecah teks ke dalam kata-kata individu dan membuat matriks kejadian bersama menggunakan lalai. Untuk setiap perkataan dalam teks, kami akan mengenal pasti kata-kata konteksnya dalam saiz tetingkap yang ditentukan dan mengemas kini matriks kejadian bersama. Akhirnya, kami akan mencetak matriks dan memaparkan kekerapan setiap istilah.
dari pynlpl.Statistics Import Frekuensi dari koleksi Import DefaultDict def create_cooccurrence_matrix (teks, window_size = 2): perkataan = text.split () cooccurrence_matrix = defaultDict (frekuensi senarai) Untuk saya, perkataan dalam menghitung (perkataan): mula = max (i - window_size, 0) akhir = min (i window_size 1, len (kata)) konteks = perkataan [mula: i] perkataan [i 1: end] untuk context_word dalam konteks: cooccurrence_matrix [word.lower ()]. Count (context_word.lower ()) kembali cooccurrence_matrix Teks = "Hello Ini adalah Analytics Vidhya dan anda melakukan yang hebat sejauh ini meneroka topik sains data. Analytics Vidhya adalah platform yang hebat untuk pembelajaran sains data dan pembelajaran mesin." # Membuat Matriks Kejadian Bersama Istilah cooccurrence_matrix = create_cooccurrence_matrix (teks) # Mencetak istilah matriks occurrence Cetak ("Matriks Co-occurrence Term:") Untuk jangka masa, context_freq_list dalam cooccurrence_matrix.items (): cetak (f "{term}: {dict (context_freq_list)}")
Output:
Senarai Kekerapan
Senarai kekerapan akan mengandungi bilangan kali perkataan tertentu telah diulang dalam dokumen atau perenggan. Ini adalah fungsi yang berguna untuk memahami tema utama dan konteks keseluruhan dokumen. Kami biasanya menggunakan senarai kekerapan dalam medan seperti linguistik, pengambilan maklumat, dan perlombongan teks. Sebagai contoh, enjin carian menggunakan senarai kekerapan untuk menilai halaman web. Kami juga boleh menggunakan ini sebagai strategi pemasaran untuk menganalisis ulasan produk dan memahami sentimen awam utama produk.
Sekarang, mari kita lihat cara membuat senarai kekerapan ini menggunakan perpustakaan Pynlpl. Kami akan terlebih dahulu mengimport fungsi senarai frekuensi dari pynlpl.statistics. Kemudian, kita akan mengambil teks sampel ke dalam pembolehubah dan memecah keseluruhan teks ke dalam kata -kata individu. Kami kemudian akan lulus pembolehubah 'kata' ini ke dalam fungsi senarai frekuensi. Akhirnya, kami akan melangkah melalui item dalam senarai kekerapan dan mencetak setiap perkataan dan kekerapan yang sepadan.
dari pynlpl.Statistics Import Frekuensi Teks = "Hello Ini adalah Analytics Vidhya dan anda melakukan yang hebat sejauh ini meneroka topik sains data. Analytics Vidhya adalah platform yang hebat untuk pembelajaran sains data dan pembelajaran mesin." perkataan = text.lower (). Split () freq_list = frekuensi (kata) Untuk perkataan, freq dalam freq_list.items (): cetak (f "{word}: {freq}")
Output:
Analisis pengedaran teks
Dalam analisis pengedaran teks, kita mengira kekerapan dan kebarangkalian pengagihan kata -kata dalam satu ayat, untuk memahami kata -kata mana yang membentuk konteks ayat. Dengan mengira pengagihan frekuensi perkataan ini, kita dapat mengenal pasti kata -kata yang paling biasa dan sifat statistik mereka, seperti entropi, kebingungan, mod, dan entropi maks. Mari fahami sifat -sifat ini satu demi satu:
- Entropi : Entropi adalah ukuran rawak dalam pengedaran. Dari segi data teks, entropi yang lebih tinggi bermakna teks mempunyai pelbagai perbendaharaan kata dan kata -kata kurang diulangi.
- Kebingungan : Kebingungan adalah ukuran seberapa baik model bahasa meramalkan pada data sampel. Jika kebingungan lebih rendah maka teks mengikuti corak yang boleh diramal.
- Mod : Seperti yang kita semua telah mempelajari istilah ini sejak zaman kanak -kanak, ia memberitahu kita perkataan yang paling berulang dalam teks.
- Entropi Maksimum : Harta ini memberitahu kami entropi maksimum teks boleh dimiliki. Bermakna ia memberikan titik rujukan untuk membandingkan entropi sebenar pengedaran.
Kami juga boleh mengira kandungan maklumat perkataan tertentu, yang bermaksud kita dapat mengira jumlah maklumat yang disediakan oleh suatu perkataan.
Melaksanakan menggunakan pynlpl
Sekarang mari kita lihat bagaimana untuk melaksanakan semua ini menggunakan pynlpl.
Kami akan mengimport fungsi pengedaran dan frekuensi dari modul pynlpl.statistik dan modul matematik. Seterusnya, kami akan membuat teks sampel dan mengira kekerapan setiap perkataan dalam teks itu. Untuk melakukan ini, kami akan mengikuti langkah yang sama seperti di atas. Kemudian, kami akan membuat objek fungsi pengedaran dengan lulus senarai kekerapan. Kami kemudian akan memaparkan pengedaran setiap perkataan dengan melengkung melalui item pemboleh ubah pengedaran. Untuk mengira entropi, kami akan memanggil fungsi edaran.entropi ().
Untuk mengira kebingungan, kami akan memanggil pengedaran.Permplexity (). Untuk mod, kami akan memanggil edaran.mode (). Untuk mengira entropi maksimum, kami akan memanggil pengedaran.maxentropy (). Akhirnya, untuk mendapatkan kandungan maklumat perkataan tertentu, kami akan memanggil edaran.Formation (Word). Dalam contoh di bawah, kami akan lulus perkataan mod sebagai parameter ke fungsi ini.
Import Matematik Dari pynlpl.Statistik Pengagihan Import, Senarai Kekerapan Teks = "Hello Ini adalah Analytics Vidhya dan anda melakukan yang hebat sejauh ini meneroka topik sains data. Analytics Vidhya adalah platform yang hebat untuk pembelajaran sains data dan pembelajaran mesin." # Mengira frekuensi perkataan perkataan = text.lower (). Split () freq_list = frekuensi (kata) word_counts = dict (freq_list.items ()) # Membuat objek pengedaran dari frekuensi perkataan pengedaran = pengedaran (word_counts) # Memaparkan pengedaran Cetak ("Pengedaran:") Untuk perkataan, prob dalam edaran.items (): cetak (f "{word}: {prob: .4f}") # Pelbagai statistik Cetak ("\ nStatistics:") cetak (f "entropi: {distribusi.entropy (): 4f}") cetak (f "kebingungan: {distribusi.perplexity (): 4f}") cetak (f "mod: {distribusi.mode ()}") cetak (f "max entropy: {distribusi.maxentropy (): 4f}") # Kandungan maklumat perkataan 'mod' perkataan = distribusi.mode () maklumat_content = edaran.formation (perkataan) cetak (f "Kandungan maklumat '{word}': {maklumat_content: .4f}")
Output:
Jarak Levenshtein
Jarak Levenshtein adalah ukuran perbezaan antara dua perkataan. Ia mengira berapa banyak perubahan watak tunggal yang diperlukan untuk dua perkataan untuk menjadi sama. Ia mengira berdasarkan penyisipan, penghapusan, atau penggantian watak dalam satu perkataan. Metrik jarak ini biasanya digunakan untuk memeriksa ejaan, analisis urutan DNA, dan tugas pemprosesan bahasa semulajadi seperti persamaan teks yang akan kami laksanakan di bahagian seterusnya, dan ia boleh digunakan untuk membina pengesan plagiarisme. Dengan mengira jarak Levenshtein, kita dapat memahami hubungan antara dua perkataan, kita dapat mengetahui jika dua perkataan sama atau tidak. Sekiranya jarak Levenshtein sangat kurang maka kata -kata tersebut boleh mempunyai makna atau konteks yang sama, dan jika ia sangat tinggi maka itu bermakna mereka adalah kata -kata yang sama sekali berbeza.
Untuk mengira jarak ini, kami akan terlebih dahulu mengimport fungsi levenshtein dari modul pynlpl.statistik. Kami kemudian akan menentukan dua perkataan, 'analisis' dan 'analisis'. Seterusnya, kami akan menyampaikan kata -kata ini ke dalam fungsi Levenshtein, yang akan mengembalikan nilai jarak. Seperti yang dapat anda lihat dalam output, jarak Levenshtein antara kedua-dua perkataan ini adalah 2, yang bermaksud hanya mengambil dua suntingan aksara tunggal untuk menukar 'analisis' kepada 'analisis'. Edit pertama menggantikan watak ' T ' dengan ' S ' dalam 'Analytics', dan edit kedua memadam watak ' C ' pada Indeks 8 dalam 'Analytics'.
dari pynlpl.statistik import levenshtein Word1 = "Analytics" Word2 = "Analisis" jarak = levenshtein (word1, word2) cetak (f "levenshtein jarak antara '{word1}' dan '{word2}': {jarak}")
Output:
Mengukur kesamaan dokumen
Mengukur bagaimana dua dokumen atau ayat yang serupa boleh berguna dalam banyak aplikasi. Ia membolehkan kita memahami betapa rapatnya kedua -dua dokumen tersebut. Teknik ini digunakan dalam banyak aplikasi seperti pemeriksa plagiarisme, pemeriksa perbezaan kod, dan banyak lagi. Dengan menganalisis bagaimana kedua -dua dokumen itu dapat mengenal pasti pendua. Ini juga boleh digunakan dalam sistem cadangan, di mana hasil carian yang ditunjukkan kepada Pengguna A boleh ditunjukkan kepada Pengguna B yang menaip pertanyaan yang sama.
Sekarang untuk melaksanakannya, kami akan menggunakan metrik persamaan kosinus. Pertama, kami akan mengimport dua fungsi: senarai frekuensi dari perpustakaan Pynlpl dan SQRT dari modul matematik. Sekarang kita akan menambah dua rentetan kepada dua pembolehubah, sebagai ganti rentetan hanya kita boleh membuka dua dokumen teks juga. Seterusnya, kami akan membuat senarai kekerapan rentetan ini dengan menyampaikannya ke fungsi frekuensi yang kami import sebelumnya. Kami kemudian akan menulis fungsi yang dinamakan Cosine_Similarity, di mana kami akan lulus dua senarai kekerapan sebagai input. Dalam fungsi ini, kita akan mula membuat vektor dari senarai kekerapan, dan kemudian mengira kosinus sudut antara vektor ini, memberikan ukuran persamaan mereka. Akhirnya, kami akan memanggil fungsi dan mencetak hasilnya.
dari pynlpl.Statistics Import Frekuensi dari sqrt import matematik Doc1 = "Analytics Vidhya memberikan pandangan dan tutorial yang berharga mengenai sains data dan pembelajaran mesin." Doc2 = "Jika anda mahukan tutorial mengenai sains data dan pembelajaran mesin, lihat Analytics Vidhya." # Membuat objek senarai frekuensi untuk kedua -dua dokumen freq_list1 = frekuensi (doc1.lower (). Split ()) freq_list2 = frekuensi (doc2.lower (). Split ()) def cosine_similarity (freq_list1, freq_list2): vec1 = {word: freq_list1 [word] untuk perkataan, _ in freq_list1} vec2 = {word: freq_list2 [word] untuk perkataan, _ in freq_list2} persimpangan = set (vec1.keys ()) & set (vec2.keys ()) pengangka = jumlah (vec1 [word] * vec2 [word] untuk perkataan di persimpangan) sum1 = jumlah (vec1 [word] ** 2 untuk perkataan dalam vec1.keys ()) sum2 = sum (vec2 [word] ** 2 untuk perkataan dalam vec2.keys ()) denominator = sqrt (sum1) * sqrt (sum2) Sekiranya bukan penyebut: kembali 0.0 Kembali Float (pengangka) / penyebut # Calculatinng Cosine Persamaan persamaan = cosine_similarity (freq_list1, freq_list2) cetak (f "persamaan kosin: {persamaan: .4f}")
Output:
Kesimpulan
Pynlpl adalah perpustakaan yang kuat dengan menggunakan analisis statistik teks. Bukan hanya analisis teks, kita juga boleh menggunakan perpustakaan ini untuk beberapa teknik pra-pemprosesan teks seperti tokenization, stemming, pengekstrakan n-gram, dan juga membina beberapa model bahasa yang mudah. Dalam blog ini, kita mula-mula memahami semua cara memasang perpustakaan ini, maka kami menggunakan perpustakaan ini untuk melaksanakan pelbagai tugas seperti melaksanakan matriks occurrence istilah, mewujudkan senarai kekerapan untuk mengenal pasti kata-kata biasa, melakukan analisis pengedaran teks, dan memahami cara mengira jarak levenshtein, dan dikira kesamaan dokumen. Setiap teknik ini boleh digunakan untuk mengekstrak pandangan berharga dari data teks kami, menjadikannya perpustakaan yang berharga. Kali seterusnya anda melakukan analisis teks, pertimbangkan untuk mencuba perpustakaan Pynlpl (Pineapple).
Takeaways utama
- Perpustakaan Pynlpl (Pineapple) adalah salah satu perpustakaan terbaik untuk analisis statistik teks.
- Istilah matriks bersama-sama membantu kita memahami hubungan antara kata-kata dan boleh berguna dalam membina ringkasan.
- Senarai kekerapan berguna untuk memahami tema utama teks atau dokumen.
- Analisis pengedaran teks dan jarak levenshtein dapat membantu kita memahami persamaan teks.
- Kami juga boleh menggunakan perpustakaan Pynlpl untuk memproses teks dan bukan hanya untuk analisis statistik teks.
Soalan yang sering ditanya
Q1. Apa itu Pynlpl?A. Pynlpl, juga dikenali sebagai nanas, adalah perpustakaan python yang digunakan untuk analisis statistik teks dan pra-pemprosesan teks.
S2. Apakah faedah mengukur kesamaan dokumen?A. Teknik ini membolehkan kita mengukur bagaimana dua dokumen atau teks serupa dan boleh digunakan dalam pemeriksa plagiarisme, pemeriksa perbezaan kod, dan banyak lagi.
Q3. Apakah istilah matriks kejadian bersama?A. Matriks bersama-sama boleh digunakan untuk mengenal pasti seberapa kerap dua perkataan bersama dalam dokumen.
Q4. Bagaimana jarak levenshtein berguna?A. Kita boleh menggunakan jarak Levenshtein untuk mencari perbezaan antara dua perkataan, yang boleh berguna dalam bangunan ejaan bangunan.
Media yang ditunjukkan dalam artikel ini tidak dimiliki oleh Analytics Vidhya dan digunakan atas budi bicara penulis.
Atas ialah kandungan terperinci Analisis statistik teks menggunakan perpustakaan pynlpl. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Artikel ini mengkaji semula penjana seni AI atas, membincangkan ciri -ciri mereka, kesesuaian untuk projek kreatif, dan nilai. Ia menyerlahkan Midjourney sebagai nilai terbaik untuk profesional dan mengesyorkan Dall-E 2 untuk seni berkualiti tinggi dan disesuaikan.

Meta's Llama 3.2: Lompat ke hadapan dalam Multimodal dan Mobile AI META baru -baru ini melancarkan Llama 3.2, kemajuan yang ketara dalam AI yang memaparkan keupayaan penglihatan yang kuat dan model teks ringan yang dioptimumkan untuk peranti mudah alih. Membina kejayaan o

Artikel ini membandingkan chatbots AI seperti Chatgpt, Gemini, dan Claude, yang memberi tumpuan kepada ciri -ciri unik mereka, pilihan penyesuaian, dan prestasi dalam pemprosesan bahasa semula jadi dan kebolehpercayaan.

Artikel ini membincangkan pembantu penulisan AI terkemuka seperti Grammarly, Jasper, Copy.ai, WriteSonic, dan Rytr, yang memberi tumpuan kepada ciri -ciri unik mereka untuk penciptaan kandungan. Ia berpendapat bahawa Jasper cemerlang dalam pengoptimuman SEO, sementara alat AI membantu mengekalkan nada terdiri

Landskap AI minggu ini: Badai kemajuan, pertimbangan etika, dan perdebatan pengawalseliaan. Pemain utama seperti Openai, Google, Meta, dan Microsoft telah melepaskan kemas kini, dari model baru yang terobosan ke peralihan penting di LE

Memo CEO Shopify Tobi Lütke baru -baru ini dengan berani mengisytiharkan penguasaan AI sebagai harapan asas bagi setiap pekerja, menandakan peralihan budaya yang signifikan dalam syarikat. Ini bukan trend seketika; Ini adalah paradigma operasi baru yang disatukan ke p

Hei ada, pengekodan ninja! Apa tugas yang berkaitan dengan pengekodan yang anda telah merancang untuk hari itu? Sebelum anda menyelam lebih jauh ke dalam blog ini, saya ingin anda memikirkan semua kesengsaraan yang berkaitan dengan pengekodan anda-lebih jauh menyenaraikan mereka. Selesai? - Let ’

2024 menyaksikan peralihan daripada menggunakan LLMS untuk penjanaan kandungan untuk memahami kerja dalaman mereka. Eksplorasi ini membawa kepada penemuan agen AI - sistem pengendalian sistem autonomi dan keputusan dengan intervensi manusia yang minimum. Buildin
