使用Gensim < 4.0,我们可以使用以下代码重新训练word2vec模型:
model = Word2Vec.load_word2vec_format("GoogleNews-vectors-negative300.bin", binary=True)
model.train(my_corpus, total_examples=len(my_corpus), epochs=model.epochs)然而,我理解的是Gensim 4.0不再支持Word2Vec.load_word2vec_format。相反,我只能加载keyedVectors。
如何用我的领域专用语料库微调一个预先训练过的word2vec模型(例如GoogleNews训练的模型)?
发布于 2021-07-08 17:40:54
我不认为这段代码在4.0以前的Gensim版本中会起作用。一个简单的单词向量列表,像GoogleNews-vectors-negative300.bin,没有足够的信息来继续训练.
它缺少了隐藏到输出层的权重&字频信息,这是训练所必需的。
从过去的源代码来看,从2017年2月发布的1.0.0开始,该代码就已经给出了一个带指向加载普通字词向量集的方法的指针的错误 --来解决那些有可能工作的错误观念的人--还有这样一种模式。(在1.0.0之前,docs也是警告说这行不通,如果出现一个不太有用的错误,它也会失败。)
正如提到的错误之一,有时会有实验支持,通过.intersect_word2vec_format()加载一些先前的单词向量集,以打击现有模型中已经初始化的词汇表中的任何单词。但在默认情况下,(1)锁定导入的向量以防止进一步的变化;(2)不引入新的单词。这与人们通常从“微调”中想要的不同,所以这不是一个现成的帮助实现这个目标。
我相信有些人已经拼凑了自定义代码,以实现各种类型的微调在他们的项目-但我不知道谁发表了一个可靠的食谱或强有力的结果。(我怀疑一些认为自己做得很好的人只是没有严格评估他们正在采取的措施。)
如果您知道有任何在Gensim-4.0.0之前工作过的菜谱,那么它应该是适应性的--对Word2Vec-related类的4.0更改主要是重构、优化和新选项(功能几乎不移除)。但是,一个可靠的描述,什么使用的工作,或具体的微调策略正在追求什么具体的利益,以提出更具体的建议。
https://stackoverflow.com/questions/68298289
复制相似问题