from gensim.models.word2vec import Word2Vec #pip install gensim安装即可
import jieba
import pandas as pd #导入所需的库
s=open(r'D:\语料.txt','r',encoding='utf-8') #分词
l=[]
for i in s.readlines():
i=' '.join(jieba.cut(i[:-1]))
l.append(i+'\n')
n_dim=300
w2vmodel=Word2Vec(vector_size=n_dim,min_count=10)
w2vmodel.build_vocab(l) #生成词表
w2vmodel.train(l,total_examples=w2vmodel.corpus_count,epochs=10) #在训练集数据上进行建模
def m_avgvec(words,w2vmodel): #各个词向量直接平均的方式生成整句所对应的词向量
return pd.DataFrame([w2vmodel.wv[w]
for w in words if w in w2vmodel.wv]).agg('mean')
train_vec=pd.DataFrame([m_avgvec(a,w2vmodel) for a in l]) #此处a没有实际意义,单纯为了循环
print(train_vec.head())
#显示词向量矩阵前五条,这里为最终得到的建模需用数据集的词向量矩阵
train_vec建模用词向量矩阵结果展示:
?
|