Python ialah bahasa pengaturcaraan berkuasa yang digunakan secara meluas dalam sains data, pembelajaran mesin, pemprosesan bahasa semula jadi dan bidang lain. Dalam bidang ini, prapemprosesan teks ialah langkah yang sangat kritikal, yang boleh mengurangkan hingar data teks dan meningkatkan ketepatan model. Dalam artikel ini, kami akan memperkenalkan beberapa teknik prapemprosesan teks biasa dalam Python.
1. Membaca data teks
Dalam Python, anda boleh menggunakan fungsi open() untuk membaca fail teks.
with open('example.txt', 'r') as f: text = f.read()
Dalam contoh ini, kami membuka fail teks bernama "example.txt" dan membaca kandungannya. Kandungan fail teks ini akan disimpan dalam pembolehubah rentetan bernama "teks". Selain menggunakan fungsi read(), kita juga boleh menggunakan fungsi readlines() untuk menyimpan kandungan fail teks dalam senarai.
with open('example.txt', 'r') as f: lines = f.readlines()
Dalam contoh ini, kandungan "example.txt" akan disimpan sebagai senarai, dengan setiap baris menjadi elemen senarai. Ini berguna apabila bekerja dengan data teks berskala besar, kerana berbilang baris data boleh dibaca dan diproses sekaligus.
2. Alih keluar tanda baca dan nombor
Dalam prapemprosesan teks, kita biasanya perlu mengalih keluar tanda baca dan nombor daripada teks. Modul semula dalam Python menyediakan fungsi ekspresi biasa yang sangat mudah untuk mengendalikan tugas-tugas ini.
import re text = "This is an example sentence! 12345." text = re.sub(r'[^ws]', '', text) # Remove punctuation text = re.sub(r'd+', '', text) # Remove numbers
Dalam contoh ini, kita mula-mula menggunakan fungsi re.sub() dan ungkapan biasa "1" untuk mengalih keluar semua tanda baca dan ruang. Kemudian, kami menggunakan fungsi re.sub() dan ungkapan biasa "d+" untuk mengalih keluar semua nombor daripada teks. Akhir sekali, kami menyimpan teks yang diproses dalam pembolehubah rentetan "teks".
3. Pembahagian perkataan
Pembahagian perkataan merujuk kepada membahagikan teks kepada perkataan yang berasingan. Perpustakaan nltk dan perpustakaan spaCy dalam Python kedua-duanya menyediakan alat pembahagian perkataan yang sangat berguna. Di sini kita mengambil perpustakaan nltk sebagai contoh.
import nltk nltk.download('punkt') text = "This is an example sentence." words = nltk.word_tokenize(text)
Dalam contoh ini, kami mula-mula memuat turun pakej punkt perpustakaan nltk, yang merupakan kit alat pembahagian perkataan yang sangat popular dalam perpustakaan nltk. Kami kemudian menggunakan fungsi nltk.word_tokenize() untuk memisahkan teks kepada perkataan dan menyimpan hasilnya dalam senarai "perkataan".
4. Alih keluar perkataan henti
Dalam pemprosesan teks, selalunya perlu untuk mengalih keluar perkataan hentian biasa termasuk "adalah", "a", "ini", dll. Perpustakaan nltk dan perpustakaan spaCy dalam Python juga menyediakan senarai perkataan hentian yang baik. Di bawah ialah contoh menggunakan perpustakaan nltk.
import nltk nltk.download('stopwords') from nltk.corpus import stopwords text = "This is an example sentence." words = nltk.word_tokenize(text) filtered_words = [word for word in words if word.lower() not in stopwords.words('english')]
Dalam contoh ini, kami mula-mula memuat turun pakej stopwords pustaka nltk dan mengimport senarai hentian bahasa Inggeris daripadanya. Kami kemudian menggunakan pemahaman senarai untuk mengalih keluar perkataan henti dalam teks daripada senarai perkataan. Akhir sekali, kami mendapat senarai perkataan "filtered_words" yang tidak termasuk kata henti.
5. Stemming
Stemming ialah proses menormalkan bentuk perkataan yang berbeza (seperti tegang, tunggal dan jamak, dll.) ke dalam bentuk yang sama. Kedua-dua perpustakaan nltk dan perpustakaan spaCy dalam Python menyediakan alat stem yang sangat berguna. Di sini kita juga mengambil perpustakaan nltk sebagai contoh.
import nltk from nltk.stem import PorterStemmer stemmer = PorterStemmer() text = "This is an example sentence." words = nltk.word_tokenize(text) stemmed_words = [stemmer.stem(word) for word in words]
Dalam contoh ini, kami mula-mula mengimport kelas PorterStemmer daripada perpustakaan nltk. Kemudian, kami membuat instantiate objek PorterStemmer. Seterusnya, kami menggunakan pemahaman senarai untuk mengekstrak batang daripada teks dan menyimpan hasilnya dalam senarai "stemmed_words".
6. Penandaan sebahagian daripada pertuturan
Pelabelan selepas pertuturan ialah proses menandakan perkataan dalam teks ke dalam bahagian pertuturan mereka (seperti kata nama, kata kerja, kata adjektif, dsb. ). Pustaka nltk dan perpustakaan spaCy dalam Python juga menyediakan alat penandaan bahagian pertuturan yang sangat berguna. Di sini, kami juga mengambil perpustakaan nltk sebagai contoh.
import nltk nltk.download('averaged_perceptron_tagger') text = "This is an example sentence." words = nltk.word_tokenize(text) tagged_words = nltk.pos_tag(words)
Dalam contoh ini, kami mula-mula memuat turun pakej averaged_perceptron_tagger pustaka nltk. Kami kemudian menggunakan fungsi nltk.word_tokenize() untuk memisahkan teks kepada perkataan dan menyimpan hasilnya dalam senarai "perkataan". Seterusnya, kami menggunakan fungsi nltk.pos_tag() untuk menandakan perkataan dengan bahagian pertuturannya dan menyimpan hasilnya dalam senarai "tagged_words".
Ringkasan
Artikel ini memperkenalkan beberapa teknik prapemprosesan teks biasa dalam Python, termasuk membaca data teks, mengalih keluar tanda baca dan nombor, pembahagian perkataan, mengalih keluar perkataan henti dan pengetegan stem serta sebahagian daripada pertuturan , dsb. Teknik ini sangat berguna dan digunakan secara meluas dalam pemprosesan teks. Dalam aplikasi praktikal, kami boleh memilih teknik yang sesuai untuk prapemprosesan teks mengikut keperluan kami untuk meningkatkan ketepatan dan kesan data kami.
Atas ialah kandungan terperinci Teknik prapemprosesan teks dalam Python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!