通过,上一周对lstm的初步了解,可以开始处理本次实训的数据,因为都是中文文本的信息,采用word2vec来对中文信息进行向量化。
如果要一句话概括词向量的用处,就是提供了一种数学化的方法,把自然语言这种符号信息转化为向量形式的数字信息。这样就把自然语言理解的问题要转化为机器学习的问题。与One-Hot编码不同,更能反映词组的差异性。
首先,评论信息需要分词,参考知乎专栏对各种分词器的测评:Python 中的那些中文分词器,选择了结巴分词。
for key, valuein dataSet.items():
seg_list = jieba.cut(dataSet[key],cut_all=True)
token =' '.join(seg_list).split(' ')
dataSet[key] = token
随后,对分的词进行词向量化,将所有分词作为训练集来进行训练即可, 得倒一个模型:
训练好之后,就可以对每个评论进行词向量化:
最后,标签信息的处理,在上周的学习中,我们可以看到最终标签的格式为[0,0,0,0,0,0,0,0,0,1]一维数组的形式,因此我们也需要将好中差的标签信息转化为一维数组的形式:
先分析的原始提取的数据:
# -*- coding: utf-8 -*-
import tensorflowas tf
tf.set_random_seed(1)# set random seed
'''
#insert Data
data = open('vectors.txt')
line = data.readline()
i = 0
while line:
print(line)
i = i + 1
if i > 5:
break
'''
fp =open('tags.txt','r')
f_new =open('tag.txt','w')
line= fp.readline()
for linein fp:
if line=='好\n':
line='0\n'
elif line=='中\n':
line='1\n'
elif line=='差\n':
line='2\n'
f_new.write(line)
fp.close()
f_new.close()
最终处理成如下形式:
至此,数据的初步处理结果,下周可以开始构建lstm模型。