自然語言處理工具之gensim / 預訓練模型 word2vec doc2vec


gensim

intro

doc | doc ZH

Gensim是一個免費的 Python庫,旨在從文檔中自動提取語義主題,盡可能高效(計算機方面)和 painlessly(人性化)。

Gensim旨在處理原始的非結構化數字文本(純文本)。

在Gensim的算法,比如Word2Vec,FastText,潛在語義分析(LSI,LSA,see LsiModel),隱含狄利克雷分布(LDA,見LdaModel)等,自動訓練文檔的軀體內檢查統計共生模式發現的文件的語義結構。這些算法是無監督的,這意味着不需要人工輸入 - 您只需要一個純文本文檔。

一旦找到這些統計模式,任何純文本文檔(句子,短語,單詞......)都可以在新的語義表示中簡潔地表達,並查詢與其他文檔(單詞,短語......)的主題相似性。

install

pip install --upgrade gensim

Pre-trained word2vec

import random
import gensim
from gensim.models import Word2Vec, Doc2Vec
from gensim import utils

token_review = list()
dims = [100, 600]
for sieze in dims:
    #instantiate our  model
    model_w2v = Word2Vec(min_count=10, window=5, size=size, sample=1e-3, negative=5, workers=4, sg=0)

    #build vocab over all reviews
    model_w2v.build_vocab(token_review)

    #We pass through the data set multiple times, shuffling the training reviews each time to improve accuracy.
    Idx=list(range(len(token_review)))

    t0 = time()
    for epoch in range(5):
         print(epoch+1, "/5 epochs")
         random.shuffle(Idx)
         perm_sentences = [token_review[i] for i in Idx]
         model_w2v.train(perm_sentences,total_examples=len(Idx), epochs = 1)

    elapsed=time() - t0
    print("Time taken for Word2vec training: ", elapsed/60, " (mins).")

    # saves the word2vec model to be used later.
    #model_w2v.save('./model_word2vec_skipgram_300dim')

    # open a saved word2vec model
    #model_w2v=gensim.models.Word2Vec.load('./model_word2vec')

    model_w2v.wv.save_word2vec_format('./data/model_word2vec_v2_%ddim.txt'%size, binary=False)
    print("similar words of 'cancer'", model_w2v.wv.most_similar('cancer') )

Pre-trained doc2vec

code on github


免責聲明!

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



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