这个问题完全超出了我的想象。我正在使用 gensim 训练 Word2Vec 模型。我提供了多种语言的数据,即英语和印地语。当我试图找到最接近“man”的单词时,我得到的是:
\n\nmodel.wv.most_similar(positive = [\'man\'])\nOut[14]: \n[(\'woman\', 0.7380284070968628),\n (\'lady\', 0.6933152675628662),\n (\'monk\', 0.6662989258766174),\n (\'guy\', 0.6513140201568604),\n (\'soldier\', 0.6491742134094238),\n (\'priest\', 0.6440571546554565),\n (\'farmer\', 0.6366012692451477),\n (\'sailor\', 0.6297377943992615),\n (\'knight\', 0.6290514469146729),\n (\'person\', 0.6288090944290161)]\n--------------------------------------------\nRun Code Online (Sandbox Code Playgroud)\n\n问题是,这些都是英文单词。然后我试图找到相同含义的印地语和英语单词之间的相似性,
\n\nmodel.similarity(\'man\', \'\xe0\xa4\x86\xe0\xa4\xa6\xe0\xa4\xae\xe0\xa5\x80\')\n__main__:1: DeprecationWarning: Call to deprecated `similarity` (Method will \nbe removed in 4.0.0, use self.wv.similarity() instead).\nOut[13]: 0.078265618974427215\nRun Code Online (Sandbox Code Playgroud)\n\n这个准确度应该比所有其他准确度都要好。我的印地语语料库是通过翻译英语语料库制作的。因此,这些词出现在类似的上下文中。因此他们应该很接近。
\n\n这就是我在这里所做的:
\n\n#Combining all the words together.\nall_reviews=HindiWordsList + EnglishWordsList\n\n#Training FastText model\ncpu_count=multiprocessing.cpu_count()\nmodel=Word2Vec(size=300,window=5,min_count=1,alpha=0.025,workers=cpu_count,max_vocab_size=None,negative=10)\nmodel.build_vocab(all_reviews)\nmodel.train(all_reviews,total_examples=model.corpus_count,epochs=model.iter)\nmodel.save("word2vec_combined_50.bin")\nRun Code Online (Sandbox Code Playgroud)\n 我是矢量的新手,我试着在main()函数中输入这个2D矢量,但是无法这样做.
int main()
{
int t, x, n;
cin>>n;
vector< vector <int> > jail(n);
for(int i=0; i<n; i++){
jail[i].reserve(n);
for(int j=0; j<n; j++){
cin>>jail[i][j];
}
}
cout<< jailBreak(jail,n-1,0,0)<<endl;
}
Run Code Online (Sandbox Code Playgroud)
运行时错误是我需要在程序开头输入垃圾输入.这个含糊不清的输入一直困扰着我很长一段时间,而不是事先提出任何建议.