2017-02-25 77 views
4

Google加載完整的預先訓練過的word2vec模型是一項耗時且乏味的工作,因此我想知道是否有機會刪除低於特定頻率的文字,以便將vocab的計數降低至例如。 200k字。使用Gensim減少Google的Word2Vec模型

我發現在gensim包Word2Vec方法來確定詞頻,並再次重新保存模型,但我不知道如何pop/remove從預先訓練的模型翻譯再次保存之前。我找不到KeyedVector classWord2Vec class這樣的操作提示嗎?

https://github.com/RaRe-Technologies/gensim/blob/develop/gensim/models/word2vec.py https://github.com/RaRe-Technologies/gensim/blob/develop/gensim/models/keyedvectors.py

如何選擇預先訓練word2vec模型的詞彙的子集?

回答

4

的了Googlenews字矢量文件格式不包括頻率信息。但是,它看起來似乎更頻繁地排序到頻率更低的順序。

而且,load_word2vec_format()提供了一個可選的limit參數,該參數只讀取給定文件中的許多向量。

因此,下面應該做的大致您要求什麼:

goognews_wordecs = KeyedVectors.load_word2vec_format(`GoogleNews-vectors-negative300.bin.gz`, binary=True, limit=200000) 
3

你知道這個開放列表/一套預訓練模型 - 也許另一個會對巨型谷歌有利嗎? :)

https://github.com/3Top/word2vec-api#where-to-get-a-pretrained-models

我不知道該怎麼做您的精確需求,但對谷歌組上有修整模型進行一些討論,可能是有用的:https://groups.google.com/forum/#!topic/gensim/wkVhcuyj0Sg

他們引用最近改變也最小化模型,但我知道,這不完全是你想要的。

https://github.com/RaRe-Technologies/gensim/pull/987

相關問題