2017-07-13 2 views
0

J'ai chargé un modèle word2vec à l'aide de l'ensemble de données Google Actualités. Maintenant, je veux obtenir les représentations Word2Vec d'une liste de phrases que je souhaite regrouper. Après avoir traversé le documentation j'ai trouvé ce gensim.models.word2vec.LineSentence mais je ne suis pas sûr que ce soit ce que je cherche.Après avoir chargé un modèle Word2Vec pré-entraîné, comment obtenir des représentations word2vec de nouvelles phrases?

Il devrait y avoir un moyen d'obtenir des représentations word2vec d'une liste de phrases à partir d'un modèle pré-entraîné droit? Aucun des liens que j'ai cherché n'avait quoi que ce soit à ce sujet. Toute piste serait appréciée. Word2Vec ne propose que des représentations vectorielles pour les mots et non pour les phrases.

+0

Les cartes word2vec * mots * aux vecteurs, pas aux phrases. –

Répondre

1

Un moyen brut mais assez efficace (à certaines fins) d'aller de vecteurs de mots à des vecteurs pour des textes plus longs (comme des phrases) est de faire la moyenne de tous les vecteurs de mots. Ce n'est pas une fonction de la classe gensim Word2Vec; vous devez le coder vous-même.

Par exemple, avec le mot-vecteurs déjà chargés comme word_model, vous auriez à peu près faire:

import numpy as np 

sentence_tokens = "I do not like green eggs and ham".split() 
sum_vector = np.zeros(word_model.vector_size) 
for token in sentence_tokens: 
    sum_vector += word_model[token] 
sentence_vector = sum_vector/len(sentence_tokens) 

code réel pourrait ajouter le traitement lorsque les jetons ne sont pas tous connus du modèle, ou autre façons de marquer/filtrer le texte, et ainsi de suite.

Il existe d'autres méthodes plus sophistiquées pour obtenir le vecteur d'une longueur de texte, comme l'algorithme 'Paragraph Vectors' implémenté par la classe Doc2Vec de gensim. Ceux-ci ne commencent pas nécessairement par des mots-vecteurs pré-formés, mais peuvent être formés sur votre propre corpus de textes.

+0

Merci pour la réponse. J'ai essayé Doc2Vec mais mon corpus est trop petit pour que je puisse former efficacement le modèle. C'est la raison pour laquelle j'essayais de mettre en œuvre un modèle Word2Vec pré-formé. – Kira