**在做分词前需要做的准备:
**
(1):已经预处理过的需要分词的语料(需要分词的语料要符合结巴分词的要求,每句一行,并且以句号做结尾)
(2):需要一份相关方面的词典用于更加专业化的分词,单纯的使用结巴分词不能很好的分出你需要的词,会影响到你以后词向量化阶段。
(3):需要一份停用词表,因为结巴分词不能很好的把一些没有实际意义的词去掉,这样此会影响到后面词向量化阶段。停用词表的作用就是去掉一些没有意义的词语,单字,或者特殊符号。主要你需要去掉的东西,你把它写在停用词表中就可以。停用词表可以在网上下载,停用词表一般分为很多种,有专门的中文停用词表。在做分词的时候看需要下载,一般下载一个比较全的停用词表就行(停用词表一般包括特殊符号和中文一些无意义词)。此处需要注意,在保存停用词表的时候注意保存为编码格式utf-8的格式储存为txt格式.
开始分词:
代码如下
import codecs
import jieba
infile='date_open_yuliao.txt'##你需要分词的语料的文件名
outfile='data_open_yuliaochuli2.txt'##分词完成后保存的文件名
jieba.load_userdict("data_open_dict.txt")##用结巴加载你准备好的专用分词的词典
descsFile=codecs.open(infile,'r',encoding='utf-8')##utf-8的格式打开需要分词的语料
i=0
##进行分词处理
with open(outfile,'w',encoding='utf-8')as f:
for line in descsFile:
line=line.strip()
words=jieba.cut(line)
stopwords = [line.strip() for line in open('stopWord.txt',encoding='utf-8').readlines()]##加载停用词表
for world in words:
if world not in stopwords:
f.write(world+' ')
f.write('\n')
当执行完该程序后你就会得到一份分词好的语料(该语料文件名就是上方代码中你设定的文件名),分词成为如下:
开始词向量化:
代码如下
import multiprocessing
from gensim.models import Word2Vec
from gensim.models.word2vec import LineSentence
inp='data_open_yuliaochuli2.txt'##你已经处理好的语料
outp1='data_model'##world2的模型
outp2='data_vector'##词向量话后的数据
model=Word2Vec(LineSentence(inp),iter=10,sg=0,size=50,window=3,min_count=1,workers=multiprocessing.cpu_count())
model.save(outp1)
model.wv.save_word2vec_format(outp2,binary=False)
在使用world2vec模型时,要注意里面的参数,根据你所需要的进行调整,也就是调参的过程:具体参考world2vec模型参数
模型的使用:
``
from gensim.models import Word2Vec
model=Word2Vec.load('./data_model')##模型的读取
print(model.similarity("英国","贵州"))
print(model.most_similar('信息'))
这里最常用的两种方法,model.similarity,输入两个需要比较参数,会返回一个数值,该数值代表了两个参数的相关性大小。
model.most_similar函数,输入一个参数,默认会返回距离该参数最近的10个数据。
具体需要用模型进行其他常用相关操作的如下,如需了解自行查询熟悉各个方法的使用
来源:CSDN
作者:wangxiao1024
链接:https://blog.csdn.net/wangxiao1024/article/details/103234149