zoukankan      html  css  js  c++  java
  • CNN文本分类

      CNN用于文本分类本就是一个不完美的解决方案,因为CNN要求输入都是一定长度的,而对于文本分类问题,文本序列是不定长的,RNN可以完美解决序列不定长问题,

    因为RNN不要求输入是一定长度的。那么对于CNN用于解决文本分类问题而言,可以判断文本的长度范围,例如如果大多数文本长度在100以下,极少数在100以上,那就

    可以设定文本长度是100,不足100的文本用padding补齐,多于100的文本则截断。具体过程如下图:

      首先把分词之后的句子按照设定的维度展开,这里维度是9,每个单词都会有一个向量表达,维度是6(word embedding),然后用一个一维卷积核(也可以是多个)对其进行卷积操作,注意,单词的Embedding的长度就是原始输入的通道数,也就是卷积核的通道数;卷积操作之后,再对其进行Pooling操作,有max-pool和average-pool操作两种,注意,这里是对时间维度,也就是句子序列上做Pooling;最后再输入到一个全连接神经网络中,得到分类结果。

    CNN和RNN用于解决文本分类问题的对比:

      • CNN不能完美解决序列式问题
      • CNN卷积相当于N-gram(使用一定长度的卷积核),LSTM可以提取更长的依赖
      • 双向RNN会增强效果
      • CNN模型并行程度高,更快
    人生苦短,何不用python
  • 相关阅读:
    Educational Codeforces Round 58 A,B,C,D,E,G
    Codeforces Round #530 (Div. 2) F (树形dp+线段树)
    Codeforces Round #530 (Div. 2) A,B,C,D
    bzoj 3262: 陌上花开
    bzoj 2653: middle (主席树+二分)
    费马小定理的证明
    分组背包
    二维费用的背包问题
    luoguP1164 小A点菜(背包问题)
    完全背包问题
  • 原文地址:https://www.cnblogs.com/yqpy/p/11051810.html
Copyright © 2011-2022 走看看