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

Undress AI Tool
Gambar buka pakaian secara percuma

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

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

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

NotebookLM Google adalah alat pengambilan nota AI pintar yang dikuasakan oleh Gemini 2.5, yang cemerlang dalam meringkaskan dokumen. Walau bagaimanapun, ia masih mempunyai batasan penggunaan alat, seperti topi sumber, pergantungan awan, dan ciri "Discover" baru -baru ini

Berikut adalah sepuluh trend yang menarik yang membentuk semula landskap AI perusahaan. Komitmen kewangan untuk llmsorganizations secara signifikan meningkatkan pelaburan mereka di LLM, dengan 72% menjangkakan perbelanjaan mereka meningkat tahun ini. Pada masa ini, hampir 40% a

Pelaburan adalah berkembang pesat, tetapi modal sahaja tidak mencukupi. Dengan penilaian yang semakin meningkat dan tersendiri pudar, pelabur dalam dana usaha yang berfokus pada AI mesti membuat keputusan utama: Beli, membina, atau rakan kongsi untuk mendapatkan kelebihan? Inilah cara menilai setiap pilihan dan PR

Pendedahan: Syarikat saya, Tirias Research, telah berunding untuk IBM, NVIDIA, dan syarikat -syarikat lain yang disebutkan dalam artikel ini. Pemandu Growth Surge dalam penggunaan AI generatif lebih dramatik daripada unjuran yang paling optimis dapat diramalkan. Kemudian, a

Hari -hari itu bernombor, terima kasih kepada AI. Cari lalu lintas untuk perniagaan seperti tapak perjalanan kayak dan syarikat edtech Chegg menurun, sebahagiannya kerana 60% carian di laman web seperti Google tidak mengakibatkan pengguna mengklik sebarang pautan, menurut satu stud

Jurang antara penggunaan yang meluas dan kesediaan emosi mendedahkan sesuatu yang penting tentang bagaimana manusia terlibat dengan pelbagai sahabat digital mereka. Kami memasuki fasa kewujudan bersama di mana algoritma menenun ke dalam harian kami

Mari kita bercakap mengenainya. Analisis terobosan AI yang inovatif ini adalah sebahagian daripada liputan lajur Forbes yang berterusan pada AI terkini, termasuk mengenal pasti dan menerangkan pelbagai kerumitan AI yang memberi kesan (lihat pautan di sini). Menuju ke Agi dan

Mari kita lihat dengan lebih dekat apa yang saya dapati paling penting - dan bagaimana Cisco dapat membina usaha semasa untuk merealisasikan cita -citanya. (Nota: Cisco adalah pelanggan penasihat firma saya, Moor Insights & Strategy.) Berfokus pada AIS dan CU Agentik dan CU
