2017-07-06 6 views
0

kann word2vec verwendet werden, um Wörter mit nur Kontext zu raten? das Modell mit einem großen Datensatz, z. Google News Wie kann ich Word2vec verwenden, um ein ähnliches Wort mit nur Kontext vorhersagen, z. mit Input ", der das Schachspiel seit mehr als 15 Jahren dominierte, wird gegen neun Topspieler in St. Louis, Missouri, antreten." Die Ausgabe sollte Kasparov oder vielleicht Carlsen sein.word2vec guesing word embeddings

Ich habe nur die Ähnlichkeit apis gesehen, aber ich kann nicht sinnvoll, wie man sie dafür verwendet? Ist das nicht so, wie Word2vec verwenden sollte?

Antwort

3

Es ist nicht die beabsichtigte Verwendung von Word2Vec. Der word2vec-Algorithmus versucht intern, exakte Wörter mit umgebenden Wörtern vorherzusagen, als einen Umweg, um nützliche Vektoren für die umgebenden Wörter zu lernen.

Aber es bildet keine genauen Vorhersagen während des Trainings. Es wird nur ein einziges, schmales Trainingsbeispiel betrachtet - Kontextwörter und Zielwort - und es wird ein sehr einfacher Vergleich und interner Stupser durchgeführt, um die Übereinstimmung mit diesem Beispiel etwas besser zu machen. Im Laufe der Zeit passt sich das selbst an nützliche Vektoren an - selbst wenn die Vorhersagen von sehr unterschiedlicher Qualität bleiben.

Die meisten word2vec-Bibliotheken bieten keine direkte Schnittstelle zum Anzeigen von Rangvorhersagen bei Kontextwörtern. Die Python-Gensim-Bibliothek bietet für die letzten Versionen (ab der aktuellen Version 2.2.0 im Juli 2017) eine predict_output_word()-Methode an, die grob angibt, was das Modell bei gegebenen Trainingskontexten bei gegebenen Kontextwörtern vorhersagen würde. Siehe:

https://radimrehurek.com/gensim/models/word2vec.html#gensim.models.word2vec.Word2Vec.predict_output_word

jedoch unter Berücksichtigung Ihrer Fill-in-the-Blank-Abfrage (auch als 'Satzteil-Ergänzung' in verwandter Ausbildung oder maschinenLernKontexten):

_____, who dominated chess for more than 15 years, will compete against nine top players in St Louis, Missouri 

Ein Vanille Word2Vec-Modell ist unwahrscheinlich, dass richtig zu machen. Es hat wenig Sinn für die relative Bedeutung von Wörtern (außer wenn einige Wörter für andere eher engmaschig sind). Es hat keinen Sinn für Grammatik/Ordnung oder für die kompositionelle Bedeutung von verbundenen Phrasen (wie "dominiertes Schach" im Gegensatz zu den getrennten Wörtern "dominiert" und "Schach"). Obwohl Wörter, die die gleichen Dinge beschreiben, normalerweise nahe beieinander liegen, kennt es keine Kategorien, um bestimmen zu können, dass das Leerzeichen eine "Person" und ein "Schachspieler" sein muss, und die unscharfen Ähnlichkeiten von word2vec don Ich garantiere nicht, dass Wörter einer Klasse immer näher beieinander stehen als andere Wörter.

Es gab eine Menge Arbeit, um Wort-/Konzeptvektoren (alias 'dichte Einbettungen') zu trainieren, um bei solchen Fragen-beantworteten Aufgaben besser helfen zu können. Ein zufälliges Beispiel könnte "Creating Causal Embeddings for Question Answering with Minimal Supervision" sein, aber Abfragen wie [word2vec Fragen beantworten] oder [Einbetten für Fragen beantworten] finden viel mehr. Ich kenne keine einfachen Bibliotheken, um dies zu tun, mit oder ohne einen Kern von Word2Vec.

Verwandte Themen