基于Gensim的work2vec程序实现

work2vec官方API地址

models.word2vec – Word2vec embeddings

models.word2vec

这个模块实现了word2vec算法。其中包括基于Hierarchical和Negative的CBOW和Skip-gram网络。

class 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, ns_exponent=0.75, cbow_mean=1, hashfxn=, iter=5, null_word=0, trim_rule=None, sorted_vocab=1, batch_words=10000, compute_loss=False, callbacks=(), max_final_vocab=None)

  • sentences, 训练文档,可以是list,大文件也可用Text8Corpus读入.多语料是,将每份语料分词后装入一个列表中,再把多份语料的列表作为元素放入新的列表中。
  • size, (int) 定义词向量维度
  • window,(int)定义当前词和预测词之间的最大距离,即预测词与它前面多少个词有关。
  • min_count,(int)词频限制,即当某词的词频小于该值时,该词忽略。
  • workers,(int)使用多少线程来训练模型
  • sg,{0,1},0=CBOW;1=Skip-gram
  • hs,{0,1}, 0=negative; 1=Hierarchical;default=0
  • cbow_mean,{0,1},0说明CBOW的输入层到映射层为加和;1说明输入层到映射层为求平均。
  • alpha,初始化学习率
  • min_alpha,在运行过程中,学习率会随之减少。该参数为学习率下线。
  • seed,词向量的随机初始化种子
  • max_vocab_size: 设置词向量构建期间的RAM限制。如果所有独立单词个数超过这个,则就消除掉其中最不频繁的一个。每一千万个单词需要大约1GB的RAM。设置成None则没有限制。
  • sample: 表示 采样的阈值,如果一个词在训练样本中出现的频率越大,那么就越会被采样。默认为1e-3,范围是(0,1e-5)
  • negative: 如果>0,则会采用negativesamp·ing,用于设置多少个noise words
  • iter:迭代次数,默认为5。
  • hashfxn: hash函数来初始化权重。默认使用python的hash函数
    batch_words:每一批的传递给线程的单词的数量,默认为10000

读取生成的词向量

model=models.word2vec.Word2Vec(line_sent,min_count=1, size=5, window=2,sg=0,hs=1)#此处参数可以自行设置
model['word_name']

猜你喜欢

转载自blog.csdn.net/weixin_43128028/article/details/82784102