小小word2vec模型训练

嗨,好久不见啊!今天我们来完成一个word2vec模型训练,学习笔记有挺多人写的,不瞒您说,小白也是看别人的博客学习的。所以这次,小白就直接上手实例啦,一起嘛?
首先介绍一下模型参数
在这里插入图片描述

然后去网上找一个喜欢的文学作品,把它的txt下载下来。啊啊,其实你可以找几个拼在一起。我先是下载了一个《小王子》后来发现太小了就又下载了《时生》(顺便安利一下东野圭吾的《时生》),以utf-8编码的形式保存成xwz_ss.txt。
然后就开始导入包导入库

from gensim.models import Word2Vec
from gensim.models.word2vec import LineSentence 
#通过jieba分词
import jieba
import pandas as pd

把文本文件读进来,再分词,去停用词

xwzss = open("D://xwz_ss.txt", encoding='utf-8').read().replace('\n','').replace(' ','')
#读入停用词
stopws = open('D://stopwords.txt',encoding='gb18030').read()
xs_cut = [word for word in jieba.lcut(xwzss) if word not in list(stopws)]

我还看了一下分词后的词数量,心里一个数

len(xs_cut)
#53889

然后将他们写入一个新的文件

#写入txt文件,分词后的文件
file = open('D://new_xs_cut.txt','a',encoding='utf-8')
for i in range(len(xs_cut)):
    s = str(xs_cut[i]).replace('[','').replace(']','')#去除[],这两行按数据不同,可以选择
    s = s.replace("'",'').replace(',','') +'\n'   #去除单引号,逗号,每行末尾追加换行符
    file.write(s)
file.close()
#把分词好的文件合成一个句子
sc = open('D://new_xs_cut.txt',encoding='utf-8').read().replace('\n',' ')
sc_=sc.split()
print(sc_)

结果看一下,
在这里插入图片描述

第一个一个什么‘/ufeff’东东,好像是我分词的时候第一个是空行,也可以删去,其实没什么大问题,它就一个不影响。大行不顾细谨嘛,何必如此苛责,我就放任它在里面了。
接下来就是训练模型了

import gensim
from gensim.models import word2vec

#训练模型
model = gensim.models.Word2Vec(sc_, size=100, iter=8, min_count=3)

前面有参数介绍,这里再多说一句min_count,是至少出现你设置的次数它才会把词留在语料库里。
在这里插入图片描述在这里插入图片描述
然后就可以测试一下近义词了
在这里插入图片描述
你以为我这里顺顺利利就过来了?天真!太天真了!我前面运行的时候出现了超级多报错,到现在,有解决的也有没解决的。有个报错是word ’ XXX ’ not in the vocabulary,我百度搜狗了一下,有人说是因为语料库太小的缘故,好叭我承认我语料库小。在找近义词的时候也经常出现这个问题,所以我说,如果大噶只是想试试模型过程就先跟我一样将就试试,如果是想训练出来自己的模型保存将来好直接用的话,一定要找个超级无敌巨无霸大的!

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值