Detailliertes Beispiel für die Einbettung von Wortvektoren
Die Einbettung von Wortvektoren erfordert eine effiziente Verarbeitung großer Textkorpora. word2vec. Auf einfache Weise wird das Wort an das One-Hot-Codierungs-Lernsystem gesendet, die Länge ist ein Vektor der Länge des Vokabulars, das entsprechende Positionselement des Wortes ist 1 und die anderen Elemente sind 0. Die Vektordimension ist sehr hoch und kann die semantische Assoziation verschiedener Wörter nicht beschreiben. Kookkurrenz stellt Wörter dar, löst semantische Assoziationen auf, durchläuft einen großen Textkorpus, zählt die umgebenden Wörter innerhalb eines bestimmten Abstands zu jedem Wort und stellt jedes Wort mit der normalisierten Anzahl benachbarter Wörter dar. Wörter in ähnlichen Kontexten haben eine ähnliche Semantik. Verwenden Sie PCA oder ähnliche Methoden, um die Dimensionalität des Vorkommensvektors zu reduzieren und eine dichtere Darstellung zu erhalten. Es bietet eine gute Leistung und verfolgt alle Matrizen für das gemeinsame Vorkommen von Vokabeln. Die Breite und Höhe entsprechen der Vokabellänge. Im Jahr 2013 schlugen Mikolov, Tomas und andere eine Methode zur Kontextberechnung der Wortdarstellung vor: „Effiziente Schätzung von Wortdarstellungen im Vektorraum“ (arXiv-Vorabdruck arXiv:1301.3781(2013)). Das Skip-Gramm-Modell geht von einer Zufallsdarstellung aus und sagt einen einfachen Klassifikator von Kontextwörtern basierend auf dem aktuellen Wort voraus. Der Fehler wird durch die Klassifikatorgewichtung und die Wortdarstellung verbreitet und die beiden werden angepasst, um den Vorhersagefehler zu reduzieren. Der Darstellungsvektor des groß angelegten Korpus-Trainingsmodells nähert sich dem komprimierten Kookkurrenzvektor an.
Datensatz, englische Wikipedia-Dump-Datei enthält den vollständigen Revisionsverlauf aller Seiten, die aktuelle Seitenversion ist 100 GB.
Laden Sie die Dump-Datei herunter und extrahieren Sie die Seitenwörter. Zählen Sie die Häufigkeit des Vorkommens von Wörtern und erstellen Sie eine gemeinsame Vokabelliste. Kodieren Sie die extrahierten Seiten mithilfe eines Vokabulars. Die Datei wird Zeile für Zeile gelesen und die Ergebnisse sofort auf die Festplatte geschrieben. Speichern Sie Prüfpunkte zwischen verschiedenen Schritten, um Programmabstürze zu vermeiden.
__iter__ durchläuft die Wortindexlistenseite. encode ruft den Vokabularindex des Stringworts ab. decode gibt das Zeichenfolgenwort gemäß dem Vokabularindex zurück. _read_pages extrahiert Wörter aus einer Wikipedia-Dump-Datei (komprimiertes XML) und speichert sie in einer Seitendatei mit einer Zeile mit durch Leerzeichen getrennten Wörtern pro Seite. Die Öffnungsfunktion des bz2-Moduls liest Dateien. Komprimierungsverarbeitung für Zwischenergebnisse. Reguläre Ausdrücke erfassen eine beliebige Folge aufeinanderfolgender Buchstaben oder einzelne Sonderbuchstaben. _build_vocabulary zählt die Anzahl der Wörter in der Auslagerungsdatei und Wörter mit hoher Häufigkeit werden in die Datei geschrieben. One-Hot-Codierung erfordert ein Vokabular. Kodierung des Glossarindex. Rechtschreibfehler und äußerst ungewöhnliche Wörter werden entfernt und der Wortschatz enthält nur vocabulary_size – 1 der häufigsten Wörter. Alle Wörter, die nicht im Wortschatz vorkommen, sind mit
Bilden Sie dynamisch Trainingsmuster, organisieren Sie große Datenmengen und der Klassifikator belegt nicht viel Speicher. Das Skip-Gramm-Modell sagt die Kontextwörter des aktuellen Wortes voraus. Durchlaufen Sie den Text, aktuelle Wortdaten und umgebende Wortziele und erstellen Sie Trainingsbeispiele. Kontextgröße R, jedes Wort generiert 2R Stichproben, R Wörter links und rechts vom aktuellen Wort. Semantischer Kontext, enge Distanz ist wichtig, erstellen Sie so wenige Trainingsbeispiele von Wörtern mit entferntem Kontext wie möglich und wählen Sie die Wortkontextgröße zufällig im Bereich [1, D = 10] aus. Trainingspaare werden auf Basis des Skip-Gramm-Modells gebildet. Numpy-Arrays generieren numerische Stream-Batch-Daten.
Zunächst werden Wörter als Zufallsvektoren dargestellt. Der Klassifikator sagt die aktuelle Darstellung des Kontextworts basierend auf der Darstellung auf mittlerer Ebene voraus. Verbreiten Sie Fehler, optimieren Sie Gewichtungen und geben Sie Wortdarstellungen ein. MomentumOptimizer-Modelloptimierung, mangelnde Intelligenz und hohe Effizienz.
Der Klassifikator ist der Kern des Modells. Der Kontrastschätzungsverlust des Rauschens weist eine hervorragende Leistung auf. Modellierung des Softmax-Klassifikators. tf.nn.nce_loss Neue zufällige vektornegative Stichprobe (Vergleichsstichprobe), ungefährer Softmax-Klassifikator.
Das Trainingsmodell ist abgeschlossen und der endgültige Wortvektor wird in die Datei geschrieben. Eine Teilmenge des Wikipedia-Korpus wurde 5 Stunden lang auf einer normalen CPU trainiert und die Einbettungsdarstellung des NumPy-Arrays erhalten. Vollständiger Korpus: . Die AttrDict-Klasse entspricht einem Python-Dikt, wobei Schlüssel als Attribute zugänglich sind.
e(r '[A-Za-z]+|[!?.:,()]') def __init__(self, url, cache_dir, vocabulary_size=10000):
self._cache_dir = os.path.expanduser (cache_dir)
self._pages_path = os.path.join(self._cache_dir, 'pages.bz2')
self._vocabulary_path = os.path.join(self._cache_dir, 'vocabulary.bz2')
wenn nicht os.path.isfile(self._pages_path):
print('Seiten lesen')
self._read_pages(url)
wenn nicht os.path.isfile( self._vocabulary_path):
print('Build vocabulary')
self._build_vocabulary(vocabulary_size)
mit bz2.open(self._vocabulary_path, 'rt') als Vokabular:
print('Vokabeln lesen')
self._vocabulary = [x.strip() for x in vocabulary]
self._indices = {x: i for i, x in enumerate(self._vocabulary)🎜> def __iter__(self):
mit bz2.open(self._pages_path, 'rt') als Seiten:
für Seite in Seiten:
Wörter = page.strip().split()
Wörter = [self.encode(x ) für x in Wörtern]
ergeben Wörter
@property
def vocabulary_size(self):
return len(self._vocabulary)
def. encode (Selbst, Wort):
zurück self._indices.get(word, 0)
def decode(self, index):
return self._vocabulary[index]
def _read_pages(self, url):
wikipedia_path = download(url , self._cache_dir)
mit bz2.open(wikipedia_path) als Wikipedia,
bz2.open(self._pages_path, 'wt') als Seiten:
für _, Element in se(wikipedia, tag='{*}page'):
if element.find('./{*}redirect') is not None:
continue
page = element.findtext('./{*} revision/{*}text')
Words = self._tokenize(page)
seiten.write(' '.join(words) + 'n')
element.clear()
def _build_vocabulary(self, vocabulary_size):
counter = Collections.Counter()
mit bz2.open(self._pages_path, 'rt') als Seiten:
für Seite in Seiten:
Wörter = Seite .strip().split()
counter.update(words)
common = ['
common = [x[0] for x gemeinsam]
mit bz2.open(self._vocabulary_path, 'wt') als Vokabular:
für Wort gemeinsam:
vocabulary.write(word + 'n')
@classmethod
def _tokenize(cls, page):
Wörter = cls.TOKEN_REGEX.findall(page)
Wörter = [x.lower() für x in Wörtern]
Wörter zurückgeben
Tensorflow importieren as tf
numpy as np
from helpers import lazy_property
class EmbeddingModel:
def __init__(self, data, target, params):
self.data = data
selbst. target = target
self.params = params
self.embeddings
self.cost
self.optimize
@lazy_property
def embeddings(self):
initial = tf. random_uniform(
[self.params.vocabulary_size, self.params.embedding_size],
-1.0, 1.0)
return tf.Variable(initial)
@lazy_property
def activate(self) :
optimierer = tf.train.MomentumOptimizer(
self.params.learning_rate, self.params.momentum)
returnoptimierer.minimize(self.cost)
@lazy_prop erty
def cost( self):
eingebettet = tf.nn.embedding_lookup(self.embeddings, self.data)
Weight = tf.Variable(tf.truncated_normal(
[self.params.vocabulary_size, self.params .embedding_size ],
stddev=1.0 / self.params.embedding_size ** 0.5))
Bias = tf.Variable(tf.zeros([self.params.vocabulary_size]))
target =. tf .expand_dims( self.target, 1)
return tf.reduce_mean(tf.nn.nce_loss(
Weight, Bias, Embedded, Target,
self.params.contrastive_examples,
self.params.vocabulary_size))
Sammlungen importieren
tensorflow als tf importieren
numpy als np importieren
aus Batch-Import gestapelt
aus EmbeddingModel import EmbeddingModel
aus Skipgrams importiere Skipgrams
aus Wikipedia importiere Wikipedia
from helpers import AttrDict
WIKI_DOWNLOAD_DIR = './wikipedia'
params = AttrDict(
vocabulary_size=10000,
max_context=10,
embedding_size=200 ,
contrastive_examples=100,
learning_rate=0.5,
momentum=0.5,
batch_size=1000,
)
data = tf.placeholder(tf.int32, [None])
target = tf. Platzhalter( tf.int32, [Keine])
model = EmbeddingModel(data, target, params)
corpus = Wikipedia(
'https://dumps.wikimedia.org/enwiki/20160501/'
'enwiki-20160501-pages-meta-current1.xml-p000000010p000030303.bz2',
WIKI_DOWNLOAD_DIR,
params.vocabulary_size)
examples = skipgrams(corpus, param s.max_context)
batches =batched( Beispiele, params.batch_size)
sess = tf.Session()
sess.run(tf.initialize_all_variables())
average =collections.deque(maxlen=100)
für Index, Batch-In enumerate(batches):
Feed_dict = {data: Batch[0], Target: Batch[1] > Average.append(cost)
print('{}: {:5.1f}'.format(index + 1, sum(average) / len(average)))
if index > 100000:
break
embeddings = sess.run(model.embeddings)
np.save(WIKI_DOWNLOAD_DIR + '/embeddings.npy', embeddings)
Das obige ist der detaillierte Inhalt vonDetailliertes Beispiel für die Einbettung von Wortvektoren. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

Wie lösche ich Xiaohongshu-Notizen? Die meisten Benutzer wissen nicht, wie man Xiaohongshu-Notizen löscht. Als nächstes bringt der Editor den Benutzern Bilder und Texte zum Löschen von Xiaohongshu-Notizen ein Blick! Tutorial zur Verwendung von Xiaohongshu So löschen Sie Xiaohongshu-Notizen 1. Öffnen Sie zunächst die Xiaohongshu-App und rufen Sie die Hauptseite auf. Wählen Sie in der unteren rechten Ecke [Ich] aus, um den speziellen Bereich aufzurufen. 2. Klicken Sie dann im Bereich „Mein“ auf die Notizseite als Wählen Sie wie unten gezeigt die Notiz aus, die Sie löschen möchten. 3. Rufen Sie die Notizseite auf und klicken Sie auf [drei Punkte] in der oberen rechten Ecke. 4. Schließlich wird die Funktionsleiste unten erweitert. Klicken Sie zum Abschluss auf [Löschen].

Als Xiaohongshu-Benutzer kennen wir alle die Situation, in der veröffentlichte Notizen plötzlich verschwunden sind, was zweifellos verwirrend und besorgniserregend ist. Was sollen wir in diesem Fall tun? Dieser Artikel konzentriert sich auf das Thema „Was tun, wenn die von Xiaohongshu veröffentlichten Notizen fehlen“ und gibt Ihnen eine ausführliche Antwort. 1. Was soll ich tun, wenn die von Xiaohongshu veröffentlichten Notizen fehlen? Erstens: Keine Panik. Wenn Sie feststellen, dass Ihre Notizen fehlen, ist es wichtig, ruhig zu bleiben und nicht in Panik zu geraten. Dies kann durch einen Plattformsystemausfall oder Betriebsfehler verursacht werden. Die Überprüfung der Veröffentlichungsdatensätze ist einfach. Öffnen Sie einfach die Xiaohongshu-App und klicken Sie auf „Ich“ → „Veröffentlichen“ → „Alle Veröffentlichungen“, um Ihre eigenen Veröffentlichungsdatensätze anzuzeigen. Hier können Sie zuvor gepostete Notizen ganz einfach finden. 3.Reposten. Wenn gefunden

Wie füge ich Produktlinks in Notizen in Xiaohongshu hinzu? In der Xiaohongshu-App können Benutzer nicht nur verschiedene Inhalte durchsuchen, sondern auch einkaufen. Wenn Sie ein Experte in diesem Bereich sind, gibt es in dieser App viele Einkaufsempfehlungen und gute Produktfreigaben Mit der App können Sie auch einige Einkaufserlebnisse teilen, Händler für eine Zusammenarbeit finden, Links in Notizen hinzufügen usw. Viele Menschen sind bereit, diese App zum Einkaufen zu verwenden, weil sie nicht nur bequem ist, sondern auch viele Experten gibt einige Empfehlungen ab. Sie können interessante Inhalte durchsuchen und sehen, ob es Kleidungsprodukte gibt, die zu Ihnen passen. Schauen wir uns an, wie man Produktlinks zu Notizen hinzufügt! So fügen Sie Produktlinks zu Xiaohongshu-Notizen hinzu: Öffnen Sie die App auf dem Desktop Ihres Mobiltelefons. Klicken Sie auf die App-Homepage

Keine Notwendigkeit mehr für Pip? Kommen Sie und lernen Sie, wie Sie Pip effektiv deinstallieren! Einführung: pip ist eines der Paketverwaltungstools von Python, mit dem Python-Pakete einfach installiert, aktualisiert und deinstalliert werden können. Manchmal müssen wir jedoch pip möglicherweise deinstallieren, vielleicht weil wir ein anderes Paketverwaltungstool verwenden möchten oder weil wir die Python-Umgebung vollständig löschen müssen. In diesem Artikel wird erläutert, wie Sie Pip effizient deinstallieren, und es werden spezifische Codebeispiele bereitgestellt. 1. Methoden zum Deinstallieren von Pip Im Folgenden werden zwei gängige Methoden zum Deinstallieren von Pip vorgestellt.

Um mehr über die Matplotlib-Farbtabelle zu erfahren, benötigen Sie spezifische Codebeispiele. 1. Einführung Matplotlib ist eine leistungsstarke Python-Zeichenbibliothek. Sie bietet einen umfangreichen Satz an Zeichenfunktionen und -werkzeugen, mit denen verschiedene Arten von Diagrammen erstellt werden können. Die Farbkarte (Colormap) ist ein wichtiges Konzept in Matplotlib, das das Farbschema des Diagramms bestimmt. Eine eingehende Untersuchung der Matplotlib-Farbtabelle wird uns helfen, die Zeichenfunktionen von Matplotlib besser zu beherrschen und das Zeichnen komfortabler zu gestalten.

Der Reiz des Erlernens der C-Sprache: Das Potenzial von Programmierern freisetzen Mit der kontinuierlichen Weiterentwicklung der Technologie ist die Computerprogrammierung zu einem Bereich geworden, der viel Aufmerksamkeit erregt hat. Unter vielen Programmiersprachen war die Sprache C schon immer bei Programmierern beliebt. Seine Einfachheit, Effizienz und breite Anwendung machen das Erlernen der C-Sprache für viele Menschen zum ersten Schritt, um in den Bereich der Programmierung einzusteigen. In diesem Artikel geht es um den Reiz des Erlernens der C-Sprache und darum, wie man das Potenzial von Programmierern durch das Erlernen der C-Sprache freisetzt. Der Reiz des Erlernens der C-Sprache liegt zunächst einmal in ihrer Einfachheit. Im Vergleich zu anderen Programmiersprachen C-Sprache

Lernen Sie Pygame von Grund auf: Komplettes Installations- und Konfigurations-Tutorial, spezifische Codebeispiele erforderlich. Einführung: Pygame ist eine Open-Source-Spieleentwicklungsbibliothek, die mit der Programmiersprache Python entwickelt wurde. Sie bietet eine Fülle von Funktionen und Tools, mit denen Entwickler problemlos eine Vielzahl von Typen erstellen können des Spiels. Dieser Artikel hilft Ihnen, Pygame von Grund auf zu erlernen und bietet ein vollständiges Installations- und Konfigurations-Tutorial sowie spezifische Codebeispiele, um Ihnen einen schnellen Einstieg zu erleichtern. Teil eins: Python und Pygame installieren Stellen Sie zunächst sicher, dass Sie dies getan haben

Beim Bearbeiten von Textinhalten in Word müssen Sie manchmal Formelsymbole eingeben. Manche Leute wissen nicht, wie man die Stammzahl in Word eingibt, also habe ich den Redakteur gebeten, mit meinen Freunden ein Tutorial zur Eingabe der Stammzahl in Word zu teilen. Ich hoffe, es hilft meinen Freunden. Öffnen Sie zunächst die Word-Software auf Ihrem Computer, öffnen Sie dann die Datei, die Sie bearbeiten möchten, und bewegen Sie den Cursor an die Stelle, an der Sie das Stammzeichen einfügen müssen, siehe Beispielbild unten. 2. Wählen Sie [Einfügen] und dann im Symbol [Formel]. Wie im roten Kreis im Bild unten gezeigt: 3. Wählen Sie dann unten [Neue Formel einfügen]. Wie im roten Kreis im Bild unten gezeigt: 4. Wählen Sie [Radikal] und dann das entsprechende Radikal. Wie im roten Kreis im Bild unten gezeigt:
