本文使用Keras框架搭建对于中文商品评论的情感分析模型。训练 2 个 epoch 后在测试集上的准确率为 90.42%。

preprocess.py 数据预处理
models.py 模型定义
train.py 训练模型
predict.py 模型推理
对于文本的预处理包括标识化处理、移除停用词和标点符号、移除英文和数字、序列对齐等。

运行过程:

python实现LSTM代码 python lstm包_LSTM

模型结构:

python实现LSTM代码 python lstm包_情感分析_02

文本情感分析:又被称为意见挖掘、倾向性分析、观点提取等,是指通过自然语言处理、文本挖掘方法等技术来识别和提取文本素材中所含的主观情绪信息。常见的应用包括给定一段文本,判断其所含有的是正面情绪还是负面情绪,本质上可以视作一个二分类问题。举例而言,商品评价“值得推荐!希望大家都读一下很有用的”是正向的,标签记为 1;商品评价“像素低的很,还有破损”是负向的,标签记为 0。
情感分析的应用非常广泛,比较知名的有依靠社交网站 Twitter 的上公开信息进行情感分析以预测股市的走势,准确率可以达到 87.6%,原文地址:Twitter mood predicts the stock market

数据来源

商品评论数据集已经在文件夹 datasets。来自于 https://github.com/SophonPlus/ChineseNlpCorpus/blob/master/datasets/online_shopping_10_cats/intro.ipynb。包含衣物、计算机、书籍、平板、水果等 10 个类别的 6 万余条评论数据,并且已标记好正向或负向。其中正向评论 31728 条,负向评论 31046 条,比例接近 1:1,较为均衡。该数据集同时也上传到了/datasets 目录下。

中文停用词数据集来自网络,已上传至/datasets 目录下。

测试

这里随便找了两个漱口水的商品评论。等有时间了再多找一些。

测试文本:

python实现LSTM代码 python lstm包_python实现LSTM代码_03

输出的结果:

python实现LSTM代码 python lstm包_Python_04

上面两个.txt 文件都在/datasets 目录下。

在英特尔 8 代低压 i5 四核处理器(i5-8259u)上的推理速度:

python实现LSTM代码 python lstm包_Python_05

环境配置

CUDA9.2
cuDNN
7.3.1
tensorflow-gpu1.13.1
Keras
2.2.4