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的 相關性噢
、