我试图用预先训练的模型使用新的标签文档(标记图(进行训练。
预验证的模型是训练有素的模型,具有文档,例如,具有label1_index的唯一ID,例如good_0,good_1 to good_999训练数据的总大小约为7000
现在,我想使用带有label2_index唯一ID的新文档训练预训练的模型,例如,bad_0,bad_1 ...训练数据的总大小约为1211
火车本身是成功的,没有任何错误,但是问题是每当我尝试使用" mostrongimilar'"时,它只会表明用良好标记的类似文档_...我希望在其中标记为bad_。
。如果我从一开始就完全训练,它给了我我期望的答案 - 它会引起新给出的文档,类似于用好是坏标记的文档。
但是,上面的做法将从一开始就完全受过训练。
继续火车无法正常工作,还是我犯了一些错误?
Gensim Doc2Vec
类始终可以通过train()
添加额外的示例,但它只会在初始build_vocab()
步骤中发现Word-Tokens和Document-Tags的工作词汇。因此,除非在build_vocab()
期间可用单词/标签,否则它们将被忽略,如稍后未知。(单词从文本中静静地删除;标签未在模型中训练或记住。(
Word2Vec
超级类 Doc2Vec
借用了许多功能在其build_vocab()
上具有更新的,更实验的参数,称为 update
。如果设置为true,则对build_vocab()
的调用将添加到而不是替换任何先前的词汇。但是,截至2018年2月,此选项尚未与Doc2Vec
一起使用,并且实际上经常会导致内存错误崩溃。
,即使可以/何时可以使用它,提供渐进的培训示例也不一定是一个好主意。通过仅更新模型的部分 - 新示例行使的部分 - 总体模型可能会变得更糟,或者其向量使彼此之间的自洽程度降低。(这些密集插入模型的本质是,对 all 的优化示例会导致通常使用的矢量。仅训练一些子集使该模型朝着在该子集上的良好状态朝着好处,较早的例子可能成本。(
如果您需要新的示例才能成为most_similar()
结果的一部分,则可能需要在Doc2Vec
之外创建自己的单独的媒介。当您推断新文本的新向量时,可以将它们添加到外部集合中,然后实现自己的most_similar()
(使用Gensim代码作为模型(来搜索此扩展的向量集,而不仅仅是固定集由初始批量Doc2Vec
培训创建。