【文本分类】Convolutional Neural Networks for Sentence Classification
·摘要:
本文作者将CNN引用到了NLP的文本分类任务中。
·参考文献:
[1] Convolutional Neural Networks for Sentence Classification 论文链接:http://cn.arxiv.org/pdf/1408.5882.pdf
[1] 模型
很基础的卷积神经网络模型。
算法流程:
1)word2vec词嵌入
将若干个文本中的所有词,进行无监督训练,得到词向量(word vectors)。对于每个文本,可以采用词向量加和、平均的方式表示。
2)convolutional卷积
卷积特征向量。
3)pooling池化
使用最大池化,抽取最重要的特征。
4)全连接
dropout规则化防止过拟合+ 全连接的softmax层多分类
[2] 模型参数
这里,模型根据词向量的不同分为四种:
· CNN-rand,所有的词向量都随机初始化,并且作为模型参数进行训练。
· CNN-static,即用word2vec预训练好的向量(Google News),在训练过程中不更新词向量,句中若有单词不在预训练好的词典中,则用随机数来代替。
· CNN-non-static,根据不同的分类任务,进行相应的词向量预训练。
· CNN-multichannel,两套词向量构造出的句子矩阵作为两个通道,在误差反向传播时,只更新一组词向量,保持另外一组不变。
[3] 实验结果
在七组公开数据集中进行,证明了:
· CNN在NLP文本分类中的有效性
· 通过调参,也表明了word2vec的NLP中重要意义。
[4] 拓展
1、入门了CNN,对torch、torchtext的使用有所掌握;
2、详细了解了在基于深度学习的文本分类任务中embedding层的作用,请阅读文章:【文本分类】深入理解embedding层的模型、结构与文本表示
相关文章
- Go语言HTTP Server源码分析
- 详解Go可用性(六) 熔断
- Go语言HTTP Server源码分析
- 2017年4月编程语言排行榜:Hack首次进入前五十
- 盘点常用语言HTTP请求客户端的惊艳框架
- 50 万行 Go 代码,美国一组织从 Python 2 迁移到 Go
- 从代码层读懂Java HashMap的实现原理
- 谷歌的最新NLP模型,现在能陪你从诗词歌赋谈到人生哲学
- 不要再天天写表单了,淘宝大牛教你零基础写PHP扩展
- Java Web模板代码生成器的设计与实现
- 我们一起学习RSA-PSS 算法
- 关于Git的几个使用技巧
- SpaceX 使用 Rust 为部分新项目构建原型
- signalR+redis分布式聊天服务器搭建
- Git如何处理大仓库
- 想要写出好味道的代码,你需要养成这些好习惯!
- 用C语言写面向的对象是一种什么样的体验
- 历时大半年,Github团队成功减少30kb依赖体积
- 聊聊Clean Code的编码、重构技巧
- 调查:企业越来越依赖开源软件