Gensim中找不到Word2Vec单词,但出现在TensorFlow嵌入式投影仪上吗?

时间:2019-06-04 05:59:47

标签: python-3.x deep-learning nlp word2vec word-embedding

我最近开始试验预训练的单词嵌入,以增强我的LSTM模型在NLP任务上的性能。在这种情况下,我调查了Google的Word2Vec。根据在线教程,我首先使用package practise; import java.util.Scanner; public class scanccls { public static void main(String[] args) { System.out.println("Enter your name:"); Scanner scan = new Scanner(System.in); String name = ""; name += scan.nextLine(); // Can also be done like // String name=scan.next(); // name+=scan.nextLine(); // They Both Work as same System.out.println("Your name is :" + name); } } 下载了Word2Vec,并使用python的wget https://s3.amazonaws.com/dl4j-distribution/GoogleNews-vectors-negative300.bin.gz包通过以下代码查询嵌入。

gensim

但是,在注意到模型中没有找到很多常用词之后,我开始怀疑是否有问题。我尝试在嵌入存储库中搜索from gensim.models import KeyedVectors if __name__ == "__main__": model = KeyedVectors.load_word2vec_format("./data/word2vec/GoogleNews-vectors-negative300.bin", binary=True) print(model["bosnia"]) ,如上所示,但未找到。因此,我继续使用TensorFlow embedding projector,加载了Word2Vec模型,并搜索了bosnia-在那里。

所以,我的问题是:为什么会这样?我下载的Word2Vec版本是否不完整?还是gensim无法将所有单词都加载到内存中并因此省略了某些单词?

1 个答案:

答案 0 :(得分:0)

您应该检查下载文件的长度,以确保它符合预期(如果文件被截断或下载不完整)。

您应该仔细检查两个地方是否都使用了相同的文件,还应该通过两个路径检查完全相同的令牌(例如sortName = lastName;null)。 (https://projector.tensorflow.org/下拉菜单中的5个选项都不对应于'bosnia' 300 d,300万令牌的数据集,并且'Bosnia'按钮似乎不支持word2vec GoogleNews个文件,因此我不确定如何将其用于交叉检查该文件中的内容。)

(gensim的load中没有任何已知的错误可以解释它缺少实际存在的向量。)