关于gensim的word2vec,
假设您已经在一个大型语料库上训练了一个模型,并且想用新句子中的新词来更新它,但不更新已经有向量的词。
调用model.train
时是否可以冻结某些单词的向量并仅更新某些选定单词(例如新单词)?
也许有一个窍门吗?
谢谢。
答案 0 :(得分:0)
有!但这是一个实验性功能,很少有文档-您需要阅读源代码以完全理解它,并直接更改您的模型以使用它。
在word2vec.py
源中查找以_lockf
结尾的属性-特别是在最新的代码中,命名为vectors_lockf
。这是一种面具,可以允许,削弱或停止某些单词的训练。对于exah单词,如果其值为1.0,则将应用常规的完全反向传播更新。任何较低的值都会削弱更新-因此0.0会使单词冻结更新。 (可能的更新仍在计算中-因此没有净加速-在最终应用到特定的冻结单词之前,它只是乘以0.0。)