来自 Google 个新闻 Word2Vec 模型的小模型

Small model from Google news Word2Vec model

我正在使用 GoogleNews-vectors-negative300.bin 模型和 pycontractions 库来通过机器学习确定扩展收缩的最佳选择,当存在诸如 I'd 等含糊不清的含义时可以 I wouldI had。这个模型的体积很大,大约有3.5Gb

我认为 3.5Gb 是一个非常大的模型,可以用于我的目的。可能我永远不会在这个模型中使用所有的词表示。有没有一种方法可以减少仅提取对我的目的有用的单词表示子集的大小?

使用 gensimload_word2vec_format() 方法 limit 的可选参数可以很容易地将集合截断为前 N 个单词。如果存在,则只会加载给定数量的单词。例如,limit=500000 只从提供的文件中读取前 500,000 个单词。

由于此类文件通常是将最常用的词排在最前面,因此丢弃后面的 'long tail' 词通常不会有太大损失。 (它们在您的文本中出现的频率会降低,并且它们的词向量是在较少的示例上训练的,因此质量较低。)

如果您希望磁盘上的文件较小,您可以重新save_word2vec_format() 截断的集合。

您也可以篡改磁盘上的文件,使其只包含一些要保留的 other 字词子集。以文本 (binary=False) 格式执行此操作可能更容易。查看 load_word2vec_format()/save_word2vec_format()gensim 源代码可以帮助您理解文件读回时的样子。