前言

在之前的中文文本分类中,使用了LSTM来进行模型的构建(详情参考:
Tensorflow使用LSTM实现中文文本分类(2)、使用numpy实现LSTM和RNN网络的前向传播过程)。除了使用LSTM来处理时间序列问题,也可以使用在图像处理领域使用更多的卷积神经网络来处理时间序列问题。

LSTM and Char-CNN

  1. 在Char-CNN中,词语embedding的每一列(每一个特征),可以看做是一个通道,是该词语的一种表达。因此,(timesteps, embed_size)中的每一列,都可以看做是这一个句子的不同表达。
    其实想想,在图像领域,不同的卷积核提取出来的feature map,也是该图像的不同表达而已,本质上并没有什么区别。
  2. 一维卷积核应用在时间维度上,也就是应用在timestep(时间步)上,embedding的长度就是通道数目。这就产生了一个问题——句子不等长的处理方式,必须要对不等长的就句子进行截断,令其变成等长序列,这样才能正常运行。这也就是为什么CNN天然的不能很完美的解决序列式问题的原因之一。
  3. CNN的卷积核长度,就相当于可以看到句子中词语的个数,每次只能看到n个词语(虽然说可以将n设置的大一些,但终究是有限个)。而RNN是可以完整的看完整个句子的,所以说,RNN 相对于 CNN 来说,可以提取一个更长的依赖,如果是双向RNN的话,效果会更好。
  4. 另外,无论 RNN 还是 CNN,都需要使用到 embedding,需要在一个更大的预料数据集上进行一个pre_train的embedding。
  5. 最后 CNN 模型相对与 RNN 模型来说,不算太复杂,因此 效率更高也更快。

tf.layers.Conv1D函数

该函数的参数还是很多的,但只说几个常用参数,其他的参数我也没用过,也不太懂。
参数:
filters:整数,输出空间的维数(即卷积中的滤波器数)。
kernel_size:单个整数的整数或元组/列表,指定1D卷积窗口的长度。
strides:单个整数的整数或元组/列表,指定卷积的步幅.指定任何步幅(stride)值!= 1与指定任何dilation_rate值都不相容!= 1。
padding:一个"valid"或"same"(不区分大小写)。
data_format:一个字符串,可以是channels_last(默认)或channels_first;输入中维度的顺序;channels_last对应于具有形状(batch, length, channels)的输入,而channels_first对应于具有形状(batch, channels, length)的x输入。
dilation_rate:单个整数的整数或元组/列表,指定用于扩张卷积的扩张率。目前,指定任何dilation_rate值!= 1与指定任何strides值!= 1 不兼容。
activation:激活功能,将其设置为“None”以保持线性激活。
对该函数有更加强烈的求知欲的话,请参考:TensorFlow函数:tf.layers.Conv1D

代码演示

本来想把代码也贴出来的,已经写了很长了,代码贴到下一篇了。

Tensorflow使用Char-CNN实现中文文本分类(1)相关推荐

  1. TensorFlow使用CNN实现中文文本分类

    TensorFlow使用CNN实现中文文本分类 读研期间使用过TensorFlow实现过简单的CNN情感分析(分类),当然这是比较low的二分类情况,后来进行多分类情况.但之前的学习基本上都是在英文词 ...

  2. python中文文本分析_基于CNN的中文文本分类算法(可应用于垃圾邮件过滤、情感分析等场景)...

    基于cnn的中文文本分类算法 简介 参考IMPLEMENTING A CNN FOR TEXT CLASSIFICATION IN TENSORFLOW实现的一个简单的卷积神经网络,用于中文文本分类任 ...

  3. 详解CNN实现中文文本分类过程

    摘要:本文主要讲解CNN实现中文文本分类的过程,并与贝叶斯.决策树.逻辑回归.随机森林.KNN.SVM等分类算法进行对比. 本文分享自华为云社区<[Python人工智能] 二十一.Word2Ve ...

  4. TensorFlow – 使用CNN进行中文文本分类

    使用卷积神经网络(CNN)处理自然语言处理(NLP)中的文本分类问题.本文将结合TensorFlow代码介绍: 词嵌入 填充 Embedding 卷积层 卷积(tf.nn.conv1d) 池化(poo ...

  5. 【NLP】TensorFlow实现CNN用于中文文本分类

    代码基于 dennybritz/cnn-text-classification-tf 及 clayandgithub/zh_cnn_text_classify 参考文章 了解用于NLP的卷积神经网络( ...

  6. 基于cnn的中文文本分类

    资源下载地址:https://download.csdn.net/download/sheziqiong/86799359 资源下载地址:https://download.csdn.net/downl ...

  7. CNN在中文文本分类的应用

    深度学习近一段时间以来在图像处理和NLP任务上都取得了不俗的成绩.通常,图像处理的任务是借助CNN来完成的,其特有的卷积.池化结构能够提取图像中各种不同程度的纹理.结构,并最终结合全连接网络实现信息的 ...

  8. 基于CNN的中文文本分类算法(可应用于垃圾文本过滤、情感分析等场景)

    向AI转型的程序员都关注了这个号

  9. PyTorch入门(五)使用CNN模型进行中文文本分类

      本文将会介绍如何在PyTorch中使用CNN模型进行中文文本分类.   使用CNN实现中文文本分类的基本思路: 文本预处理 将字(或token)进行汇总,形成字典文件,可保留前n个字 文字转数字, ...

  10. [Python人工智能] 二十一.Word2Vec+CNN中文文本分类详解及与机器学习(RF\DTC\SVM\KNN\NB\LR)分类对比

    从本专栏开始,作者正式研究Python深度学习.神经网络及人工智能相关知识.前一篇文章分享了Keras实现RNN和LSTM的文本分类算法,并与传统的机器学习分类算法进行对比实验.这篇文章我们将继续巩固 ...

最新文章

  1. Mysql Cluster 集群 windows版本
  2. java里css查找快捷键_CSS入门2—元素快捷键
  3. Xamarin.iOS项目编译提示Could not AOT the assembly
  4. 一文带你学会国产加密算法SM4的java实现方案
  5. js字符串怎么转python对象_js 对象转换为字符串
  6. 归并排序比较次数_归并排序「从入门到放弃」
  7. leetcode435. 无重叠区间
  8. 剑指 Offer II 108. 单词演变
  9. 与程序员朋友闲聊 通用权限管理系统有啥用?
  10. 处理eking.Devos勒索病毒防范解密恢复操作攻略
  11. 2分钟学会小程序中使用vant组件库
  12. win10计算器rsh_win10计算器rsh_如何打开win10计算器 教你打开win10计算器的方法
  13. box2d弹球 cocos2d-x重力感应(cocos2d-x2.1)
  14. Python3 中英文列表输出对齐
  15. OpenCV-Python的文本透视矫正与水平矫正
  16. 抄码机器手持抄码器那个好用进口抄码机进口肉类冻品冷库牛羊肉抄码器
  17. 【老板须知】实施ERP系统能为公司带来什么样的好处
  18. 最新 跟我学spring3 电子书下载
  19. ip黑白名单防火墙frdev的原理与实现
  20. 回望我的2019:35岁的程序员,没想到找工作这么难!

热门文章

  1. OpenCV 基本阈值操作Thresholding Operations
  2. 慢行优先—老城区道路改造中的设计适配与转向
  3. vue实现浏览器记住密码功能,并进行加密存储
  4. ①辗转相除法求最大公约数
  5. 港科夜闻|香港科技大学许彬教授领导的国际研究团队揭示向弱势群体倾斜的疫苗分配策略最能令社会受益...
  6. 权限管理AppOpsManager
  7. 如何识别全部单号快递公司查询每个单号物流
  8. 用python做一个翻译器
  9. 如何使用WinRAR快速加密、解密?
  10. 从点云到网格(三)Poisson重建(转)