TextCNN文本分类与tensorflow实现

1.引言

    我们知道,卷积神经网络(CNN)主要是在计算机视觉方面已经取得了很多很好的成就,但是,CNN在自然语言处理方面同样也可以拥有很好的应用。本文将介绍一个有关CNN的模型,用来对文本进行分类,并将它应用在文本分类的热门任务——情感分析上,模型的名称叫TextCNN,模型的论文地址如下:

    下面将对该模型的原理进行具体介绍,并用tensorflow来实现它。 

2.TextCNN模型介绍

    假设对于每一个句子都进行padding,使得句子的长度都为n,对于太长的句子则进行截断,则每个句子可以表示为:

                                                                       \mathbf { x } _ { 1 : n } = \mathbf { x } _ { 1 } \oplus \mathbf { x } _ { 2 } \oplus \ldots \oplus \mathbf { x } _ { n }

其中,\mathbf { x } _ { i } \in \mathbb { R } ^ { k }表示句子中的第i个词汇,其词向量的维度为k\oplus表示将每个词向量进行拼接,\mathbf { x } _ { i : i + j }表示词汇串\mathbf { x } _ { i } , \mathbf { x } _ { i + 1 } , \dots , \mathbf { x } _ { i + j }的拼接,如图1中左侧所示,这样一来,每个句子都可以表示成一个n\times k的二维矩阵。

    接着,对于卷积操作,TextCNN的每一个卷积核的宽度都选择与词向量的维度一样大小,而高度则可以是变动的,如卷积核\mathbf { w } \in \mathbb { R } ^ { h k },其高度为h,宽度为k,该卷积核的每一次卷积操作将对h个词汇的词向量进行特征提取,记第i步提取后的特征值为c_i,则c_i的计算公式如下:

                                                                     

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值