Python Natural Language Processing (NLP) ialah teknologi yang digunakan secara meluas untuk mengekstrak dan menganalisis maklumat yang bermakna daripada data bahasa manusia. Salah satu aplikasi NLP yang penting ialah pembenaman perkataan, iaitu teknik yang menukar perkataan kepada vektor angka, mewakili semantik perkataan sebagai nilai sebenar dalam ruang vektor.
Dalam artikel ini, kita akan belajar cara menggunakan perpustakaan Python dan NLP untuk mencipta model vektor perkataan dan melakukan beberapa analisis asas padanya.
Pasang perpustakaan NLP Python
Kami akan menggunakan perpustakaan gensim dalam Python, iaitu perpustakaan khusus untuk NLP. Sebelum menggunakannya, anda perlu memasang gensim pada komputer tempatan anda terlebih dahulu. Kita boleh memasang gensim dalam terminal menggunakan arahan berikut:
pip install gensim
Sediakan data
Sebelum mencipta vektor perkataan, kita perlu menyediakan beberapa data teks sebagai input. Dalam contoh ini, kami akan menggunakan novel klasik daripada Project Gutenberg sebagai teks input kami.
Kami akan memuat turun dan mengimport pustaka Project Gutenberg menggunakan kod berikut:
!pip install gutenberg
dari gutenberg.acquire import load_etext
dari gutenberg.cleanup import strip_headers
text = strip_headers(load_etext(2701)).strip()
Di sini, kami mengalih keluar maklumat teratas dan pengepala novel dengan memanggil fungsi strip_headers. Sekarang, kami bersedia untuk menyuap teks ini ke dalam model vektor perkataan.
Buat model vektor perkataan
Untuk mencipta vektor perkataan menggunakan Python, kita perlu melakukan langkah berikut:
Tukar teks mentah kepada senarai perkataan
Latih model vektor perkataan menggunakan senarai perkataan
Dalam kod berikut, kami membahagikan teks kepada perkataan, membina perbendaharaan kata, mengekod perkataan menjadi integer dan melatih model vektor perkataan menggunakan perpustakaan gensim.
dari gensim.models import Word2Vec
import nltk
nltk.download('punkt')
raw_sentences = nltk.sent_tokenize(text)
ayat = [nltk. word_tokenize(ayat) untuk ayat dalam raw_sentences]
model = Word2Vec(ayat, min_count=1)
Pertama, kami menggunakan fungsi sent_tokenize dalam perpustakaan nltk untuk membahagikan teks kepada ayat.
Kami kemudian menggunakan fungsi word_tokenize nltk untuk memecahkan ayat menjadi perkataan. Ini akan mengembalikan senarai perkataan bersarang.
Model Word2Vec menggunakan senarai perkataan bersarang sebagai input dan mempelajari vektor perkataan berdasarkan hubungan kejadian bersama mereka. Parameter min_count menentukan bilangan minimum kemunculan sesuatu perkataan sebelum ia dipertimbangkan.
Melatih model mengambil sedikit masa, bergantung pada saiz set data input dan prestasi komputer anda.
Analisis Model
Kita boleh menggunakan kod berikut untuk menganalisis model vektor perkataan:
model.wv. most_similar('monster ')
model.wv['monster']
len(model.wv. vocab)
model.save('model.bin')
model = Word2Vec.load( 'model.bin')
Di sini, kita mula-mula menggunakan fungsi most_similar untuk mencari perkataan lain yang paling serupa dengan perkataan monster. Keputusan termasuk perkataan dan skor persamaan.
Seterusnya, kami menggunakan atribut wv dalam perihalan vektor perkataan untuk mencari perwakilan vektor bagi perkataan raksasa.
len(model.wv.vocab) menyemak saiz perbendaharaan kata dalam model. Akhir sekali, kami menggunakan fungsi simpan dan muat untuk menyimpan dan memuatkan model.
Kesimpulan
Dalam artikel ini, kami mempelajari cara mencipta model vektor perkataan menggunakan Python dan perpustakaan gensim. Kami melihat cara menukar teks kepada senarai perkataan dan menggunakan data ini untuk melatih model vektor perkataan. Akhir sekali, kami juga mempelajari cara menggunakan model untuk mencari perkataan yang paling serupa dengan perkataan tertentu.
Vektor perkataan ialah topik penting dalam NLP Melalui artikel ini, anda telah mempelajari cara menggunakan perpustakaan NLP dalam Python untuk analisis vektor perkataan.
Atas ialah kandungan terperinci Contoh pemprosesan bahasa semula jadi dalam Python: vektor perkataan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!