????????通過,上一周對lstm的初步了解,可以開始處理本次實訓(xùn)的數(shù)據(jù),因為都是中文文本的信息,采用word2vec來對中文信息進(jìn)行向量化。
????????如果要一句話概括詞向量的用處,就是提供了一種數(shù)學(xué)化的方法,把自然語言這種符號信息轉(zhuǎn)化為向量形式的數(shù)字信息。這樣就把自然語言理解的問題要轉(zhuǎn)化為機器學(xué)習(xí)的問題。與One-Hot編碼不同,更能反映詞組的差異性。
? ? ? ? 首先,評論信息需要分詞,參考知乎專欄對各種分詞器的測評:Python 中的那些中文分詞器,選擇了結(jié)巴分詞。
for key, valuein dataSet.items():
????seg_list = jieba.cut(dataSet[key],cut_all=True)
????token =' '.join(seg_list).split(' ')
????dataSet[key] = token
? ? ? ? 隨后,對分的詞進(jìn)行詞向量化,將所有分詞作為訓(xùn)練集來進(jìn)行訓(xùn)練即可, 得倒一個模型:

? ? 訓(xùn)練好之后,就可以對每個評論進(jìn)行詞向量化:

????????最后,標(biāo)簽信息的處理,在上周的學(xué)習(xí)中,我們可以看到最終標(biāo)簽的格式為[0,0,0,0,0,0,0,0,0,1]一維數(shù)組的形式,因此我們也需要將好中差的標(biāo)簽信息轉(zhuǎn)化為一維數(shù)組的形式:
? ? ? ? 先分析的原始提取的數(shù)據(jù):

# -*- 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=='中\(zhòng)n':
line='1\n'
? ? elif line=='差\n':
line='2\n'
? ? f_new.write(line)
fp.close()
f_new.close()
? ? ? ? 最終處理成如下形式:

? ? ? ? 至此,數(shù)據(jù)的初步處理結(jié)果,下周可以開始構(gòu)建lstm模型。