TextCNN:用于文本分类的CNN网络

文章介绍了TextCNN的网络结构,包括Embedding层、卷积层(Conv1d)、最大池化层(MaxPool1d)以及其在句子分类中的应用。同时提到,尽管TextCNN在中短文本上有良好表现,但在捕获长距离依赖时效率不高,而DPCNN则是为解决这一问题提出的模型。
摘要由CSDN通过智能技术生成

参考资料:文本分类之TextCNN与DPCNN

TextCNN 是在2014年的论文 《Convolutional Neural Networks for Sentence Classification》中提出来的。

以下是TextCNN的网络结构:

在这里插入图片描述

(1)TextCNN的第一层为 Embedding 层

Embedding 层的输入维度为 [n,k,2]:
其中n表示句子长度,k 为 word embedding (vector)的维度,2表示通道数。
即 embedding 采用的是 word2vec 的方式,代码中 k = 128
为了方便批处理,通常对长度不等的句子进行 padding 操作。

获得单词嵌入向量的方式目前可以分为:预训练和“新训练”。预训练的词嵌入可以利用其它语料库的单词分布得到更多的先验知识,而通过当前网络训练的词嵌入可以更好地捕获与当前任务相关的单词分布特征。

Embedding 层采用了双通道(static与non-static)的形式:

static 表示预训练的 word embedding ,在训练过程中不被改变;
non-static 表示“参与网络训练”的 word embedding ,其作为参数在训练过程中发生改变。

(2)TextCNN的第二层为卷积层 Conv1d

与CV领域不同的是,NLP中的卷积核只在一个方向上进行滑动,因此使用 Conv1d
一般情况下,Conv1d用于文本,Conv2d用于图像,Conv3d用于视频。

应用于CV中的卷积核,为了捕获长和宽两个维度的局部特征,卷积核通常在长宽两个方向上进行卷积操作。

而在句子中,一个单词是一个特征,也就是说,句子只具有长度一个维度。因此NLP中的卷积核的宽度与 word embedding 维度 k 相同,且卷积核只会在句子长度这一个方向上进行卷积操作。

Conv1d 层的输入维度为 [n,k,2],图中示例使用了 4 个大小为 m*k 的卷积核(实际为64个);
则输入的维度为 [n-m+1,1,4],即 4(n-m+1)*1 的向量。

(3)TextCNN的第三层为最大池化层 MaxPool1d

与卷积层类似,NLP中的池化层也只在一个方向上进行 Pooling 操作。

MaxPool1d 层的输入是 4(n-m+1)*1 的向量,的向量,输出 4 个标量。 
即 MaxPool1d 会将一个向量转为标量。

(4)TextCNN的第四层为 softmax 输出层

由于卷积核尺寸通常不会很大,因此TextCNN在捕获长距离的文本特征时效果不理想,其在中短文本场景中具有较好的效果。在2017年提出的 DPCNN 能够有效捕获长距离的文本特征。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ctrl A_ctrl C_ctrl V

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值