根据 gensim.models.Word2Vec API reference,“compute_loss”是有效的关键字。但是,我收到的错误是unexpected keyword
。
更新:
GitHub上的Word2Vec类does have是'compute_loss'关键字,但我的本地库没有。
我看到gensim文档和库彼此偏离。
我发现conda repository中的win-64/gensim-2.2.0-np113py35_0.tar.bz2
- 文件不是最新的。
然而,在使用conda卸载gensim之后,pip install gensim
没有改变任何内容,因为它仍然不起作用。
显然,GitHub上的源代码和分布式库是不同的,但教程似乎假设代码与GitHub一样。
/ END OF UPDATE
我关注并下载了tutorial notebook on Word2Vec。
在输入[25]中,“训练损失计算”标题之后的第一个单元格,我在Word2Vec类'初始值设定项中出错。
输入:
# instantiating and training the Word2Vec model
model_with_loss = gensim.models.Word2Vec(sentences, min_count=1,
compute_loss=True, hs=0, sg=1, seed=42)
# getting the training loss value
training_loss = model_with_loss.get_latest_training_loss()
print(training_loss)
输出:
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-25-c2933abf4b08> in <module>()
1 # instantiating and training the Word2Vec model
----> 2 model_with_loss = gensim.models.Word2Vec(sentences, min_count=1, compute_loss=True, hs=0, sg=1, seed=42)
3
4 # getting the training loss value
5 training_loss = model_with_loss.get_latest_training_loss()
TypeError: __init__() got an unexpected keyword argument 'compute_loss'
我通过conda安装了gensim 2.2.0,并从gensim存储库中获得了一个新的克隆(使用教程笔记本)。我在Windows 10上使用64位Python 3.5.3。(Anaconda)
我试图寻找同样遭遇的人,但我没有成功。
你知道这个的原因,以及如何解决这个问题?显然,GitHub上的源代码和分布式库是不同的,但教程似乎假设代码与GitHub一样。
我之前也posted the question在官方邮件列表中。
答案 0 :(得分:2)
更新: compute_loss
已于7月25日在2.3.0版本中添加。的 / UPDATE 强>
问题中引用的笔记本位于开发分支上。 主分支的notebook与最新分发一致。
{6}在this commit中添加了compute_loss
参数。last upload到PYPI是6月21日,仅仅两天之后。 (截至今日)。 compute_loss
未包含在分发中。 (v2.2.0中的最后一次提交是this。)
我认为解决方案是等待下一版本的gensim,同时从存储库下载代码。
然而,至少在Windows上,这可能会给gensim FAST版本带来挑战。请参阅Using Gensim shows "Slow version of gensim.models.doc2vec being used"。
如何从GitHub安装gensim在install documentation。
中有解释