word2vec

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"【不错】和【好】的相似度为:", y1
print "--------\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"不合群的词:", y4
print "--------\n"

# 保存模型,以便重用
model.save(u"书评.model")
# 对应的加载方式
# model_2 = word2vec.Word2Vec.load("text8.model")


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值