Python Natural Language Processing (NLP) ist eine weit verbreitete Technologie zum Extrahieren und Analysieren aussagekräftiger Informationen aus menschlichen Sprachdaten. Eine der wichtigsten NLP-Anwendungen ist die Worteinbettung, eine Technik, die Wörter in numerische Vektoren umwandelt und die Semantik von Wörtern als reale Werte im Vektorraum darstellt.
In diesem Artikel lernen wir, wie man mit Python- und NLP-Bibliotheken ein Wortvektormodell erstellt und einige grundlegende Analysen daran durchführt.
Python-NLP-Bibliothek installieren
Wir werden die Gensim-Bibliothek in Python verwenden, eine Bibliothek speziell für NLP. Bevor Sie es verwenden können, müssen Sie Gensim zunächst auf Ihrem lokalen Computer installieren. Mit dem folgenden Befehl können wir gensim im Terminal installieren:
pip install gensim
Daten vorbereiten
Bevor wir Wortvektoren erstellen, müssen wir einige Textdaten als Eingabe vorbereiten. In diesem Beispiel verwenden wir den klassischen Roman von Project Gutenberg als Eingabetext.
Wir werden die Project Gutenberg-Bibliothek mit dem folgenden Code herunterladen und importieren:
!pip install gutenberg
from gutenberg.acquire import load_etext
from gutenberg.cleanup import strip_headers
text = strip_headers(load_etext(2701)).strip( )
Hier entfernen wir die obersten Informationen und den Header des Romans, indem wir die Funktion „strip_headers“ aufrufen. Jetzt können wir diesen Text in das Wortvektormodell einspeisen.
Wortvektormodell erstellen
Um Wortvektoren mit Python zu erstellen, müssen wir die folgenden Schritte ausführen:
Konvertieren Sie den Originaltext in eine Wortliste.
Trainieren Sie das Wortvektormodell mithilfe der Wortliste.
Im folgenden Code teilen wir Wandeln Sie den Text in Wörter um, bauen Sie Vokabeln auf, kodieren Sie Wörter als ganze Zahlen und trainieren Sie ein Wortvektormodell mithilfe der Gensim-Bibliothek.
von gensim.models import Word2Vec
import nltk
nltk.download('punkt')
raw_sentences = nltk.sent_tokenize(text)
sentences = [nltk.word_tokenize(sentence) für Satz in raw_sentences]
model = Word2Vec( Sätze, min_count=1)
Zuerst verwenden wir die Funktion sent_tokenize in der NLTK-Bibliothek, um den Text in Sätze zu unterteilen.
Dann verwenden wir die Funktion „word_tokenize“ von nltk, um den Satz in Wörter zu zerlegen. Dadurch wird eine verschachtelte Liste von Wörtern zurückgegeben.
Das Word2Vec-Modell verwendet verschachtelte Wortlisten als Eingabe und lernt Wortvektoren basierend auf ihren Koexistenzbeziehungen. Der Parameter min_count gibt die Mindestanzahl an Vorkommen eines Worts an, bevor es berücksichtigt wird.
Das Training des Modells dauert einige Zeit, abhängig von der Größe des Eingabedatensatzes und der Leistung Ihres Computers.
Modellanalyse
Wir können den folgenden Code verwenden, um das Wortvektormodell zu analysieren:
model.wv.most_similar('monster')
Modell .wv['monster']
len(model.wv.vocab)
model.save('model.bin')
model = Word2Vec.load('model.bin')
Hier verwenden wir zunächst die Funktion most_similar, um andere Wörter zu finden, die dem Wort Monster am ähnlichsten sind. Zu den Ergebnissen gehören Wort- und Ähnlichkeitswerte.
Als nächstes verwenden wir das wv-Attribut in der Wortvektorbeschreibung, um die Vektordarstellung des Wortmonsters zu finden.
len(model.wv.vocab) prüft die Größe des Vokabulars im Modell. Abschließend verwenden wir die Speicher- und Ladefunktionen, um das Modell zu speichern und zu laden.
Fazit
In diesem Artikel haben wir gelernt, wie man mit Python und der Gensim-Bibliothek ein Wortvektormodell erstellt. Wir haben gesehen, wie man Text in eine Liste von Wörtern umwandelt und diese Daten verwendet, um ein Wortvektormodell zu trainieren. Schließlich haben wir auch gelernt, wie man mithilfe eines Modells die Wörter findet, die einem bestimmten Wort am ähnlichsten sind.
Wortvektoren sind ein wichtiges Thema im NLP. Durch diesen Artikel haben Sie gelernt, wie Sie die NLP-Bibliothek in Python für die Wortvektoranalyse verwenden.
Das obige ist der detaillierte Inhalt vonBeispiel für die Verarbeitung natürlicher Sprache in Python: Wortvektoren. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!