word2vec简介及词向量构建

w o r d 2 v e c 简 介 及 词 向 量 构 建 word2vec简介及词向量构建 word2vec

#导入包
import pandas as pd
import numpy as np
from gensim.models import Word2Vec
#读取数据集
train = pd.read_csv('./cnews/train.tsv',sep='\t',header=None,names=['label','content'])
val = pd.read_csv('./cnews/dev.tsv',sep='\t',header=None,names=['label','content'])
test = pd.read_csv('./cnews/test.tsv',sep='\t',header=None,names=['label','content'])
train.head()

在这里插入图片描述

jieba pkuseg
import jieba
def content_cut(x):
    x = jieba.lcut(x)
    x = " ".join(x)
    return x
train['content'] = train['content'].map(lambda x: content_cut(x))
val['content'] = val['content'].map(lambda x: content_cut(x))
test['content'] = test['content'].map(lambda x: content_cut(x))
df = pd.concat([train,val,test],axis=0)
df.head()

在这里插入图片描述

训练word2vec

sentences = [document.split(' ') for document in df['content'].values]
model = Word2Vec(sentences=sentences,
     size=200,#维度
     alpha=0.025, #默认
     window=5, #默认
     min_count=2,#2,3
     sample=0.001,#
     seed=2018, #
     workers=11, #线程
     min_alpha=0.0001, 
     sg=0, #cbow
     hs=0, #负采样
     negative=5,#负采样个数
     ns_exponent=0.75, 
     cbow_mean=1,#求和再取平均
     iter=10, #10到20
     compute_loss =True
     )
## 保存word2vec
model.save("./word2vec/word2vec_word_200")
model = Word2Vec.load("./word2vec/word2vec_word_200")
model.vo
#查看单词的向量
model.wv['816903'].shape

在这里插入图片描述

help(model.most_similar)
#和这个单词最相似的单词
model.most_similar("",topn=20)

在这里插入图片描述

#计算两个单词之间相似性
model.wv.similarity("816903","1226448")

在这里插入图片描述

#看词表
model.wv.vocab.keys()
#迭代模型
sentences_next=[]
for document in test['word_seg'].tolist():
    sentences_next.append(document.split(" "))
model.train(sentences=sentences_next, total_examples=model.corpus_count,  epochs=model.iter) 
model.save()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值