Bermula dengan pemprosesan bahasa semula jadi di Python
Tutorial ini direka untuk membimbing anda untuk menggunakan konsep teras NLP dan menganalisis data teks dalam Python. Kami akan belajar bagaimana untuk memecahkan teks ke dalam unit yang lebih kecil (metamorfosis perkataan), menormalkan kata -kata ke dalam bentuk batang (pengekstrakan batang dan pemulihan morfologi), dan bagaimana untuk membersihkan dokumen sebagai persediaan untuk analisis lanjut.
mari kita mulakan!
mata teras
- Pemprosesan Bahasa Semula Jadi Python (NLP) melibatkan melanggar teks ke dalam elemen perkataan, menormalkan kata -kata ke dalam bentuk batang, dan membersihkan dokumen untuk analisis lanjut. Kami akan menggunakan perpustakaan NLTK Python untuk melaksanakan operasi ini.
- Dua teknik untuk menukar kata -kata ke dalam bentuk batang adalah pengekstrakan batang dan pemulihan bentuk leksikal. Pengekstrakan batang adalah algoritma mudah yang menghilangkan afiks perkataan;
- Pembersihan data di NLP melibatkan menghapuskan tanda baca dan menghentikan kata -kata (seperti kata -kata biasa seperti "i," "A" dan "The"), kerana kata -kata ini memberikan sedikit makna apabila menganalisis teks.
- Selepas membersihkan teks, anda boleh menggunakan kelas NLTK
- untuk mencari kekerapan perkataan. Ini sangat berguna untuk mencari istilah biasa dalam teks.
FreqDist
Langkah berjaga -jaga
Tutorial ini menggunakan perpustakaan NLTK Python untuk melaksanakan semua operasi NLP pada teks. Apabila menulis tutorial ini, kami menggunakan versi NLTK 3.4. Anda boleh memasang perpustakaan menggunakan arahan PIP di terminal:
pip install nltk==3.4
import nltk print(nltk.__version__)
python -m nltk.downloader all
sistem komputer tidak dapat memahami bahasa semula jadi dengan sendirinya. Langkah pertama dalam menangani bahasa semulajadi adalah untuk menukar teks asal menjadi elemen perkataan. Elemen perkataan adalah gabungan aksara berterusan dengan beberapa makna. Terserah kepada anda untuk memecahkan ayat -ayat ke dalam unsur -unsur leksikal. Sebagai contoh, cara yang mudah adalah untuk memecah kalimat dengan ruang untuk memecahkannya ke dalam satu perkataan.
Di perpustakaan NLTK, anda boleh menggunakan fungsi
untuk menukar rentetan kepada elemen leksikal. Walau bagaimanapun, anda perlu memuat turun sumber punkt. Jalankan arahan berikut di terminal:
word_tokenize()
nltk.download('punkt')
untuk menggunakannya: nltk.tokenize
word_tokenize
Output kod
from nltk.tokenize import word_tokenize print(word_tokenize("Hi, this is a nice hotel."))
pip install nltk==3.4
anda akan melihat bahawa word_tokenize
bukan sahaja memisahkan rentetan berdasarkan ruang, tetapi juga memisahkan tanda baca ke dalam elemen perkataan. Menjaga atau mengeluarkan tanda baca bergantung kepada keperluan analisis anda.
Langkah 2: Tukar perkataan ke bentuk batang
Apabila berurusan dengan bahasa semulajadi, anda sering menyedari bahawa terdapat pelbagai bentuk tatabahasa kata yang sama. Sebagai contoh, "pergi," "pergi" dan "pergi" adalah semua bentuk yang berbeza dari kata kerja yang sama "pergi".
Walaupun projek anda mungkin perlu mengekalkan pelbagai bentuk kata -kata tatabahasa, mari kita bincangkan cara untuk menukar bentuk tatabahasa yang berbeza dari perkataan yang sama ke dalam bentuk batangnya. Terdapat dua teknik yang boleh anda gunakan untuk menukar perkataan ke dalam bentuk batangnya.
Teknik pertama adalah pengekstrakan. Pengekstrakan batang adalah algoritma mudah yang menghilangkan afiks perkataan. Terdapat pelbagai algoritma pengekstrakan yang terdapat di NLTK. Dalam tutorial ini, kami akan menggunakan algoritma Porter.
Kami mula -mula mengimport nltk.stem.porter
dari PorterStemmer
. Seterusnya, kami memulakan pengekstrakan stemming ke pembolehubah stemmer
, dan kemudian gunakan kaedah .stem()
untuk mencari bentuk berpunca perkataan:
import nltk print(nltk.__version__)
output kod di atas adalah GO. Sekiranya anda menjalankan pengekstrakan yang berpunca untuk bentuk lain "Go" yang diterangkan di atas, anda akan melihat bahawa pengekstrak yang berpunca mengembalikan bentuk yang sama "Go". Walau bagaimanapun, sejak pengekstrakan yang berpunca hanyalah algoritma mudah berdasarkan menghapuskan afiks perkataan, ia gagal apabila kata -kata digunakan kurang kerap dalam bahasa.
Sebagai contoh, apabila anda cuba menggunakan pengekstrakan yang berpunca untuk perkataan "membentuk", ia memberikan hasil yang tidak disengajakan:
python -m nltk.downloader all
anda akan melihat bahawa output adalah "Constitut".
Masalah ini dapat diselesaikan dengan mengambil pendekatan yang lebih kompleks yang melihat bentuk batang perkataan dalam konteks tertentu. Proses ini dipanggil pengurangan bentuk perkataan. Pemulihan bentuk perkataan menormalkan kata -kata berdasarkan konteks dan perbendaharaan kata teks. Di NLTK, anda boleh menggunakan kelas WordNetLemmatizer
untuk melakukan pemulihan ayat morfologi.
Pertama, anda perlu memuat turun sumber WordNet dari pemuat turun NLTK di terminal Python:
nltk.download('punkt')
Selepas muat turun selesai, anda perlu mengimport kelas WordNetLemmatizer
dan memulakannya:
from nltk.tokenize import word_tokenize print(word_tokenize("Hi, this is a nice hotel."))
Untuk menggunakan pemulihan morfologi, gunakan kaedah .lemmatize()
. Ia menerima dua parameter: perkataan dan konteks. Dalam contoh kami, kami akan menggunakan "V" sebagai konteks. Selepas melihat output kaedah .lemmatize()
, kami akan meneroka konteks lagi:
<code>['Hi', ',', 'this', 'is', 'a', 'nice', 'hotel', '.']</code>
anda akan melihat bahawa kaedah .lemmatize()
dengan betul menukarkan perkataan "membentuk" kepada bentuk batangnya "membentuk". Anda juga akan melihat bahawa pemulihan bentuk perkataan mengambil masa lebih lama daripada pengekstrakan yang berpunca kerana algoritma lebih kompleks.
mari kita periksa cara untuk menentukan parameter kedua kaedah .lemmatize()
. NLTK mempunyai fungsi pos_tag()
yang membantu menentukan konteks kata -kata dalam satu ayat. Walau bagaimanapun, anda perlu memuat turun averaged_perceptron_tagger
sumber:
pip install nltk==3.4
Seterusnya, import fungsi pos_tag()
dan jalankan pada ayat:
import nltk print(nltk.__version__)
anda akan melihat bahawa output adalah senarai pasangan. Setiap pasangan mengandungi elemen perkataan dan tagnya yang mewakili konteks elemen perkataan di seluruh teks. Sila ambil perhatian bahawa label tanda baca itu sendiri:
python -m nltk.downloader all
bagaimana untuk menyahkod konteks setiap perkataan? Berikut adalah senarai lengkap semua tag di web dan makna yang sepadan. Sila ambil perhatian bahawa semua kata nama mempunyai label bermula dengan "N" dan semua kata kerja mempunyai label bermula dengan "V". Kita boleh menggunakan maklumat ini dalam parameter kedua kaedah .lemmatize()
:
nltk.download('punkt')
output kod di atas adalah seperti berikut:
from nltk.tokenize import word_tokenize print(word_tokenize("Hi, this is a nice hotel."))
output ini adalah seperti yang diharapkan, dan "membentuk" dan "majistret" ditukarkan kepada "membentuk" dan "majistret" masing -masing.
Langkah 3: Pembersihan Data
Langkah seterusnya dalam menyediakan data adalah untuk membersihkan data dan mengeluarkan apa -apa yang tidak akan menambah makna pada analisis anda. Secara keseluruhan, kita akan melihat bagaimana tanda baca dan kata -kata berhenti dapat dikeluarkan dari analisis.
Mengeluarkan tanda baca adalah tugas yang agak mudah. string
Objek punctuation
perpustakaan mengandungi semua tanda baca dalam bahasa Inggeris:
<code>['Hi', ',', 'this', 'is', 'a', 'nice', 'hotel', '.']</code>
output coretan kod ini adalah seperti berikut:
from nltk.stem.porter import PorterStemmer stemmer = PorterStemmer() print(stemmer.stem("going"))
Untuk mengeluarkan tanda baca dari elemen perkataan, anda hanya boleh menjalankan kod berikut:
print(stemmer.stem("constitutes"))
Seterusnya, kita akan memberi tumpuan kepada cara menghapuskan kata -kata berhenti. Kata -kata hentikan kata -kata yang biasa digunakan dalam bahasa, seperti "Saya," "A" dan "The", dan ketika menganalisis teks, kata -kata ini memberikan sedikit makna. Oleh itu, kami akan mengeluarkan kata -kata berhenti dari analisis. Pertama, muat turun sumber stopwords dari NLTK Downloader:
nltk.download('wordnet')
Selepas memuat turun selesai, import nltk.corpus
dari stopwords
dan gunakan kaedah words()
, dengan "Bahasa Inggeris" sebagai parameter. Berikut adalah senarai 179 perkataan berhenti dalam bahasa Inggeris:
from nltk.stem.wordnet import WordNetLemmatizer lem = WordNetLemmatizer()
kita boleh menggabungkan contoh perkataan memulihkan contoh dengan konsep yang dibincangkan dalam bahagian ini untuk membuat fungsi berikut clean_data()
. Di samping itu, kami akan menukar perkataan ke huruf kecil sebelum membandingkan sama ada ia adalah sebahagian daripada senarai Word Stop. Dengan cara ini, jika perkataan berhenti muncul pada permulaan ayat dan memanfaatkan, kita masih boleh menangkapnya:
print(lem.lemmatize('constitutes', 'v'))
Output contoh ini adalah seperti berikut:
nltk.download('averaged_perceptron_tagger')
seperti yang anda lihat, kata -kata tanda baca dan berhenti telah dikeluarkan.
Pengagihan frekuensi perkataan
Sekarang anda sudah biasa dengan teknik pembersihan asas di NLP, mari kita cuba mencari kekerapan kata -kata dalam teks. Dalam latihan ini, kami akan menggunakan teks kisah "tikus, burung, dan sosej dongeng", yang boleh didapati secara percuma di projek Gutenberg. Kami akan menyimpan teks kisah dongeng ini dalam rentetan text
.
text
Untuk mencari pengagihan frekuensi perkataan dalam teks, anda boleh menggunakan kelas clean_data
nltk. Inisialisasi kelas dengan elemen perkataan sebagai parameter. Kemudian gunakan kaedah
pip install nltk==3.4
FreqDist
Berikut adalah sepuluh istilah yang paling kerap dilihat dalam kisah dongeng ini: .most_common()
import nltk print(nltk.__version__)
Apabila menganalisis teks, kekerapan perkataan mungkin tidak penting. Secara amnya, langkah seterusnya dalam NLP adalah untuk menjana statistik-TF-IDF (kekerapan dokumen frekuensi word)-yang menunjukkan kepentingan kata-kata dalam satu set dokumen.
python -m nltk.downloader all
Kesimpulan
Dalam tutorial ini, kita mempunyai pemahaman awal tentang pemprosesan bahasa semulajadi di Python. Kami menukar teks kepada unsur -unsur leksikal, menukar kata -kata ke bentuk batang mereka, dan akhirnya membersihkan teks untuk menghapuskan mana -mana bahagian yang tidak menambah makna kepada analisis. Walaupun kita melihat tugas -tugas NLP yang mudah dalam tutorial ini, terdapat banyak teknik lain untuk diterokai. Sebagai contoh, kami mungkin mahu melakukan pemodelan topik pada data teks, dengan matlamat mencari topik umum yang boleh dibincangkan oleh teks. Tugas yang lebih kompleks dalam NLP adalah untuk melaksanakan model analisis sentimen untuk menentukan emosi di sebalik mana -mana teks.
ada komen atau soalan? Jangan ragu untuk menghubungi saya di Twitter.
Soalan -soalan yang sering ditanya mengenai pemprosesan bahasa semulajadi dengan python (FAQ)
Apakah perbezaan utama antara pemprosesan bahasa semulajadi (NLP) dan pemahaman bahasa semulajadi (NLU)? pemprosesan bahasa semulajadi (NLP) dan pemahaman bahasa semulajadi (NLU) adalah dua sub-bidang kecerdasan buatan yang sering dikelirukan. NLP adalah konsep yang lebih luas yang mengandungi semua kaedah untuk berinteraksi dengan komputer menggunakan bahasa semula jadi. Ini termasuk pemahaman dan menjana bahasa manusia. NLU, sebaliknya, adalah subset NLP yang mengkhususkan diri dalam aspek pemahaman. Ia melibatkan penggunaan algoritma untuk memahami dan mentafsir bahasa manusia dengan cara yang berharga.
Bagaimana untuk meningkatkan ketepatan model NLP dalam Python?
Meningkatkan ketepatan model NLP melibatkan pelbagai strategi. Pertama, anda boleh menggunakan lebih banyak data latihan. Semakin banyak data pembelajaran model anda, semakin baik prestasinya. Kedua, pertimbangkan untuk menggunakan teknik NLP yang berbeza. Sebagai contoh, jika anda menggunakan beg perkataan (busur), anda mungkin ingin mencuba kekerapan dokumen WordFrequency-Inverse (TF-IDF) atau Word2VEC. Akhirnya, penalaan parameter model juga boleh menyebabkan peningkatan yang ketara.
Apakah aplikasi biasa NLP di dunia nyata?
NLP mempunyai aplikasi yang luas di dunia nyata. Ini termasuk terjemahan bahasa, analisis sentimen, chatbots, pembantu suara seperti Siri dan Alexa, ringkasan teks dan pengesanan spam e -mel.
Bagaimana leksikalisasi dalam kerja NLP?
Metamorfosis perkataan adalah proses penguraian teks ke dalam kata -kata tunggal atau elemen perkataan. Ini adalah langkah utama dalam NLP kerana ia membolehkan model memahami dan menganalisis teks. Di Python, anda boleh menggunakan fungsi word_tokenize
perpustakaan NLTK untuk melakukan leksikalisasi.
Apakah peranan kata -kata berhenti di NLP?
Kata -kata berhenti adalah kata -kata biasa yang sering ditapis semasa fasa pra -proses NLP kerana ia tidak mengandungi maklumat yang bermakna. Contohnya termasuk "adalah", "", "dan", dan sebagainya. Mengeluarkan kata -kata ini dapat membantu meningkatkan prestasi model NLP.
Bagaimana menangani pelbagai bahasa di NLP?
Melupuskan pelbagai bahasa di NLP boleh mencabar kerana perbezaan tatabahasa, sintaks, dan perbendaharaan kata. Walau bagaimanapun, perpustakaan NLTK Python menyokong pelbagai bahasa. Anda juga boleh menggunakan perpustakaan pengesanan bahasa seperti langdetect
untuk mengenal pasti bahasa teks dan kemudian memprosesnya.
Apakah pengekstrakan batang dan pemulihan leksikal di NLP?
Pengekstrakan batang dan pemulihan morfologi adalah teknik yang digunakan untuk memudahkan kata -kata ke dalam bentuk batang atau akarnya. Perbezaan utama di antara mereka ialah pengekstrakan batang sering mencipta kata-kata yang tidak wujud, sementara prinsip pemulihan bentuk perkataan mengurangkan perkataan itu kepada bentuk akar linguistik yang betul.
Bagaimana menggunakan NLP untuk analisis sentimen?
Analisis emosi melibatkan menentukan emosi yang dinyatakan dalam teks. Ini boleh dilakukan menggunakan pelbagai teknik NLP. Sebagai contoh, anda boleh dengan mudah melakukan analisis sentimen menggunakan perpustakaan TextBlob di Python.
Apakah sintaks n-meta di NLP?
n metagram adalah urutan berterusan n item berturut -turut dalam teks atau sampel ucapan tertentu. Mereka digunakan untuk NLP untuk meramalkan item seterusnya dalam urutan. Sebagai contoh, dalam tatabahasa binari (n = 2), anda menganggap pasangan perkataan untuk analisis atau ramalan.
Bagaimana menggunakan NLP untuk klasifikasi teks?
Klasifikasi teks melibatkan mengklasifikasikan teks ke dalam kategori yang telah ditetapkan. Ini boleh dilakukan menggunakan pelbagai teknik NLP dan algoritma pembelajaran mesin. Sebagai contoh, anda boleh menggunakan beg perkataan atau TF-IDF untuk pengekstrakan ciri dan kemudian masukkan ciri-ciri ini ke dalam model pembelajaran mesin untuk klasifikasi.
Atas ialah kandungan terperinci Bermula dengan pemprosesan bahasa semula jadi di Python. 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











Program perintis ini, kerjasama antara CNCF (Yayasan Pengkomputeran Native Cloud), pengkomputeran ampere, equinix metal, dan digerakkan, menyelaraskan ARM64 CI/CD untuk projek GitHub CNCF. Inisiatif ini menangani kebimbangan keselamatan dan prestasi lim

Tutorial ini membimbing anda melalui membina saluran paip pemprosesan imej tanpa pelayan menggunakan perkhidmatan AWS. Kami akan membuat frontend next.js yang digunakan pada kluster ECS Fargate, berinteraksi dengan Gateway API, Fungsi Lambda, Bucket S3, dan DynamoDB. Th

Tinggal maklumat mengenai trend teknologi terkini dengan surat berita pemaju teratas ini! Senarai ini menawarkan sesuatu untuk semua orang, dari peminat AI ke pemaju backend dan frontend yang berpengalaman. Pilih kegemaran anda dan menjimatkan masa mencari rel
