Rumah pembangunan bahagian belakang Tutorial Python Bagaimana untuk menggunakan teknologi pengekstrakan ciri teks dalam Python?

Bagaimana untuk menggunakan teknologi pengekstrakan ciri teks dalam Python?

Jun 04, 2023 am 11:10 AM
python ciri teks Teknologi pengekstrakan

Python ialah bahasa pengaturcaraan popular yang boleh digunakan untuk memproses data teks. Dalam bidang sains data dan pemprosesan bahasa semula jadi, pengekstrakan ciri teks ialah teknik penting yang menukar teks bahasa semula jadi mentah kepada vektor berangka untuk digunakan dalam pembelajaran mesin dan algoritma pembelajaran mendalam. Artikel ini akan memperkenalkan cara menggunakan teknologi pengekstrakan ciri teks dalam Python.

1. Prapemprosesan data teks

Sebelum pengekstrakan ciri teks, beberapa prapemprosesan mudah teks asal diperlukan. Prapemprosesan biasanya termasuk langkah berikut:

  1. Tukar semua teks kepada huruf kecil. Ini kerana Python ialah bahasa sensitif huruf besar dan kecil Jika semua teks tidak ditukar kepada huruf kecil, hasil pengekstrakan ciri teks mungkin dipengaruhi oleh huruf besar.
  2. Alih keluar tanda baca. Tanda baca tidak bermakna untuk pengekstrakan ciri teks dan harus dialih keluar.
  3. Alih keluar perkataan berhenti. Kata henti merujuk kepada perkataan yang terlalu kerap digunakan dalam bahasa semula jadi, seperti "the", "and", dsb. Ia tidak bermakna untuk pengekstrakan ciri teks dan harus dialih keluar.
  4. Stemming. Stemming merujuk kepada menukar variasi berbeza perkataan yang sama (seperti "lari", "lari", "lari") kepada bentuk perkataan bersatu. Ini boleh mengurangkan bilangan ciri dan meningkatkan keupayaan generalisasi semantik model.

Untuk prapemprosesan teks dalam Python, kami bergantung terutamanya pada perpustakaan pemprosesan bahasa semula jadi sumber terbuka seperti nltk dan spaCy. Berikut ialah contoh kod Python yang boleh melaksanakan langkah prapemprosesan di atas untuk teks bahasa Inggeris:

import string
import nltk
from nltk.corpus import stopwords
from nltk.stem import PorterStemmer
from nltk.tokenize import word_tokenize

def preprocess_text(text):
    # 将文本转换为小写
    text = text.lower()
    # 去除标点符号
    text = text.translate(str.maketrans("", "", string.punctuation))
    # 分词
    words = word_tokenize(text)
    # 去除停用词
    words = [word for word in words if word not in stopwords.words("english")]
    # 词干化
    stemmer = PorterStemmer()
    words = [stemmer.stem(word) for word in words]
    # 返回预处理后的文本
    return " ".join(words)
Salin selepas log masuk

2. Model beg-of-words

Dalam pengekstrakan ciri teks, model yang paling biasa digunakan ialah model beg-of-words ( Bag-of-Words). Model beg-of-words mengandaikan bahawa perkataan dalam teks adalah set tidak tertib, menggunakan setiap perkataan sebagai ciri dan kekerapan kejadiannya dalam teks sebagai nilai ciri. Dengan cara ini, teks boleh diwakili sebagai vektor yang terdiri daripada frekuensi perkataan.

Terdapat banyak perpustakaan sumber terbuka dalam Python yang boleh digunakan untuk membina model beg-of-word, seperti sklearn dan nltk. Berikut ialah contoh kod Python Anda boleh menggunakan sklearn untuk melaksanakan model beg-of-word untuk teks bahasa Inggeris:

from sklearn.feature_extraction.text import CountVectorizer

# 定义文本数据
texts = ["hello world", "hello python"]

# 构建词袋模型
vectorizer = CountVectorizer()
vectorizer.fit_transform(texts)

# 输出词袋模型的特征
print(vectorizer.get_feature_names())
# 输出文本的特征向量
print(vectorizer.transform(texts).toarray())
Salin selepas log masuk

Dalam kod di atas, CountVectorizer pertama kali digunakan untuk membina model beg-of-word , dan data teks "hello world" dan "hello python" adalah sebagai input. Akhir sekali, gunakan kaedah get_feature_names() untuk mendapatkan ciri model beg-of-word, gunakan kaedah transform() untuk menukar teks kepada vektor ciri, dan gunakan kaedah toarray() untuk mewakili matriks jarang sebagai tatasusunan NumPy umum.

3. Model TF-IDF

Model beg-of-words boleh mewakili kekerapan perkataan dalam teks, tetapi ia tidak mengambil kira kepentingan berbeza bagi perkataan yang berbeza untuk teks pengelasan. Contohnya, dalam masalah pengelasan teks, beberapa perkataan mungkin muncul dalam berbilang kategori teks, dan mereka tidak memainkan peranan besar dalam membezakan kategori yang berbeza. Sebaliknya, sesetengah perkataan mungkin hanya muncul dalam kategori teks tertentu, dan ia penting untuk membezakan kategori yang berbeza.

Untuk menyelesaikan masalah ini, teknologi pengekstrakan ciri teks yang lebih maju ialah menggunakan model TF-IDF. TF-IDF (Term Frequency-Inverse Document Frequency) ialah kaedah statistik yang digunakan untuk menilai kepentingan sesuatu perkataan dalam dokumen. Ia mengira nilai TF-IDF sesuatu perkataan dengan mendarabkan kekerapan perkataan dalam dokumen dengan songsangan kekerapan kejadiannya dalam keseluruhan koleksi dokumen.

Terdapat juga banyak perpustakaan sumber terbuka dalam Python yang boleh digunakan untuk membina model TF-IDF, seperti sklearn dan nltk. Berikut ialah contoh kod Python Anda boleh menggunakan sklearn untuk melaksanakan model TF-IDF untuk teks bahasa Inggeris:

from sklearn.feature_extraction.text import TfidfVectorizer

# 定义文本数据
texts = ["hello world", "hello python"]

# 构建TF-IDF模型
vectorizer = TfidfVectorizer()
vectorizer.fit_transform(texts)

# 输出TF-IDF模型的特征
print(vectorizer.get_feature_names())
# 输出文本的特征向量
print(vectorizer.transform(texts).toarray())
Salin selepas log masuk

Dalam kod di atas, mula-mula gunakan TfidfVectorizer untuk membina model TF-IDF, dan tukarkan data teks "hello world" dan "hello python" sebagai input. Akhir sekali, gunakan kaedah get_feature_names() untuk mendapatkan ciri model TF-IDF, gunakan kaedah transform() untuk menukar teks kepada vektor ciri, dan gunakan kaedah toarray() untuk mewakili matriks jarang sebagai NumPy umum tatasusunan.

4. Model Word2Vec

Selain model bag-of-words dan model TF-IDF, terdapat juga teknologi pengekstrakan ciri teks lanjutan yang dipanggil model Word2Vec. Word2Vec ialah model rangkaian saraf yang dibangunkan oleh Google yang digunakan untuk mewakili perkataan sebagai vektor padat supaya perkataan yang serupa lebih dekat dalam ruang vektor.

Dalam Python, model Word2Vec boleh dilaksanakan dengan mudah menggunakan perpustakaan gensim. Berikut ialah contoh kod Python, yang boleh menggunakan perpustakaan gensim untuk melaksanakan model Word2Vec untuk teks bahasa Inggeris:

from gensim.models import Word2Vec
import nltk

# 定义文本数据
texts = ["hello world", "hello python"]

# 分词
words = [nltk.word_tokenize(text) for text in texts]

# 构建Word2Vec模型
model = Word2Vec(size=100, min_count=1)
model.build_vocab(words)
model.train(words, total_examples=model.corpus_count, epochs=model.iter)

# 输出单词的特征向量
print(model["hello"])
print(model["world"])
print(model["python"])
Salin selepas log masuk

Dalam kod di atas, perpustakaan nltk mula-mula digunakan untuk membahagikan teks, dan kemudian Word2Vec kelas digunakan untuk membina model Word2Vec, di mana parameter saiz Menentukan dimensi vektor setiap perkataan, parameter min_count menentukan kekerapan perkataan minimum, dalam kes ini 1, supaya semua perkataan dipertimbangkan ke dalam model. Seterusnya, gunakan kaedah build_vocab() untuk membina perbendaharaan kata dan kaedah train() untuk melatih model. Akhir sekali, vektor ciri bagi setiap perkataan boleh diakses menggunakan kurungan segi empat sama, seperti model["hello"], model["world"], model["python"].

Ringkasan

Artikel ini memperkenalkan cara menggunakan teknologi pengekstrakan ciri teks dalam Python, termasuk model beg-of-words, model TF-IDF dan model Word2Vec. Apabila menggunakan teknik ini, prapemprosesan teks mudah diperlukan untuk mengatasi hingar dalam data teks. Di samping itu, perlu diingatkan bahawa teknologi pengekstrakan ciri teks yang berbeza sesuai untuk senario aplikasi yang berbeza, dan teknologi yang sesuai perlu dipilih mengikut masalah tertentu.

Atas ialah kandungan terperinci Bagaimana untuk menggunakan teknologi pengekstrakan ciri teks dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
2 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Repo: Cara menghidupkan semula rakan sepasukan
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Cara mendapatkan biji gergasi
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Cara Membuka Format XML Cara Membuka Format XML Apr 02, 2025 pm 09:00 PM

Gunakan kebanyakan editor teks untuk membuka fail XML; Jika anda memerlukan paparan pokok yang lebih intuitif, anda boleh menggunakan editor XML, seperti editor XML oksigen atau XMLSPY; Jika anda memproses data XML dalam program, anda perlu menggunakan bahasa pengaturcaraan (seperti Python) dan perpustakaan XML (seperti XML.Etree.ElementTree) untuk menghuraikan.

Adakah terdapat aplikasi mudah alih yang boleh menukar XML ke PDF? Adakah terdapat aplikasi mudah alih yang boleh menukar XML ke PDF? Apr 02, 2025 pm 08:54 PM

Permohonan yang menukarkan XML terus ke PDF tidak dapat dijumpai kerana mereka adalah dua format yang berbeza. XML digunakan untuk menyimpan data, manakala PDF digunakan untuk memaparkan dokumen. Untuk melengkapkan transformasi, anda boleh menggunakan bahasa pengaturcaraan dan perpustakaan seperti Python dan ReportLab untuk menghuraikan data XML dan menghasilkan dokumen PDF.

Adakah kelajuan penukaran cepat apabila menukar XML ke PDF pada telefon bimbit? Adakah kelajuan penukaran cepat apabila menukar XML ke PDF pada telefon bimbit? Apr 02, 2025 pm 10:09 PM

Kelajuan XML mudah alih ke PDF bergantung kepada faktor -faktor berikut: kerumitan struktur XML. Kaedah Penukaran Konfigurasi Perkakasan Mudah Alih (Perpustakaan, Algoritma) Kaedah Pengoptimuman Kualiti Kod (Pilih perpustakaan yang cekap, mengoptimumkan algoritma, data cache, dan menggunakan pelbagai threading). Secara keseluruhannya, tidak ada jawapan mutlak dan ia perlu dioptimumkan mengikut keadaan tertentu.

Alat pemformatan XML yang disyorkan Alat pemformatan XML yang disyorkan Apr 02, 2025 pm 09:03 PM

Alat pemformatan XML boleh menaip kod mengikut peraturan untuk meningkatkan kebolehbacaan dan pemahaman. Apabila memilih alat, perhatikan keupayaan penyesuaian, pengendalian keadaan khas, prestasi dan kemudahan penggunaan. Jenis alat yang biasa digunakan termasuk alat dalam talian, pemalam IDE, dan alat baris arahan.

Adakah terdapat XML percuma untuk alat PDF untuk telefon bimbit? Adakah terdapat XML percuma untuk alat PDF untuk telefon bimbit? Apr 02, 2025 pm 09:12 PM

Tidak ada XML percuma yang mudah dan langsung ke alat PDF di mudah alih. Proses visualisasi data yang diperlukan melibatkan pemahaman dan rendering data yang kompleks, dan kebanyakan alat yang dipanggil "percuma" di pasaran mempunyai pengalaman yang buruk. Adalah disyorkan untuk menggunakan alat sampingan komputer atau menggunakan perkhidmatan awan, atau membangunkan aplikasi sendiri untuk mendapatkan kesan penukaran yang lebih dipercayai.

Bagaimana cara menukar XML ke PDF di telefon anda dengan kualiti tinggi? Bagaimana cara menukar XML ke PDF di telefon anda dengan kualiti tinggi? Apr 02, 2025 pm 09:48 PM

Tukar XML ke PDF dengan kualiti tinggi pada telefon bimbit anda memerlukan: Parsing XML di awan dan menjana PDF menggunakan platform pengkomputeran tanpa pelayan. Pilih Parser XML yang cekap dan perpustakaan penjanaan PDF. Mengendalikan kesilapan dengan betul. Menggunakan sepenuhnya kuasa pengkomputeran awan untuk mengelakkan tugas berat pada telefon anda. Laraskan kerumitan mengikut keperluan, termasuk memproses struktur XML kompleks, menghasilkan PDF multi-halaman, dan menambah imej. Cetak maklumat log untuk membantu debug. Mengoptimumkan prestasi, pilih parser yang cekap dan perpustakaan PDF, dan boleh menggunakan pengaturcaraan asynchronous atau data XML preprocessing. Memastikan kualiti kod yang baik dan penyelenggaraan.

Bagaimana cara menukar fail XML ke PDF di telefon anda? Bagaimana cara menukar fail XML ke PDF di telefon anda? Apr 02, 2025 pm 10:12 PM

Tidak mustahil untuk menyelesaikan penukaran XML ke PDF secara langsung di telefon anda dengan satu aplikasi. Ia perlu menggunakan perkhidmatan awan, yang boleh dicapai melalui dua langkah: 1. Tukar XML ke PDF di awan, 2. Akses atau muat turun fail PDF yang ditukar pada telefon bimbit.

Bagaimana cara menukar XML ke PDF di telefon anda? Bagaimana cara menukar XML ke PDF di telefon anda? Apr 02, 2025 pm 10:18 PM

Ia tidak mudah untuk menukar XML ke PDF secara langsung pada telefon anda, tetapi ia boleh dicapai dengan bantuan perkhidmatan awan. Adalah disyorkan untuk menggunakan aplikasi mudah alih ringan untuk memuat naik fail XML dan menerima PDF yang dihasilkan, dan menukarnya dengan API awan. API awan menggunakan perkhidmatan pengkomputeran tanpa pelayan, dan memilih platform yang betul adalah penting. Kerumitan, pengendalian kesilapan, keselamatan, dan strategi pengoptimuman perlu dipertimbangkan ketika mengendalikan penjanaan XML dan penjanaan PDF. Seluruh proses memerlukan aplikasi front-end dan API back-end untuk bekerjasama, dan ia memerlukan pemahaman tentang pelbagai teknologi.

See all articles