Teknik prapemprosesan teks dalam Python

王林
Lepaskan: 2023-06-11 08:56:49
asal
1932 orang telah melayarinya

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()
Salin selepas log masuk

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()
Salin selepas log masuk

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
Salin selepas log masuk

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)
Salin selepas log masuk

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')]
Salin selepas log masuk

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]
Salin selepas log masuk

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)
Salin selepas log masuk

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.


  1. ws

Atas ialah kandungan terperinci Teknik prapemprosesan teks dalam Python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan