前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >NLP: Text Neural Network (Part1: textRNN, textCNN)

NLP: Text Neural Network (Part1: textRNN, textCNN)

作者头像
JiahuiZhu1998
修改2023-06-19 14:37:36
5260
修改2023-06-19 14:37:36
举报

TextRNN 定义

RNN (Recurrent Neural Network) focused on Text 专门解决文本分类问题的RNN网络

TextRNN 应用场景

  1. 垃圾邮件分类
  2. 文本情感分析 (判断文本或者句子是积极,消极还是中立)
  3. 新闻主题分类 (判断新闻属于哪一个类别,属于财经,体育,娱乐,时事等类别)
  4. 自动问答系统问句分类
  5. 社区问答系统 (对文本进行多Label分类,可以参照知乎看山杯)
  6. AI法官 (依据文本分析通过罚金Label和法条Label进行分类)
  7. 判断文本是否是机器人所写

TextRNN 原理

  1. 将 文本切割成固定长度的句子,如果长度不够,则 padding补齐
  2. 然后输入句子,通过 word embedding 获得词向量
  3. 在RNN 的 每一个time节点(时间步长)输入一个新的词向量,RNN一直不停循环直到所有词向量input进去
  4. 由于 文本的长度为 n, 代表有n个词向量,因此TextRNN也要经历n个时间步长

TextRNN 算法结构

Bi-LSTM

embedding--->BiLSTM--->concat final output/average all output----->softmax layer

使用前向/反向LSTM,取最后一个时间步长进行拼接或者取同一时间步长上的两个隐藏状态并取avg, 可以添加Normalization防止过拟合
使用前向/反向LSTM,取最后一个时间步长进行拼接或者取同一时间步长上的两个隐藏状态并取avg, 可以添加Normalization防止过拟合

Bi-LSTM + Uni-LSTM

embedding-->BiLSTM---->(dropout)-->concat ouput--->UniLSTM--->(droput)-->softmax layer

这一种和第一种的不同之处在于,在双向LSTM基础上添加了一层单向LSTM, 将同一步长的两个隐藏状态拼接并输入到单向LSTM中
这一种和第一种的不同之处在于,在双向LSTM基础上添加了一层单向LSTM, 将同一步长的两个隐藏状态拼接并输入到单向LSTM中

TextRNN 也可以把LSTM换成GRU单元,添加DropOut 或者 BatchNormalization 等

TextRNN 比上 TextCNN 训练速度慢上一些

TextCNN 定义

1-D single-channel 卷积计算

0 × 1 + 1 × 2 = 2
0 × 1 + 1 × 2 = 2

1-D multi-channel 卷积计算

0 × 1 + 1 × 2 + 1 × 3 + 2 × 4 + 2 × (-1) + 3 × (-3) = 2
0 × 1 + 1 × 2 + 1 × 3 + 2 × 4 + 2 × (-1) + 3 × (-3) = 2

2-D 卷积计算

2 × (-1) + 3 × (-3) + 1 × 3 + 2 × 4 + 0 × 1 + 1 × 2 = 2
2 × (-1) + 3 × (-3) + 1 × 3 + 2 × 4 + 0 × 1 + 1 × 2 = 2

Max-Over-Time Pooling 时序池化最大层

其实就是max pooling, 只是在不同的channel中,输入时的时间步数(time)各不相同

TextCNN 原理

TextCNN = CNN + max-over-time pooling

  1. 定义 1D-CNN-kernel, 计算words之间的correlation
  2. 将所有channel经过 max-over-time-pooling 进行处理,并把output处理成vector
  3. 通过全连接将 vector分类

TextCNN 算法结构

下图⽤⼀个例⼦解释了textCNN的设计。这⾥的输⼊是⼀个有11个词的句⼦,每个词⽤6维词向量表⽰。因此输⼊序列的宽为11,输⼊通道数为6。给定2个⼀维卷积核,核宽分别为2和4,输出通道数分别设为4和5。因此,⼀维卷积计算后,4个输出通道的宽为 11 - 2 + 1 = 10,而其他5个通道的宽为 11 - 4 + 1 = 8。尽管每个通道的宽不同,我们依然可以对各个通道做时序最⼤池化,并将9个通道的池化输出连结成⼀个9维向量。最终,使⽤全连接将9维向量变换为2维输出,即正⾯情感和负⾯情感的预测。

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • TextRNN 定义
  • TextRNN 应用场景
  • TextRNN 原理
  • TextRNN 算法结构
    • Bi-LSTM
      • Bi-LSTM + Uni-LSTM
      • TextCNN 定义
        • 1-D single-channel 卷积计算
          • 1-D multi-channel 卷积计算
            • 2-D 卷积计算
              • Max-Over-Time Pooling 时序池化最大层
              • TextCNN 原理
              • TextCNN 算法结构
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档