gensim 的word2vec api参见:
https://radimrehurek.com/gensim/models/word2vec.html
本文说一下中文语料的使用,很简单。
看下api:
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, cbow_mean=1, hashfxn=<built-in function hash>, iter=5, null_word=0, trim_rule=None, sorted_vocab=1, batch_words=10000)
其中的sentences是句子列表,而每个句子又是词语的列表,即list[list]类型。 切记!!
size是embedding纬度,即每个词的向量纬度
window是窗口大小
min_count用来做筛选,去除总的词频小于该值的词语
其他参数见上面的链接
采用的是csv格式的中文语料:
chnl, nid, doc分别是频道,新闻id,文本
# -*- coding: utf-8 -*-
import pandas as pdfrom gensim.models
import Word2Vecfrom gensim.models.word2vec
import LineSentence df = pd.read_csv('体育.csv') sentences = df['doc'] line_sent = []
for s in sentences: line_sent.append(s.split()) #句子组成list
model = Word2Vec(line_sent, size=300, window=5 min_count=1, workers=2) model.save('./word2vec.model')
for i in model.vocab.keys(): #vocab是dict print type(i)
print i#model = Word2Vec.load('word2vec_model')
print model.wv['球员']
如果语料文件不是csv,而直接是训练的txt文件,可以使用LineSentence直接把文件读成正
确的格式
#model = Word2Vec(LineSentence('体育.txt'), size=300, window=5,min_count=1,
workers=2)
训练用的编码格式要与使用model时的编码格式一致。
例如,如果文件是utf-8的文件,读取时没有转成unicode,则model使用时也要使用utf-8格式,例如model.wv[‘球队’]; 训练是用unicode,则使用model.wv[u’球队’]
原文链接:https://blog.csdn.net/leiting_imecas/article/details/72639799
-加入人工智能学院系统学习-
点击“阅读原文”进入学习