CNN学习记录(二)

本文档介绍了CNN如何应用于文本分类,从原理到实战,阐述了CNN如何自动提取特征,以及在实践中面临的挑战和解决办法。通过网络结构设计和代码实现,帮助读者理解并掌握CNN在文本处理中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

CNN学习记录(二)

之前写过关于CNN的基础知识总结,在这里也就不再重复这些问题,需要查看基础的请点击

CNN用于文本分类原理

我们知道,CNN广泛的用在了图像领域,是图像领域的一个重大利器。但是现在,随着循环神经网络RNNs在长距离文本处理的缺点,人们开始使用CNN来提取特征,CNN提取的方式可以从下图来解释:
在这里插入图片描述

假设我们一句话是:

wait for the video and don't rent it.

那么我们CNN在提取特征的时候是一个怎样的过程呢?

可以按照上面的图来看,第一个红框,即对应着wait for这两个单词的向量,后面经过卷积层,将这两个单词的向量映射为经过卷积层之后一个方框,然后移动我们的窗口,然后要处理的单词变为for the,同样的,经过卷积层,能够提取出来一个向量,如此往复…

这个提取过程是不是很像我们之前学过的一个内容:就是n-gram特征,我们在进行语言模型的时候,在做n-gram的时候不就是这么操作的么?这里是n=2,当然,你也可以去提取三元语言特征等等。这就是神经网路强大的地方,不用我们自己去提取特征,而是自动提取特征。

然后将提取过来的特征进行max-pooling,最后再加上一个神经网络的全连接层一下子就ok了。

虽然理论上CNN可以提取任意长度的特征,但是考虑一些其他的因素,我们在处理的时候,只会将n取为较小的值。这样的效果更好。

也可以分析一下论文上面的图,基本和我上面的解释是一致的.

在这里插入图片描述

理解了CNN用于文本分类的原理,那么现在我们自己定义网络结果来实现文本分类。

CNN用于文本分类实战(Pytorch

刚开始写的时候,就算是参考着别人的代码都是各种不熟悉,各种报错。

在设计网络的时候,可以先想一下自己设计的网络结构是怎么样的,可以画个草图,然后通过这个模型,查看数据的流向,看模型需要哪些数据,然后再在初始化的时候初始具体的内容。

所幸的是,虽然过程很艰难,但是也可以说迈出了一步,写下去,孰能生巧。多思考网络,多思考接口。加油!

具体的代码内容可以参考我的github

Reference

Convolutional Neural Networks for Sentence Classification

ification](https://arxiv.org/abs/1408.5882)

https://github.com/bebound/textcnn/blob/master/textcnn.ipynb

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值