cnn分类
来源:互联网 发布:在线算法的特点 编辑:程序博客网 时间:2024/06/05 09:35
最近做项目要对所有评论内容做分类,分为正面和负面两个维度,一开始我自己写了个朴素贝叶斯分类器,准确率只有60%(测试数据,线上数据的结果应该更理想),离项目预期要求的80%准确率相差甚远,于是翻阅资料,找了一个cnn的分类器,在此基础上加以改造,将业务逻辑嵌了进去,出于好奇,也是最近deep learning比较火,看了一些资料,结合这个分类器,对分类器做了什么做一个小结。
源码在此 https://github.com/dennybritz/cnn-text-classification-tf
cnn(卷积神经网络)是将多维数据用卷积核做多层卷积运算、池化、tanh激活降维,再将多个层merge之后采用softmax算法得出输出结果的过程。但是文字是没有维度的,这里就涉及到nlp领域的东西了,又是一门大学问,简单来说就是给句子中的每一个词做成词向量,也叫词嵌入(word embedding),增加维度的过程实际上是将词与词之间的关系信息保存了起来。
回到这个分类器,他基于tensorflow,训练模型定义如下
1、利用tensorflow自带的VocabularyProcessor将句子转化成词向量的list,再转成矩阵图,这样就将文字问题转化成了图像问题;然而tensorflow的卷积转化操作需要批次(batch)、宽度(width)、高度(height)和频道(channel)这样一个四维张量,这样就够成了第一层:embedding层
2、接下来做卷积和池化取最大特征,因为卷积时采用了不同大小的滤镜,结果必然是不同形状的张量,因此需要加一层处理,将结果合并成一个大的特征向量
3、加入dropout层,为防止过拟合
4、通过执行矩阵乘法获得最终类别,计算出Loss和Accuracy,用于训练时纠偏
训练后将最终模型保存在文件中,Evaluating时再从文件restore
- cnn分类
- 经典cnn分类网络
- CNN文本分类
- Text-CNN 文本分类
- CNN用于文本分类
- CNN情感分类
- 用cnn做行人分类
- CNN文本分类 论文收集
- TF-day6 CNN简单分类
- 卷积神经网络CNN-目标分类
- 使用CNN进行文本分类
- 基于cnn的情感分类
- 利用CNN进行图像分类学习笔记
- 基于opencv3.1的cnn分类系统集成
- CNN在中文文本分类的应用
- 运用CNN对ImageNet进行图像分类
- 使用CNN神经网络进行图片识别分类
- 基于tensorflow的cnn文本分类
- 动态处理几何问题一则
- 对RecyclerView的封装,使用简单,功能丰富
- Java中Unsafe类详解
- vue.js 练手--简单ToDoList
- ubuntu 14.04zabbix的安装
- cnn分类
- Android-----------RecyclerView下拉加载,上拉加载更多
- java导出excel,txt
- this
- Vuforia云识别
- 键盘监听事件
- Java输入输出(IO)和流的基本概念
- 英美重视IoT安全,漏洞披露和安全人才培养
- Java线程间通信问题分析(生产者消费者模型)