IMDB
参考Tensorflow官网代码

模型如下

vocab_size = 10000model = keras.Sequential()
model.add(keras.layers.Embedding(vocab_size, 16))
model.add(keras.layers.GlobalAveragePooling1D())
model.add(keras.layers.Dense(16, activation=tf.nn.relu))
model.add(keras.layers.Dense(1, activation=tf.nn.sigmoid))model.summary()
_________________________________________________________________
Layer (type)                 Output Shape              Param #
=================================================================
embedding (Embedding)        (None, None, 16)          160000
_________________________________________________________________
global_average_pooling1d (Gl (None, 16)                0
_________________________________________________________________
dense (Dense)                (None, 16)                272
_________________________________________________________________
dense_1 (Dense)              (None, 1)                 17
=================================================================
Total params: 160,289
Trainable params: 160,289
Non-trainable params: 0
_________________________________________________________________

按顺序堆叠各个层以构建分类器:

  1. 第一层是 Embedding 层。该层会在整数编码的词汇表中查找每个字词-索引的嵌入向量。模型在接受训练时会学习这些向量。这些向量会向输出数组添加一个维度。生成的维度为:(batch, sequence, embedding)。
  2. 接下来,一个 GlobalAveragePooling1D 层通过对序列维度求平均值,针对每个样本返回一个长度固定的输出向量。这样,模型便能够以尽可能简单的方式处理各种长度的输入。
  3. 该长度固定的输出向量会传入一个全连接 (Dense) 层(包含 16 个隐藏单元)。
  4. 最后一层与单个输出节点密集连接。应用 sigmoid 激活函数后,结果是介于 0 到 1 之间的浮点值,表示概率或置信水平。

流程=》
1、下载数据集,查看数据集格式,标签格式,建立词表,加入[""] ,[""]
[""]
2、建立word_id和id_word,词嵌入,每个句子翻译成数字
3、思考用什么模型去预测,Tensorflow使用的是GlobalAveragePooling1D 降维,然后用两个全连接最后维度是1,与标签维度对应
4、建立优化器model.compile(optimizer=tf.train.AdamOptimizer(), loss='binary_crossentropy', metrics=['accuracy'])
5、训练模型

history = model.fit(partial_x_train,partial_y_train,epochs=40,batch_size=512,validation_data=(x_val, y_val),verbose=1)

THUCNews
相关代码 https://github.com/gaussic/text-classification-cnn-rnn
Text Classification with CNN
处理数据集
read_file(): 读取文件数据;
build_vocab(): 构建词汇表,使用字符级的表示,这一函数会将词汇表存储下来,避免每一次重复处理;
read_vocab(): 读取上一步存储的词汇表,转换为{词:id}表示;
read_category(): 将分类目录固定,转换为{类别: id}表示;
to_words(): 将一条由id表示的数据重新转换为文字;
process_file(): 将数据集从文字转换为固定长度的id序列表示;
batch_iter(): 为神经网络的训练准备经过shuffle的批次的数据。

CNN模型

词嵌入embedding = tf.get_variable('embedding', [self.config.vocab_size, self.config.embedding_dim])embedding_inputs = tf.nn.embedding_lookup(embedding, self.input_x)

卷积池化

conv = tf.layers.conv1d(embedding_inputs, self.config.num_filters, self.config.kernel_size, name='conv')# global max pooling layergmp = tf.reduce_max(conv, reduction_indices=[1], name='gmp')

全连接然后找出预测值的最大索引

fc = tf.layers.dense(gmp, self.config.hidden_dim, name='fc1')
fc = tf.contrib.layers.dropout(fc, self.keep_prob)
fc = tf.nn.relu(fc)# 分类器self.logits = tf.layers.dense(fc, self.config.num_classes, name='fc2')self.y_pred_cls = tf.argmax(tf.nn.softmax(self.logits), 1)  # 预测类别

建立优化器

# 损失函数,交叉熵cross_entropy = tf.nn.softmax_cross_entropy_with_logits(logits=self.logits, labels=self.input_y)self.loss = tf.reduce_mean(cross_entropy)# 优化器self.optim = tf.train.AdamOptimizer(learning_rate=self.config.learning_rate).minimize(self.loss)

总结
通过以上两个模型,可以看出处理文字任务流程都是:
1、处理数据集,建立词表,建立词汇和数字的映射表
2、词嵌入 把句子转化为数字
3、思考用什么模型,把经过转化为数字的句子 加入到模型
4、建立优化器
5、训练

.IMDB,THUCNews数据集下载和探索相关推荐

  1. ML之NB、LoR:基于NB和LoR算法对Kaggle IMDB影评数据集(国外类似豆瓣电影)情感分析进行分类

    ML之NB.LoR:基于NB和LoR算法对Kaggle IMDB影评数据集(国外类似豆瓣电影)情感分析进行分类 注:LoR code waiting 目录 输出结果 核心代码 输出结果 数据集:Dat ...

  2. 【机器学习】 - 各种人脸数据集下载地址及说明汇总

    1. Olivetti Faces人脸数据集 由40个人组成,共计400张人脸: 每人的人脸图片为10张,包含正脸.侧脸以及不同的表情: 整个数据集就是一张大的人脸组合图片,下载地址:https:// ...

  3. 数据集下载地址(转)

    以下内容转自https://baijiahao.baidu.com/s?id=1615853849218131902&wfr=spider&for=pc 图像分类领域 1)MNIST ...

  4. 国内外深度学习开放数据集下载集合(值得收藏,不断更新)

    国内外深度学习开放数据集下载集合(值得收藏,不断更新) 一.Image processing data set 1.MNIST ,是最流行的深度学习数据集之一.这是一个手写数字数据集,包含一个有着 6 ...

  5. 各领域公开数据集下载 | 资源

    金融 交通 商业 推荐系统 医疗健康 图像数据 视频数据 音频数据 自然语言处理 社会数据 处理后的科研和竞赛数据 1 金融 **美国劳工部统计局官方发布数据:**http://dataju.cn/D ...

  6. 基于IMDB评论数据集的情感分析

    文章目录 前言 一.大型电影评论数据集介绍 二.环境配置 三.实验模型及流程 1.实验模型 2.实验流程 四.实验代码 1.多层感知器模型代码 2.递归神经网络模型代码 3.长短期记忆模型代码 五.实 ...

  7. Tensorflow2.0数据集下载

    通过tf.keras.datasets 下载数据集 import tensorflow as tf fashion_mnist = tf.keras.datasets.fashion_mnist #返 ...

  8. Netflix Prize数据集详解及数据集下载链接

    Netflix数据集包含了1999.12.31-2005.12.31期间匿名客户提供的超过一亿部电影平级.这个数据集大约给出了480189个用户和17770部电影评级.数据集中的详细信息如下图所示: ...

  9. 各领域公开数据集下载|资源

    本文整理了一些网上的免费数据集,分类下载地址如下,希望能节约大家找数据的时间.本篇文章来自知乎专栏赵熙的文章[各领域公开数据集下载]http://mp.weixin.qq.com/s/YTir0tVu ...

最新文章

  1. 苹果放大招?「廉价版」5G iPhone 将揭晓,M2芯片来袭?
  2. linux系统资源监控
  3. python操作neo4j
  4. AI赌神升级!无惧bluff,6人局德扑完胜世界冠军,训练只用了8天
  5. MUI:字符串和json数据的相互转换
  6. html滚动条样式自定义,CSS3自定义滚动条样式
  7. 图解Win7下安装Borland C++ 3.1失败记
  8. 搞笑之----普通话
  9. 第六章插图以及代码文件和插图之间的对应关系
  10. 使用Java+SAP云平台+SAP Cloud Connector调用ABAP On-Premise系统里的函数
  11. python安全攻防---scapy基础---计算机网络各层协议
  12. Spring配置XML本地提示:点击eclipse属性——选择XML Catalog
  13. achartengine画出动态折线图
  14. .net 中使用rabbitmq
  15. stm32增量式光电编码器
  16. CommandName属性和CommandArgument属性
  17. hash冲突的解决方法
  18. Mac版网易云音乐打不开
  19. Redis-使用场景
  20. 实现SDT(software-defined Things)的IOT案例(2)

热门文章

  1. 微信小程自定tabbar
  2. 1 ,spark 电影点评项目 : 简介,项目历史 ,元数据下载 ,电影数据集网站 ( 非常好的网站 )
  3. 手把手教你如何远程连接云服务器(图文教程)?
  4. 关于如何在Windows上生成dll库
  5. idc服务器排名戴尔型号,IDC排名或gartner的排名
  6. Windows磁盘管理概述
  7. 【Pytorch-从一团乱麻到入门】:1、Pytorch、jupyter notebook 的安装及设置
  8. WRF实例运行(2)
  9. 版本号Alpha、Beta、RC、Candidate、Stable分别代表什么含义?
  10. css修改element组件中el-date-picker中的placeholder样式失效