0
点赞
收藏
分享

微信扫一扫

【论文泛读】8. 文本分类:Convolutional Neural Networks for Sentence Classification


更新进度:■■■■■■■□□□□□□□□□□□□□□□□|30%
理论上一周更一个经典论文
刚刚开始学习,写的不好,有错误麻烦大家留言给我啦

目录

  • 理论知识
  • 文本表示:
  • 文本分类方法:
  • 基于规则的文本分类
  • 基于特征的文本分类方法
  • 基于卷积神经网络的文本分类
  • 学习目标:
  • 模型构成:
  • 感受野
  • 代码复现
  • 数据集
  • 词向量模型
  • 程序结构
  • 代码可学习技巧

题目

期刊名/文献类型

年份

解决问题

解决对策

创新点

论文不足

下一步工作

技术难点

理论知识

文本表示:

【论文泛读】8. 文本分类:Convolutional Neural Networks for Sentence Classification_深度学习


词袋子:one_hot 不考虑文本的序列信息,就像将信息放进了一个袋子里。有多少词就需要有多少维度,数据处理的压力会比较大

词嵌入:Word2Vec(2013年Efficient Estimation of Word Representations in Vector Space) 更多的考虑了语义关联,很大程度缩小了存储空间。

文本分类方法:

基于规则的文本分类

【论文泛读】8. 文本分类:Convolutional Neural Networks for Sentence Classification_神经网络_02


一句话出现很好很快,就认为这句话的表述是好的

基于特征的文本分类方法

【论文泛读】8. 文本分类:Convolutional Neural Networks for Sentence Classification_自然语言处理_03

基于卷积神经网络的文本分类

【论文泛读】8. 文本分类:Convolutional Neural Networks for Sentence Classification_人工智能_04

学习目标:

【论文泛读】8. 文本分类:Convolutional Neural Networks for Sentence Classification_机器学习_05

模型构成:

【论文泛读】8. 文本分类:Convolutional Neural Networks for Sentence Classification_人工智能_06


【论文泛读】8. 文本分类:Convolutional Neural Networks for Sentence Classification_人工智能_07


为什么将感受野设置成(3,4,5)?

感受野

写的很好的解释 输出的feature map中的一块是由原始图像(不是上一层图像)的a*a来的,他的感受野就是a

卷积器的数量为什么是100?

超参数设置:

【论文泛读】8. 文本分类:Convolutional Neural Networks for Sentence Classification_人工智能_08

使用一维卷积

【论文泛读】8. 文本分类:Convolutional Neural Networks for Sentence Classification_神经网络_09

代码复现

数据集

【论文泛读】8. 文本分类:Convolutional Neural Networks for Sentence Classification_神经网络_10


原论文中使用了七个数据集,本代码使用了两个数据集

MR和TREC

数据集github

词向量模型

很多公司都提供了预训练好的词向量模型
本程序使用的是谷歌公司的"googlenews-vectors-negative300.bin"

程序结构

【论文泛读】8. 文本分类:Convolutional Neural Networks for Sentence Classification_自然语言处理_11

torch.nn.Conv1d(in_channels, out_channels, kernel_size, stride=1, padding=0, dilation=1, groups=1, bias=True)

  • in_channels(int) – 输入信号的通道。在文本分类中,即为词向量的维度
  • out_channels(int) – 卷积产生的通道。有多少个out_channels,就需要多少个1维卷积
  • kernel_size(int or tuple) - 卷积核的尺寸,卷积核的大小为(k,),第二个维度是由in_channels来决定的,所以实际上卷积大小为kernel_size*in_channels
  • stride(int or tuple, optional) - 卷积步长
  • padding (int or tuple, optional)- 输入的每一条边补充0的层数
  • dilation(int or tuple, `optional``) – 卷积核元素之间的间距
  • groups(int, optional) – 从输入通道到输出通道的阻塞连接数
  • bias(bool, optional) - 如果bias=True,添加偏置

代码可学习技巧

  1. 从字典中读取变量,变量定义更直观

params =
{
“MODEL”: options.model,
“DATASET”: options.dataset,
“SAVE_MODEL”: options.save_model
}

params[“MODEL”]

  1. Gensim的model.keyedvectors模块,KeyedVectors.load_word2vec_format() 加载原始二进制格式的模型

参考文章:
写的很好的博客PyTorch中的nn.Conv1d、nn.Conv2d以及文本卷积
Keras之文本分类实现一维卷积(1D-CNN)、二维卷积(2D-CNN)、三维卷积(3D-CNN)
Convolutional Neural Networks for Sentence Classification阅读笔记及复现
论文《Convolutional Neural Networks for Sentence Classification》总结
Convolutional Neural Networks for Sentence Classification论文解读


举报

相关推荐

0 条评论