word2vec 词向量训练

# -*- coding: utf-8 -*-
"""
Created on Sat Oct  7 09:06:18 2017


@author: su
"""
import jieba
import re
import pandas as pd
fw = open("xiyoujiyuliao.txt","w",encoding="utf-8")
fr = open("西游记.txt","r",encoding="gbk")
# 创建停用词list  
def stopwordslist(filepath):  
    stopwords = [line.strip() for line in open(filepath, 'r', encoding='utf-8').readlines()]  
    return stopwords
def seg_sentence(sentence):  
    sentence_seged = jieba.cut(sentence.strip())  
    stopwords = stopwordslist('stopwords.txt')  # 这里加载停用词的路径  
    outstr = ''  
    for word in sentence_seged:  
        if word not in stopwords:  
            if word != '\t':  
                outstr += word  
                outstr += " "  
    return outstr  
    
  
lines =fr.readlines()  
for line in lines:
          pattern = re.compile(r'[\u4e00-\u9fa5]+') 
          filterdata = re.findall(pattern, line)
          filter = " ".join(filterdata)
          seg_list = jieba.cut(filter, cut_all=False)  
          line_seg = seg_sentence(line)  # 这里的返回值是字符串  
          fw.write(line_seg + '\n')  
   
fw.close()  
fr.close()  
from gensim.models import word2vec  
import logging  
   
   
# 主程序  
logging.basicConfig(format='%(asctime)s:%(levelname)s: %(message)s', level=logging.INFO)  
sentences =word2vec.Text8Corpus(u"xiyoujiyuliao.txt")  # 加载语料  
model =word2vec.Word2Vec(sentences, size=128)  #训练skip-gram模型,默认window=5  
   
print(model ) 
# 计算两个词的相似度/相关程度  
try:  
    y1 = model.similarity(u"孙悟空", u"")  
except KeyError:  
    y1 = 0  
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") 
          
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值