自然语言处理工具之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

posted @ 2020-09-02 10:37  林震宇  阅读(1787)  评论(0编辑  收藏  举报