Word2Vec, Skip-Gram und CBOW. Word2Vec ist ein beliebter Algorithmus, der verwendet wird, um… | von Aditya Dube | Juli 2023

0
24


Word2Vec ist ein beliebter Algorithmus zum Generieren von Worteinbettungen, die Wörter als dichte Vektoren in einem kontinuierlichen Vektorraum darstellen. Diese Einbettungen erfassen semantische und syntaktische Beziehungen zwischen Wörtern und können in verschiedenen Aufgaben der Verarbeitung natürlicher Sprache verwendet werden.

Beginnen wir mit dem Steady Bag of Phrases (CBOW)-Modell.

Kontinuierlicher Wortschatz (CBOW)

  1. Datenvorbereitung: Beginnen Sie mit der Vorverarbeitung Ihres Textkorpus. Dabei geht es in der Regel darum, den Textual content in einzelne Wörter zu zerlegen, Satzzeichen und Sonderzeichen zu entfernen und den Textual content in Kleinbuchstaben umzuwandeln.
  2. Kontext- und Zielworterstellung: Bei CBOW besteht das Ziel darin, ein Zielwort anhand seiner Kontextwörter vorherzusagen. Die Kontextwörter sind als die Wörter definiert, die das Zielwort innerhalb einer festen Fenstergröße umgeben. Erstellen Sie Trainingsbeispiele, indem Sie das Fenster über den Textkorpus schieben und (Kontext-, Ziel-)Paare bilden.
  3. One-Sizzling-Kodierung: Konvertieren Sie die Kontextwörter und Zielwörter in One-Sizzling-kodierte Vektoren. Jeder Vektor hat die Größe des Vokabulars, wobei alle Nullen außer einer Eins am Index der Place des Wortes im Vokabular entsprechen.
  4. Erstellen des CBOW-Modells: Erstellen Sie ein neuronales Netzwerkmodell mit einer Einbettungsschicht, gefolgt von einer verborgenen Schicht und einer Ausgabeschicht. Die Einbettungsschicht ordnet die One-Sizzling-codierten Kontextwörter dichten Vektoren zu. Die verborgene Schicht führt einige nichtlineare Transformationen durch und die Ausgabeschicht sagt das Zielwort voraus.
  5. Coaching des CBOW-Modells: Trainieren Sie das CBOW-Modell mithilfe der (Kontext-, Ziel-)Paare. Das Trainingsziel besteht darin, den Unterschied zwischen dem vorhergesagten Zielwort und dem tatsächlichen Zielwort zu minimieren. Dies kann mithilfe von Techniken wie dem stochastischen Gradientenabstieg (SGD) oder dem Adam-Optimierer erfolgen.
  6. Extrahieren von Worteinbettungen: Nach dem Coaching stellen die Gewichte der Einbettungsschicht die Worteinbettungen dar. Diese dichten Vektoren können verwendet werden, um die semantischen Beziehungen zwischen Wörtern im Vektorraum zu erfassen.

Kommen wir nun zum Skip-Gramm-Modell.

Skip-Gramm

  1. Datenvorbereitung: Ähnlich wie bei CBOW können Sie Ihren Textkorpus vorverarbeiten, indem Sie ihn tokenisieren, Satzzeichen entfernen und in Kleinbuchstaben konvertieren.
  2. Kontext- und Zielworterstellung: Bei Skip-gram ist das Ziel im Vergleich zu CBOW umgekehrt. Bei einem gegebenen Zielwort ist es unser Ziel, die es umgebenden Kontextwörter vorherzusagen. Erstellen Sie Trainingsbeispiele, indem Sie das Fenster über den Textkorpus schieben und (Ziel-, Kontext-)Paare bilden.
  3. One-Sizzling-Codierung: Konvertieren Sie das Zielwort und die Kontextwörter in One-Sizzling-codierte Vektoren, wie zuvor beschrieben.
  4. Erstellen des Skip-Gramm-Modells: Konstruieren Sie ein neuronales Netzwerkmodell ähnlich dem CBOW-Modell. Es besteht aus einer Einbettungsschicht, einer verborgenen Schicht und einer Ausgabeschicht. Die Einbettungsschicht ordnet das One-Sizzling-codierte Zielwort einem dichten Vektor zu.
  5. Trainieren des Skip-Gram-Modells: Trainieren Sie das Skip-Gram-Modell mithilfe der (Ziel-, Kontext-)Paare. Das Modell zielt darauf ab, den Unterschied zwischen den vorhergesagten Kontextwörtern und den tatsächlichen Kontextwörtern zu minimieren. Nutzen Sie Optimierungstechniken wie SGD oder Adam, um das Modell zu trainieren.
  6. Extrahieren von Worteinbettungen: Sobald das Coaching abgeschlossen ist, stellen die Gewichte der Einbettungsschicht die Worteinbettungen dar, ähnlich wie bei CBOW. Diese Vektoren können verwendet werden, um die semantischen Beziehungen zwischen Wörtern zu erfassen.

Beispielcode-Snippet zum Trainieren von Word2Vec-Modellen mithilfe der CBOW- und Skip-gram-Architekturen mithilfe der beliebten Python-Bibliothek gensim.

from gensim.fashions import Word2Vec

# Instance corpus
corpus = [['I', 'love', 'eating', 'pizza'],
['Pizza', 'is', 'my', 'favorite', 'food'],
['I', 'enjoy', 'eating', 'burgers']]

# CBOW Mannequin
cbow_model = Word2Vec(sentences=corpus, vector_size=100, window=5, sg=0)

# Skip-gram Mannequin
skipgram_model = Word2Vec(sentences=corpus, vector_size=100, window=5, sg=1)

# Entry phrase embeddings
phrase = 'pizza'
cbow_embedding = cbow_model.wv[word]
skipgram_embedding = skipgram_model.wv[word]

Auf Weiter…



Source link

HINTERLASSEN SIE EINE ANTWORT

Please enter your comment!
Please enter your name here