word2vec api
看下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用来做筛选,去除总的词频小于该值的词语
2 中文语料的csv文件
采用的是csv格式的中文语料:
chnl, nid, doc分别是频道,新闻id,文本
3 实现
# -*- 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)
4 注意编码
训练用的编码格式要与使用model时的编码格式一致。
例如,如果文件是utf-8的文件,读取时没有转成unicode,则model使用时也要使用utf-8格式,例如model.wv[‘球队’]; 训练是用unicode,则使用model.wv[u’球队’]
更多内容请访问:IT源点
注意:本文归作者所有,未经作者允许,不得转载