Quelle est une meilleure entrée pour Word2Vec?

22

Cela ressemble plus à une question générale de PNL. Quelle est l'entrée appropriée pour former l'intégration d'un mot, à savoir Word2Vec? Est-ce que toutes les phrases appartenant à un article devraient être un document séparé dans un corpus? Ou chaque article doit-il être un document dans ledit corpus? Ceci est juste un exemple utilisant python et gensim.

Corpus divisé par phrase:

SentenceCorpus = [["first", "sentence", "of", "the", "first", "article."],
                  ["second", "sentence", "of", "the", "first", "article."],
                  ["first", "sentence", "of", "the", "second", "article."],
                  ["second", "sentence", "of", "the", "second", "article."]]

Corpus divisé par article:

ArticleCorpus = [["first", "sentence", "of", "the", "first", "article.",
                  "second", "sentence", "of", "the", "first", "article."],
                 ["first", "sentence", "of", "the", "second", "article.",
                  "second", "sentence", "of", "the", "second", "article."]]

Formation Word2Vec en Python:

from gensim.models import Word2Vec

wikiWord2Vec = Word2Vec(ArticleCorpus)
wacax
la source

Réponses:

14

La réponse à cette question est que cela dépend . L'approche principale consiste à passer les phrases symbolisées (donc SentenceCorpusdans votre exemple), mais en fonction de votre objectif et du corpus que vous regardez, vous voudrez peut-être utiliser l'intégralité de l'article pour apprendre les plongements. C'est quelque chose que vous ne savez peut-être pas à l'avance - vous devrez donc réfléchir à la façon dont vous souhaitez évaluer la qualité des plongements, et faire quelques expériences pour voir quel `` type '' de plongements sont plus utiles pour votre tâche ( s).

NBartley
la source
Juste sur place. J'ai utilisé les plongements dans un modèle et, comme vous l'avez mentionné, il y a eu une grande amélioration des performances prédictives du modèle lorsque j'ai utilisé l'article entier. Alors, dans quel cas la formation phrase par phrase serait-elle supérieure?
wacax
1
Vous devriez regarder et voir comment les mots qui ont des vecteurs similaires sont liés les uns aux autres. Des travaux ont été effectués sur la taille de la fenêtre de contexte et le type de contexte qui suggèrent que des fenêtres plus petites (et peut-être des tailles de document plus petites, comme des phrases), pourraient faire des mots fonctionnellement similaires (comme les États américains) plutôt que topiquement similaires ( comme les États américains et les mots liés au gouvernement) ont des vecteurs plus similaires. Je cite principalement Omer Levy et Yoav Goldberg's Dependency-Based Word Embeddings de 2014. Je pourrais me tromper cependant et j'aimerais être corrigé si c'est le cas.
NBartley
1

En complément de la réponse de @ NBartley. À quiconque rencontre cette question. J'ai essayé d'utiliser l'article / la phrase comme entrée pour word2vec sur Spark2.2, résultat comme suit.

utiliser la phrase comme entrée:

entrez la description de l'image ici

utiliser l' article comme entrée:

entrez la description de l'image ici

Zachary
la source
0

Pour le premier, gensim a la classe Word2Vec. Pour ce dernier, Doc2Vec.

http://rare-technologies.com/doc2vec-tutorial/


la source
3
doc2vec est très différent de l'exécution de word2vec sur un corpus d'articles plutôt que sur des phrases. doc2vec apprendra les représentations des articles eux-mêmes, plutôt que seulement les mots.
jamesmf