Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

nlp中基于TextCNN,TextRNN,FastText,TextRCNN,BiLSTM_Attention, DPCNN, Transformer等的分类任务

Notifications You must be signed in to change notification settings

SmileLLJuan/NLP_Classification

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

33 Commits

Repository files navigation

NLP_Classification

nlp中基于TextCNN,TextRNN,FastText,TextRCNN,BiLSTM_Attention, DPCNN, Transformer等的分类任务 模型介绍:

1. TextCNN

1.1 模型结构

Image text
模型主要包括五层,第一层是embedding layer,第二层是convolutional layer,第三层是max-pooling layer,第四层是fully connected layer,最后一层是softmax layer.
其中卷积层的目的是为了特区特征,采用不同的卷积核可以提取不同的文本特征,本文采用的卷积核大小为[2,3,4]

卷积

卷积过程:卷积输入为[batch_size,sequence_length,embedding_dim]维度的向量矩阵,假设使用一个维度[embedding_dim,h]的卷积核W,卷积核W与Xi:i+h-1(从第i个词到第i+h-1个词)进行卷积操作在使用激活函数激活得到相应的特征ci,
则卷积操作的公式如下: 因此经过卷积操作之后,可以得到一个n-h+1维的向量c;

池化

池化的作用可以显著减少参数量,压缩数据和参数的数量,减小过拟合,同时提高模型的容错性。

1.2 参考文献

有几篇文章都是textcnn,模型结构类似。其中《Convolutional Neural Networks for Sentence Classification》给出了基本结构,《A Sensitivity Analysis ...》专门做了各种控制变量的实验对比。
[1]Convolutional Neural Networks for Sentence Classification
[2]A Sensitivity Analysis of (and Practitioners’ Guide to) Convolutional Neural Networks for Sentence Classification

2. TextRNN

2.1 模型结构

Image text
一般取前向/反向LSTM在最后一个时间步长上隐藏状态,然后进行拼接,在经过一个softmax层(输出层使用softmax激活函数)进行一个多分类;或者取前向/反向LSTM在每一个时间步长上的隐藏状态,对每一个时间步长上的两个隐藏状态进行拼接,然后对所有时间步长上拼接后的隐藏状态取均值,再经过一个softmax层(输出层使用softmax激活函数)进行一个多分类(2分类的话使用sigmoid激活函数)。
RNN会出现梯度消失和梯度爆炸的情况,因此难以学习到序列的长距离相关性,因此LSTM专门被提出用来解决长期依赖问题。LSTM的单元计算如下:







2.2 参考文献

[1]Recurrent Neural Network for Text Classification with Multi-Task Learning

3.TextRCNN

3.1 模型结构

Image text
RCNN:一般的 CNN 网络,都是卷积层 + 池化层。这里是将卷积层换成了双向 RNN,所以结果是,两向 RNN + 池化层。 【大致思路】 (1)文本中的词语经过双向RNN得到每个词语的前向和后向上下文表示c_l,c_r;


(2)词的表示x_i变成词向量和前向后向上下文向量连接起来的形式


(3)x向量序列再接跟TextCNN相同卷积层,pooling层即可,唯一不同的是卷积层 filter_size = 1就可以了,不再需要更大 filter_size 获得更大视野

3.2 参考文献

[1]Recurrent Convolutional Neural Networks for Text Classification

#4.TextRNN+Attention Image text
注意力(Attention)机制是自然语言处理领域一个常用的建模长时间记忆机制,能够很直观的给出每个词对结果的贡献,基本成了Seq2Seq模型的标配了。实际上文本分类从某种意义上也可以理解为一种特殊的Seq2Seq,所以考虑把Attention机制引入近来。

未完待续。。。

About

nlp中基于TextCNN,TextRNN,FastText,TextRCNN,BiLSTM_Attention, DPCNN, Transformer等的分类任务

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

AltStyle によって変換されたページ (->オリジナル) /