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. java 获取绝对路径
  2. substr()函数——mysql:截取字符串子串
  3. requirejs使用笔记
  4. wince下Gpio 驱动程序
  5. Android聊天背景图片变形解决方案
  6. 电动汽车燃料电池行业调研报告 - 市场现状分析与发展前景预测(2021-2027年)
  7. 复习Javascript专题(三):面向对象(对象的创建与继承,原型及原型链)
  8. Eclipse 2017最佳20个插件
  9. python模拟ssh登录
  10. 通达信服务器在哪个文件里,通达信“指标模块”存放在哪个文件夹里
  11. win10设置右键菜单打开cmd
  12. 吉首大学2019年程序设计竞赛(重现赛)- A SARS病毒 (矩阵,欧拉降幂)
  13. 罗格斯的计算机科学博士奖学金,移动性视角下智能城市的物理信息系统
  14. Fibonacci数列练习题
  15. iOS在Xib加载自定义Xib视图
  16. 【工业互联网】工业互联网与工业大数据分析的应用
  17. OpensAS2搭建+AS2证书制作+SSL证书导入(EDI)
  18. HDU 5446 Unknown Treasure(Lucas定理+CRT)
  19. 技术视角看我的一码通-系列2
  20. 华中师大计算机专业陈鹏,陈鹏-华中农业大学植物科学技术学院

热门文章

  1. 单调区间能写成并吗?【基于间断区间的讨论】
  2. 华软2016校内选拔赛
  3. Unity常用API详解--初学必备
  4. [译]自上而下认识Elasticsearch
  5. 小米盒子3增强版 android tv,小米盒子3增强版刷Android TV系统
  6. Jenkins结合Gitee(码云)自动化部署Springboot项目(比较详细)
  7. SSMS(Microsoft SQL Server Management Studio 18)
  8. 织梦dede:arclist关键词标签keyword动态获取变量
  9. 精选ASP毕业设计91套——源码+论文完整资源
  10. 【存储技术发展趋势】