本文使用Keras框架搭建对于中文商品评论的情感分析模型。训练 2 个 epoch 后在测试集上的准确率为 90.42%。
preprocess.py 数据预处理
models.py 模型定义
train.py 训练模型
predict.py 模型推理
对于文本的预处理包括标识化处理、移除停用词和标点符号、移除英文和数字、序列对齐等。
运行过程:
模型结构:
文本情感分析:又被称为意见挖掘、倾向性分析、观点提取等,是指通过自然语言处理、文本挖掘方法等技术来识别和提取文本素材中所含的主观情绪信息。常见的应用包括给定一段文本,判断其所含有的是正面情绪还是负面情绪,本质上可以视作一个二分类问题。举例而言,商品评价“值得推荐!希望大家都读一下很有用的”是正向的,标签记为 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 目录下。
测试
这里随便找了两个漱口水的商品评论。等有时间了再多找一些。
测试文本:
输出的结果:
上面两个.txt 文件都在/datasets 目录下。
在英特尔 8 代低压 i5 四核处理器(i5-8259u)上的推理速度:
环境配置
CUDA9.2
cuDNN7.3.1
tensorflow-gpu1.13.1
Keras2.2.4