基於Gensim的work2vec程式實現
阿新 • • 發佈:2018-11-27
work2vec官方API地址
models.word2vec – Word2vec embeddings
models.word2vec
這個模組實現了word2vec演算法。其中包括基於Hierarchical和Negative的CBOW和Skip-gram網路。
class gensim.models.word2vec.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, ns_exponent=0.75, cbow_mean=1, hashfxn=, iter=5, null_word=0, trim_rule=None, sorted_vocab=1, batch_words=10000, compute_loss=False, callbacks=(), max_final_vocab=None)
- sentences, 訓練文件,可以是list,大檔案也可用Text8Corpus讀入.多語料是,將每份語料分詞後裝入一個列表中,再把多份語料的列表作為元素放入新的列表中。
- size, (int) 定義詞向量維度
- window,(int)定義當前詞和預測詞之間的最大距離,即預測詞與它前面多少個詞有關。
- min_count,(int)詞頻限制,即當某詞的詞頻小於該值時,該詞忽略。
- workers,(int)使用多少執行緒來訓練模型
- sg,{0,1},0=CBOW;1=Skip-gram
- hs,{0,1}, 0=negative; 1=Hierarchical;default=0
- cbow_mean,{0,1},0說明CBOW的輸入層到對映層為加和;1說明輸入層到對映層為求平均。
- alpha,初始化學習率
- min_alpha,在執行過程中,學習率會隨之減少。該引數為學習率下線。
- seed,詞向量的隨機初始化種子
- max_vocab_size: 設定詞向量構建期間的RAM限制。如果所有獨立單詞個數超過這個,則就消除掉其中最不頻繁的一個。每一千萬個單詞需要大約1GB的RAM。設定成None則沒有限制。
- sample: 表示 取樣的閾值,如果一個詞在訓練樣本中出現的頻率越大,那麼就越會被取樣。預設為1e-3,範圍是(0,1e-5)
- negative: 如果>0,則會採用negativesamp·ing,用於設定多少個noise words
- iter:迭代次數,預設為5。
- hashfxn: hash函式來初始化權重。預設使用python的hash函式
batch_words:每一批的傳遞給執行緒的單詞的數量,預設為10000
讀取生成的詞向量
model=models.word2vec.Word2Vec(line_sent,min_count=1, size=5, window=2,sg=0,hs=1)#此處引數可以自行設定
model['word_name']