用word2vector做词相似性聚类

最近需要做个热点预测的东西,听说word2vector很强大。于是就试试word2vector。

任务就是分析明星的离婚,结婚模型。
比如王宝强离婚,张靓颖结婚。

首先要获取数据:
这里小伙伴给了相关新闻的url:

这里写图片描述

这里有点让我淡疼,需要自己去爬取。
怎么爬的,爬虫不是本文相关的,有机会后面会详解。

获取数据为:
这里写图片描述

然后对其进行分词处理:

这里写图片描述

所有数据为一行哈。。。

然后进行训练判断。。。

【王宝强】和【马蓉】的相似度为: 0.996821340958
--------

与王宝强相似的词有:

张靓颖 0.996938765049
马蓉 0.996821403503
冯轲 0.996532142162
万元 0.99597120285
年 0.995867490768
人 0.995223104954
月 0.995128154755
感情 0.995105862617
说 0.995052337646
很 0.994920134544
--------

感觉后面效果不是很好,语料集还不够大吧,还需要更多的内容。

代码如下:

#coding:utf-8
'''
Created on 2016-11-18
'''
from gensim.models import word2vec
import logging
from gensim import corpora, models, similarities
# 主程序
logging.basicConfig(format='%(asctime)s : %(levelname)s : %(message)s', level=logging.INFO)
sentences = word2vec.Text8Corpus(r"D:\data\files\r3.txt")  # 加载语料
model = word2vec.Word2Vec(sentences, size=200)  # 训练skip-gram模型; 默认window=5
#model = word2vec.Word2Vec.load_word2vec_format("computer.model.bin", binary=True)

# 计算两个词的相似度/相关程度
y1 = model.similarity(u"王宝强", u"马蓉")
print u"【王宝强】和【马蓉】的相似度为:", y1
print "--------\n"

# 计算某个词的相关词列表
y2 = model.most_similar(u"王宝强", topn=10)  # 20个最相关的
print u"与王宝强相似的词有:\n"
for item in y2:
    print item[0], item[1]
print "--------\n"



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

# 以一种C语言可以解析的形式存储词向量
#model.save_word2vec_format(u"computer.model.bin", binary=True)
# 对应的加载方式
#model_3 = word2vec.Word2Vec.load_word2vec_format("text8.model.bin", binary=True)
  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值