向AI转型的程序员都关注公众号 机器学习AI算法工程
我从THUCNews中抽取了20万条新闻标题,已上传至github,文本长度在20到30之间。一共10个类别,每类2万条。
类别:财经、房产、股票、教育、科技、社会、时政、体育、游戏、娱乐。
数据集划分:
数据集 | 数据量 |
---|---|
训练集 | 18万 |
验证集 | 1万 |
测试集 | 1万 |
python run.py --model TextCNN --word True
数据集、词表及对应的预训练词向量,已经打包好,详见THUCNews文件夹。
效果
完整项目和数据集代码获取地址:
关注微信公众号 datayx 然后回复 NLP实战 即可获取。
Python环境及安装相应依赖包
分析:
LSTM能更好的捕捉长距离语义关系,但是由于其递归结构,不能并行计算,速度慢。
原理图如下:
终端运行下面命令,进行训练和测试:
python run.py --model TextRNN
训练过程如下:
训练及测试结果如下:使用CPU版本pytorch,耗时18分54秒,准确率90.90%
分析:
其中4~6步是attention机制计算过程,其实就是对lstm每刻的隐层进行加权平均。比如句长为4,首先算出4个时刻的归一化分值:[0.1, 0.3, 0.4, 0.2],然后
原理图如下:
终端运行下面命令,进行训练和测试:
python run.py --model TextRNN_Att
训练过程如下:
训练及测试结果如下:
使用CPU版本pytorch,耗时10分48秒,准确率89.89%