word2vec

来源:互联网 发布:我是大主宰服务端源码 编辑:程序博客网 时间:2024/06/07 13:55

gensim.models.Word2Vec() 有一系列的参数,常用的如下

  • size 定义词向量的维度,默认是100
  • alpha 初始的学习率,随着训练的进行,逐渐减少至0
  • window 扫描句子的窗口大小,默认值为5
  • min_count 过滤掉一些低频词,如果一个词在整个语料库里出现的次数小于min_count,在训练的时候就不考虑这个词。
  • max_vocab_size 限制一下词汇表的数量,避免太多词占用太多内存,默认为None
  • workers 训练模型的线程
  • sg 训练采用的算法,sg=0 采用CBOW,sg=1采用skip-gram
  • hs 为1的时候采用hierarchical softmax,如果为0且negative也非0,则采用negative sampling方案
  • negative negative sampling的词数,通常是5-20
  • cbow_mean 0或1。如果为0,则隐层为输入层的SUM,为1隐层为输入层向量的均值。
  • iter 迭代遍历语料库的次数,默认值为5
训练代码:
sentences = sentences_generator('corpus_words.dat')model = gensim.models.Word2Vec(sentences, size=200, workers=4)

# 计算两个词的相似度/相关程度y1 = model.similarity(u"不错", u"好")print u"【不错】和【好】的相似度为:", y1print "--------\n"# 计算某个词的相关词列表y2 = model.most_similar(u"书", topn=20)  # 20个最相关的print u"和【书】最相关的词有:\n"for item in y2:    print item[0], item[1]print "--------\n"# 寻找对应关系print u"书-不错,质量-"y3 = model.most_similar([u'质量', u'不错'], [u'书'], topn=3)for item in y3:    print item[0], item[1]print "--------\n"# 寻找不合群的词y4 = model.doesnt_match(u"书 书籍 教材 很".split())print u"不合群的词:", y4print "--------\n"# 保存模型,以便重用model.save(u"书评.model")# 对应的加载方式# model_2 = word2vec.Word2Vec.load("text8.model")


原创粉丝点击