2016-04-23 274 views
0

我准备好去我已经训练过的word2vec模型。我已经连载它作为一个CSV文件:如何在gensim中加载预先训练好的模型并使用它训练doc2vec?

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

我想知道什么是我可以加载这个词向量模型gensim并用它来训练一个段落或doc2vec模型。

Doc2Vec tutorial说我可以加载一个“# C text format”形式的模型,但我不知道这实际上是什么意思。什么是“C文本格式”在第一位,但更重要的是:

  • 我怎样才能加载我的word2vec模型,并将其用于doc2vec培训?

如何从word2vec模型创建词汇?

回答

1

Doc2Vec不需要单词向量作为输入:它会创建自己训练期间需要的任何单词向量。 (以及一些模式,如纯粹的DBOW - dm=0, dbow_words=0 - 根本不使用或训练单词向量。)

为单词向量播种Doc2Vec模型可能有所帮助或伤害;没有太多的理论或公布的结果来提供指导。有一个关于Word2Vec,intersect_word2vec_format()的实验方法,可以合并word2vec-C格式的矢量与现有的词汇的模型,但你需要查看源代码,以真正了解它的假设:

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

+0

我无法证明这一说法,但我认为如果提供预先训练的单词向量,文档向量会更好地工作。我只通过评论相交部分并比较结果来测试这一点。但谢谢你提供了一个答案:) – displayname

+0

什么任务,与多少数据,哪些预先训练的向量更好地工作? – gojomo

-1

有一个邮件列表answer可能揭示这一点。这是一个从二进制文件转换为文本文件格式的C程序,但你可以看到它的期望。

+0

它看起来,这个“C”文件就像一个csv文件,除了第一行是'#vocabSize#vectorSize'并且所有后面的行都是用空白分隔的行'float1 float2 ... floatN' - 更有趣的部分是实际上是如何为我的词汇提供doc2vec并训练段落向量。 – displayname

相关问题