Python實現word2Vec -model


import gensim, logging, os
logging.basicConfig(format='%(asctime)s : %(levelname)s : %(message)s', level=logging.INFO)
import nltk

corpus = nltk.corpus.brown.sents()

fname = 'brown_skipgram.model'
if os.path.exists(fname):
    # load the file if it has already been trained, to save repeating the slow training step below
    model = gensim.models.Word2Vec.load(fname)
else:
    # can take a few minutes, grab a cuppa
    model = gensim.models.Word2Vec(corpus, size=100, min_count=5, workers=2, iter=50)
    model.save(fname)

words = "woman women man girl boy green blue".split()
for w1 in words:
    for w2 in words:
        print(w1, w2, model.similarity(w1, w2))

print(model.most_similar(positive=['woman', ''], topn=1))
print(model.similarity('woman', 'girl'))girl

在gensim模塊中已經封裝了13年提出的model--word2vec,所以我們直接開始建立模型

 

 

 這是建立模型的過程,最后會出現saving Word2vec的語句,代表已經成功建立了模型

 

這是輸入了 gorvement和news關鍵詞后 所反饋的詞語 --- administration, 他們之間的相關性是0.508

當我在輸入 women 和 man ,他們顯示的相關性的0.638 ,已經是非常高的一個數字。

值得一提的是,我用的語料庫是直接從nltk里的brown語料庫。其中大概包括了一些新聞之類的數據。

 

大家如果感興趣的話,可以自己建立該模型,通過傳入不同的語料庫,來calc 一些term的 相關性噢

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM