关于gensim的word2vec,假设你已经在一个大型语料库上训练了一个模型,并且你想用新句子中的新词来更新它,但不想更新已经有向量的词。在调用model.train时,有没有可能冻结一些单词的向量,只更新一些选定的单词(比如新单词)?或许有什么诀窍可以做到呢?谢谢。
发布于 2018-07-02 23:25:40
的确有!但这只是一个试验性的功能,几乎没有文档-你需要阅读源代码才能完全理解它,并直接改变你的模型来使用它。
在word2vec.py源代码中查找以_lockf结尾的属性-特别是在最新的代码中,一个名为vectors_lockf的属性。这是一种允许、削弱或停止训练某些单词的面具。对于每个单词,如果它的值是1.0,则应用正常的完全反向传播更新。任何较小的值都会削弱更新-所以0.0会在更新时冻结单词。(潜在的更新仍在计算中-因此没有净加速-只是在最终应用于特定的冻结单词之前乘以-0.0。)
https://stackoverflow.com/questions/51135118
复制相似问题