15

NLP入门竞赛,搜狗新闻文本分类

 4 years ago
source link: http://mp.weixin.qq.com/s?__biz=MjM5ODkzMzMwMQ%3D%3D&%3Bmid=2650411814&%3Bidx=2&%3Bsn=225056e502b4987bd0659430597af747
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
搜狗新闻文本分类竞赛

使用keras框架通过构建CNN+BiGRU 网络实现在搜狗新闻文本数据集上91+ 的准 确率。

uAfMRnr.png!web

◆◆

数据集来源

◆◆

该数据集来自若干新闻站点2012年6月—7月期间国内,国际,体育,社会,娱乐等18个频道的新闻数据。

根据新闻正文内容分析新闻的类别数据集官网链接:

http://www.sogou.com/labs/resource/tce.php .

该数据集样例格式如下所示:

eyaeeem.png!web

在 FlyAI竞赛平台上 提供了超详细的参考代码,我们可以通过参加搜狗新闻文本分类预测练习赛进行进一步学习和优化。

◆◆

代码实现

◆◆

1.1、算法流程及实现

算法流程主要分为以下四个部分进行介绍:

1.数据加载

2.构建网络

3.模型训练

1.数据加载

JNVbmyN.jpg!web

NJzIneE.jpg!web

对每条新闻数据的读取和处理是在processor.py文件中完成。

具体实现如下:

me2Eram.jpg!web

BZRJzqU.jpg!web

6jaeIb3.jpg!web

2.构建网络

由于是搜狗新闻文本类数据,这里我们可以使用一维卷积Conv1D + BiGRU来构建网络,网络结构如下所示:

67ZNNvj.png!web

FryaE3U.png!web

vQfMjm2.png!web

运行summary()方法后输出的网络结构如下图:

Bvqamqn.jpg!web

3.模型训练

这里我们设置了epoch为5,batch为128,采用adam优化器来训练网络,EarlyStopping可以加速调参过程。然后通过调用FlyAI提供的train_log方法可以在训练过程中实时的看到训练集和验证集的准确率及损失变化曲线。

EVRBruj.jpg!web

1.2.最终结果

通过使用自定义CNN网络结构+双向GRU网络的方法,在epoch为10,batch为128的条件下使用adam优化器下不断优化模型参数,使用early_stopping规则在model训练达到early_stopping条件时提前终止训练提高model优化效率,最终模型在测试集的准确率达到91+。

ARFVNrF.png!web

END

更多详情可

扫描下方二维码 或添加AINLP微信号( id: AINLP2)

进群,和大神一起打比赛

备注“公众号名+flyai”

免费p40 GPU时长等你来领

7f2MZnr.jpg!web

点击“阅读原文”直达竞赛


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK