NLP:Gensim庫之word2vec
阿新 • • 發佈:2018-12-31
維度 similar 信息 pac 計算 sof 閾值 adding lin
Gensim是一款開源的第三方Python工具包,用於從原始的非結構化的文本中,無監督地學習到文本隱層的主題向量表達。它支持包括TF-IDF,LSA,LDA,和word2vec在內的多種主題模型算法,支持流式訓練,並提供了諸如相似度計算,信息檢索等一些常用任務的API接口。
1、實現類
class gensim.models.Word2Vec(sentences=None, size=100, alpha=0.025, window=5, min_count=5, max_vocab_size=None, sample=0.001, seed=1, workers=3, min_alpha=0.0001, sg=0, hs=0, negative=5, cbow_mean=1, hashfxn=<built-in function hash>, iter=5, null_word=0, trim_rule=None, sorted_vocab=1, batch_words=10000)
2、方法:
(1)gensim.models.Word2Vec.similarity(w1, w2):計算兩個單詞之間的余弦相似度。
>>> trained_model.similarity(‘woman‘, ‘man‘) 0.73723527 >>> trained_model.similarity(‘woman‘, ‘woman‘) 1.0
附、參數說明:
sentences: | 可以是一個list,對於大語料集,建議使用BrownCorpus,Text8Corpus或lineSentence構建。 |
size: | 是指特征向量的維度,默認為100。大的size需要更多的訓練數據,但是效果會更好。推薦值為幾十到幾百。 |
alpha: | 學習速率 |
window: | 表示當前詞與預測詞在一個句子中的最大距離是多少。5表示每個詞考慮前5個詞與後5個詞。 |
min_count: | 可以對字典做截斷。詞頻少於min_count次數的單詞會被丟棄掉,默認值為5。 |
max_vocab_size: | 設置詞向量構建期間的RAM限制。如果所有獨立單詞個數超過這個,則就消除掉其中最不頻繁的一個。每一千萬個單詞需要大約1GB的RAM。設置成None則沒有限制。 |
sample: | 高頻詞匯的隨機降采樣的配置閾值,默認為1e-3,範圍是(0,1e-5) |
seed: | 用於隨機數發生器。與初始化詞向量有關。 |
workers: | 參數控制訓練的並行數。 |
sg: | 用於設置訓練算法,默認為0,對應CBOW算法;sg=1則采用skip-gram算法。 |
hs: | 如果為1則會采用hierarchica·softmax技巧。如果設置為0(default),則negative sampling會被使用。 |
negative: | 如果>0,則會采用negativesamping,用於設置多少個noise words。 |
cbow_mean: | 如果為0,則采用上下文詞向量的和,如果為1(default)則采用均值。只有使用CBOW的時候才起作用。 |
hashfxn: | hash函數來初始化權重。默認使用python的hash函數。 |
iter: | 叠代次數,默認為5。 |
trim_rule: | 用於設置詞匯表的整理規則,指定那些單詞要留下,哪些要被刪除。可以設置為None(min_count會被使用)或者一個接受()並返回RULE_DISCARD,utils。RULE_KEEP或者utils。RULE_DEFAULT的函數。 |
sorted_vocab: | 如果為1(default),則在分配word index 的時候會先對單詞基於頻率降序排序。 |
batch_words: | 每一批的傳遞給線程的單詞的數量,默認為10000 |
min_alpha: |
NLP:Gensim庫之word2vec