精度计算代码中的fastText和word2vec:NaNs

精度计算代码中的fastText和word2vec:NaNs,c,nlp,word2vec,fasttext,C,Nlp,Word2vec,Fasttext,我从fastText Github存储库页面下载了预先训练好的英语维基百科向量文件(wiki.en.vec),并尝试计算Mikolov word2vec第一篇论文中描述的语法和语义类比任务的准确度,如下所示: 我只需执行make即可构建word2vec存储库 我运行 /计算精度Wik.E.VEC 0 >,即,我将预先训练的向量文件从Word2VEC传递到计算精度二进制,以及0的阈值,以考虑整个词汇,而不是默认将其限制为30000,我还使用发送精度计算数据集questions words.txt

我从fastText Github存储库页面下载了预先训练好的英语维基百科向量文件(
wiki.en.vec
),并尝试计算Mikolov word2vec第一篇论文中描述的语法和语义类比任务的准确度,如下所示:

我只需执行
make
即可构建word2vec存储库


我运行<代码> /计算精度Wik.E.VEC 0 <疑问词.txt < /C> >,即,我将预先训练的向量文件从Word2VEC传递到计算精度二进制,以及0的阈值,以考虑整个词汇,而不是默认将其限制为30000,我还使用

发送精度计算数据集
questions words.txt
compute accurity
对本地训练向量有效吗?(也就是说,您的设置是否在不添加额外变量的情况下工作。)

如果是这样,那么本地训练的具有“计算机准确性”的向量集是否与Facebook下载的文件的格式/编码相同

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


对于投票反对的人:请在此评论问题的不足之处,以便我能够做出必要的改进。简单地否决我的问题而不给予反馈以改进是不公平的。谢谢你的回复!我还没有得到
计算精度
来处理我的任何本地训练向量(都是
.vec
文件)。是的,我注意到文件
compute accurity.c
rb
模式读取输入文件,因此我甚至将代码更改为
r
,并尝试了,但仍然没有帮助。请参阅第41行:我还使用
mv file.vec file.txt
将我的文件从
.vec
转换为
.txt
,然后使用名为convertvec的工具将
.txt
文件转换为二进制
.bin
文件:然后我将
.bin
文件传递给
计算精度
可执行文件--那也没用。请帮帮我,我被困在这上面太久了!我不熟悉这个
convertvec
工具,因此无法评论它的可靠性或适当性。我建议首先尝试使用经过本地培训、保存为二进制模式的向量,如
演示word Accurance.sh
脚本,以确保本地word2vec工具能够正常工作。只有在这起作用之后,才可以尝试额外的步骤将FB的
.vec
转换为原始单词2vec
.bin
。在过去的几天里,我使用的是
convertvec
,有时无法将
.vec
转换为二进制格式。你需要验证文件的头。不幸的是,
convertvec
没有打印日志或可能的错误。也可以尝试其他机器。。
>capital-common-countries:
ACCURACY TOP1: 0.00 % (0 / 1)
Total accuracy: -nan % Semantic accuracy: -nan % Syntactic accuracy: -nan %