2016-04-23 2 views
0

J'ai un modèle word2vec prêt à l'emploi que j'ai déjà formé. Je l'ai sérialisé en tant que fichier CSV:Comment charger un modèle pré-entraîné avec des gensim et entraîner doc2vec avec?

word, v0,  v1,  ..., vN 
house, 0.1234, 0.4567, ..., 0.3461 
car, 0.456, 0.677, ..., 0.3461 

Ce que je voudrais savoir comment je peux charger ce modèle de vecteur de mot dans gensim et l'utiliser pour former un paragraphe ou modèle doc2vec.

Cette Doc2Vec tutorial dit que je peux charger un modèle sous la forme d'un "# C text format" mais je n'ai aucune idée de ce que cela signifie réellement. Qu'est-ce que le «format texte C» en premier lieu mais plus important:

  • Comment puis-je charger mon modèle word2vec et l'utiliser pour la formation doc2vec?

Comment puis-je créer le vocabulaire de mon modèle word2vec?

Répondre

1

Doc2Vec n'a pas besoin de vecteurs-mots en entrée: il créera tous les vecteurs-mots nécessaires lors de sa propre formation. (Et certains modes, comme le DBOW pur - dm=0, dbow_words=0 - n'utilisent ou n'enseignent pas du tout les vecteurs de mots.)

L'ensemencement d'un modèle Doc2Vec avec des vecteurs de mots peut aider ou nuire; il n'y a pas beaucoup de théorie ou de résultats publiés pour offrir des conseils. Il y a une méthode expérimentale sur Word2Vec, intersect_word2vec_format(), qui peuvent fusionner avec des vecteurs word2vec-c-format en un modèle avec un vocabulaire existant, mais vous aurez besoin d'examiner la source de bien comprendre ses hypothèses:

https://github.com/RaRe-Technologies/gensim/blob/51753b95415bbc344ea6af671818277464905ea2/gensim/models/word2vec.py#L1140

+0

Je ne peux pas prouver cette affirmation mais je pense que les vecteurs de document fonctionnent mieux si l'on fournit des vecteurs de mots pré-formés. Je l'ai seulement testé en commentant la partie intersectée et en comparant les résultats. Mais merci de fournir une réponse :) – displayname

+0

Travailler mieux sur quelle tâche, avec combien de données, avec quels vecteurs pré-formés? – gojomo

-1

Il existe une liste de diffusion answer qui peut faire la lumière là-dessus. C'est un programme C qui convertit du format binaire au format de fichier texte, mais vous pouvez voir ce qu'il attend.

+0

Il semble que ce fichier "C" est comme un fichier csv sauf que la première ligne est '#vocabSize # vectorSize' et toutes les lignes suivantes sont des lignes séparées par des espaces avec' word float1 float2 ... floatN' - la partie la plus intéressante est En fait, la façon de nourrir doc2vec avec mon vocabulaire et de former des vecteurs de paragraphe. – displayname