size)
#把模型保存到lstm.h5文件中,并打印最终训练结果的损失和精度
('lstm.h5',overwrite=True)
print("\nLoss:%.2f,Accuracy:%.2f%%"%(loss,accuracy*100))
#定义函数调用train_lstm用来训练网络并保存训练结果
deftrain():
print("LoadingData...")
combined,y=loadfile()
print(len(combined),len(y))
print("Tokenising...")
combined=tokenizer(combined)
print("TrainingaWord2vecmodel...")
index_dict,word_vectors,combined=word2vec_train(combined)
print("SettingupArraysforKerasEmbeddingLayer...")
n_symbols,embedding_weights,x_train,y_train,x_test,y_test
=get_data(index_dict,word_vectors,combined,y)
print(x_train.shape,y_train.shape)
train_lstm(n_symbols,embedding_weights,x_train,y_train,x_test,
y_test)
#定义函数,对句子进行分词并调用词向量转换成向量格式
#这个函数用于训练完毕后的测试,在测试模块中调用此函数
#定义在训练模块是因为需要使用此模块中的创建词典函数
definput_transform(string):
words=(string)
}blwords=(words).reshape(1,-1)
model=('word2vec_model.pkl')
_,_,combined=create_dictionaries(model,words)
returncombined
#运行训练函数(train())
if __name__=='__main__':
train()
将训练模块以文件名lstm.py保存,在IPython控制台输入如下命令运行训练模块,并保存训练好的情绪识别网络。
In[1]:
因为不同计算机的环境不同,所以读者的输出结果也许会稍有不同。输出结果如下所示。
UsingTensorFlowbackend.
LoadingData...
Buildingprefixdictfromthedefaultdictionary...
2110521105
Tokenising...
Dumpingmodeltofilecache
