Word2vec的gensim的训练和读取

# -*- coding: utf-8 -*-
 
 
from gensim.models import word2vec
import logging
 
##训练word2vec模型
 
# 获取日志信息
logging.basicConfig(format='%(asctime)s:%(levelname)s:%(message)s', level=logging.INFO)
 
# 加载分词后的文本,使用的是Text8Corpus类
 
sentences = word2vec.Text8Corpus(r'F:\sougou_cutdata\corpus.txt')
 
# 训练模型,部分参数如下
model = word2vec.Word2Vec(sentences, size=100, hs=1, min_count=1, window=3)
 
# 模型的预测
print('-----------------分割线----------------------------')
 
# 计算两个词向量的相似度
try:
    sim1 = model.similarity(u'中央企业', u'事业单位')
    sim2 = model.similarity(u'教育网', u'新闻网')
except KeyError:
    sim1 = 0
    sim2 = 0
print(u'中央企业 和 事业单位 的相似度为 ', sim1)
print(u'人民教育网 和 新闻网 的相似度为 ', sim2)
 
print('-----------------分割线---------------------------')
# 与某个词(李达康)最相近的3个字的词
print(u'与国资委最相近的3个字的词')
req_count = 5
for key in model.similar_by_word(u'国资委', topn=100):
    if len(key[0]) == 3:
        req_count -= 1
        print(key[0], key[1])
        if req_count == 0:
            break
 
print('-----------------分割线---------------------------')
# 计算某个词(侯亮平)的相关列表
try:
    sim3 = model.most_similar(u'新华社', topn=20)
    print(u'和 新华社 与相关的词有:\n')
    for key in sim3:
        print(key[0], key[1])
except:
    print(' error')
 
print('-----------------分割线---------------------------')
# 找出不同类的词
sim4 = model.doesnt_match(u'新华社 人民教育出版社 人民邮电出版社 国务院'.split())
print(u'新华社 人民教育出版社 人民邮电出版社 国务院')
print(u'上述中不同类的名词', sim4)
 
print('-----------------分割线---------------------------')
# 保留模型,方便重用
model.save(u'搜狗新闻.model')
 
# 第一种加载方式
model2 = word2vec.Word2Vec.load('搜狗新闻.model')
# 第二种加载方式
model=gensim.models.KeyedVectors.load_word2vec_format('E:/word2vec/news_12g_baidubaike_20g_novel_90g_embedding_64.bin',binary=True)
# 以一种c语言可以解析的形式存储词向量
# model.save_word2vec_format(u"书评.model.bin", binary=True)
# 对应的加载方式
# model_3 =word2vec.Word2Vec.load_word2vec_format("text8.model.bin",binary=True)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值