我已经使用Doc2vecc训练了一组文档。
https://github.com/mchen24/iclr2017
我正在尝试为看不见的文档生成嵌入矢量。我已经按照go.sh中的说明对文档进行了培训。
"""
time ./doc2vecc -train ./aclImdb/alldata-shuf.txt -word
wordvectors.txt -output docvectors.txt -cbow 1 -size 100 -window 10 -
negative 5 -hs 0 -sample 0 -threads 4 -binary 0 -iter 20 -min-count 10
-test ./aclImdb/alldata.txt -sentence-sample 0.1 -save-vocab
alldata.vocab
"""
我得到了火车集合的docvectors.txt和wordvectors.txt。现在,从这里开始,如何在不进行重新训练的情况下,使用相同的模型生成用于看不见的测试的向量。
答案 0 :(得分:1)
据我所知,doc2vecc.c
代码(和论文)的作者(https://github.com/mchen24)对某些示例“段落向量”代码进行了最小的更改,而这些代码本身对原始的Google / Mikolov word2vec.c
(https://github.com/tmikolov/word2vec/blob/master/word2vec.c)。
“段落矢量”更改和随后的doc2vecc
更改似乎都未包含任何推断新文档矢量的功能。
由于这些是无监督算法,因此出于某些目的,在同一组合批量训练中,针对某些下游分类任务(训练和测试文本)计算文档向量可能是合适的。 (即使您的分类器应经过训练,对已知标签文本的一部分进行评估,您的最终目标实际上也可能有未标记的示例来帮助学习文档向量化。)
答案 1 :(得分:0)
Doc2VecC专门用于创建文档向量,作为每个文档中单词向量的平均值。这与Doc2Vec不同,在Doc2Vec中,文档嵌入与单词嵌入一起接受训练,因此无法处理看不见的文档。在Doc2Vec中,经过训练的向量数量也很大。
要为看不见的文档建立向量,只需计算词汇表中的所有单词并计算单词向量的平均值即可。