-2

wiki.en.vec我从 fastText Github 存储库页面下载了预训练的英语维基百科向量文件(

我通过简单地构建 word2vec 存储库make

我跑了./compute-accuracy wiki.en.vec 0 < questions-words.txt,也就是说,我将预训练的向量文件从 word2vec 和阈值 0 一起传递给计算精度二进制文件,以便考虑整个词汇表,而不是默认将其限制为 30000,并且我还发送了准确度questions-words.txt使用计算数据集,<因为我注意到代码从标准输入读取数据集。

作为回应,我只是得到了一堆像下面这样的 NaN。即使我将阈值更改为 30000 或其他任何值,这也不会改变。

>capital-common-countries:
ACCURACY TOP1: 0.00 % (0 / 1)
Total accuracy: -nan % Semantic accuracy: -nan % Syntactic accuracy: -nan %

有人可以解释为什么英语预训练向量似乎不适用于 word2vec 的准确度计算代码吗?我看了看,compute-accuracy.c它看起来确实需要标准矢量文件格式约定,我也看了看wiki.en.vec,它看起来确实像标准约定格式。

此外,在 fastText 论文中,提出了使用 fastText 向量的词类比精度,并且该论文在那里引用了 Mikolov 的 word2vec 论文——显然,使用了相同的数据集,并且可能使用了相同的 word2veccompute-accuracy.c文件来获得呈现的数字。那么有人可以解释发生了什么问题吗?

4

1 回答 1

0

是否compute-accuracy适用于本地训练的向量?(也就是说,您的设置是否在不添加 Facebook 来源向量的额外变量的情况下工作。)

如果是这样,那么与“计算机精度”一起使用的本地训练向量集是否与 Facebook 下载的文件格式/编码相同?

如果我理解正确,这些.vec文件是文本格式。compute-accuracy在 word2vec.c 存储库中使用可执行文件的示例表明传递二进制格式向量作为参数。看:

https://github.com/tmikolov/word2vec/blob/master/demo-word-accuracy.sh#L7

于 2017-07-15T02:06:55.623 回答