我正在使用GoogleNews-vectors-negative300.bin模型和脓收缩库来确定机器学习时扩展收缩的最佳选择,比如I'd with可以是I would和I had。这种型号的尺寸非常大,大约为3.5Gb。
我认为3.5Gb是一个非常大的型号,用于我的目的。在这个模型中,我可能永远不会使用所有的词表示。是否有一种方法可以减少大小,只提取对我的目的有用的单词表示的子集?
发布于 2018-06-06 01:48:32
用gensim的load_word2vec_format()方法limit的可选参数将集合截断到第一个N字很容易。如果存在,则只加载给定的字数。例如,limit=500000只从所提供的文件中读取第一50万个单词。
由于这类文件通常被排序为将最频繁的单词放在第一位,所以您通常不会因为丢弃后面单词的“长尾”而损失很多。(它们在你的文本中出现的频率会更低,而且他们的单词向量也会被训练成更少的例子,因此质量也会更低。)
然后,如果您希望磁盘上有一个较小的文件,则可以重新设置截断集.
您还可以篡改磁盘上的文件,使其只包含要保留的其他一些单词子集。在文本(binary=False)格式下这样做可能更容易。查看gensim的load_word2vec_format()/save_word2vec_format()源代码可以帮助您理解文件必须是什么样子才能读取回来。
https://stackoverflow.com/questions/50709355
复制相似问题