1.目的

数据集是 IMDB Large Movie Review Dataset,包含用于训练的 25000 段带有明显情感倾向的电影评论,测试集有 25000 段。我们将会用此数据集训练一个二分类模型,用于判断一篇评论是积极的还是消极的

2.思路分析

步骤:

  • 1、电影评论数据读取
  • 2、 模型输入特征列指定
  • 3、 模型训练与保存

3.代码实现

"""
目的:对IMDB电影评论数据进行训练,预测分类
步骤:
1.读取电影评论数据
2.模型输入特征指定
3.模型训练与保存
"""
from tensorflow import keras
import tensorflow as tf
import functoolsclass Solution:def get_imdb_data(self):"""获取数据"""imdb = keras.datasets.imdb(x_train_data, y_train), (x_test_data, y_test) = imdb.load_data(num_words=5000)# 对读取的评论的词的数字id列表,进行填充补齐x_train = keras.preprocessing.sequence.pad_sequences(sequences=x_train_data, maxlen=200, padding='post',value=0)x_test = keras.preprocessing.sequence.pad_sequences(sequences=x_test_data, maxlen=200, padding='post', value=0)return (x_train, y_train), (x_test, y_test)def parse(self, X, y):"""生成feature_dict, label"""feature_dict = {"feature": X}return feature_dict, ydef input_fn(self, X, y, batch_size, nums_epochs):"""训练输入estimator的数据格式"""dataset = tf.data.Dataset.from_tensor_slices((X, y)).map(self.parse).batch(batch_size).repeat(nums_epochs)return datasetdef train(self, hidden_units, feature_clos, model_dir, train_inputfn):"""模型训练"""return tf.estimator.DNNClassifier(hidden_units=[hidden_units], feature_columns=[feature_clos],model_dir=model_dir).train(input_fn=train_inputfn)def evaluate(self, model, test_inputfn):"""模型评估"""return model.evaluate(test_inputfn)def process(self):# 1.获取数据(x_train, y_train), (x_test, y_test) = self.get_imdb_data()train_inputfn = functools.partial(self.input_fn, x_train, y_train, 64, 5)# print(train_inputfn)test_inputfn = functools.partial(self.input_fn, x_test, y_test, 64, 1)# print(test_inputfn)# 2.模型输入特征指定column = tf.feature_column.categorical_column_with_identity(key='feature', num_buckets=5000)t_embedding_column = tf.feature_column.embedding_column(column, dimension=50)# 3.模型训练classifier = self.train(100, t_embedding_column, './tmp/model/dnn_txt1/', train_inputfn)# 4.模型评估results = self.evaluate(classifier, test_inputfn)print(results)if __name__ == '__main__':s = Solution()s.process()

注:keras.preprocessing.sequence.pad_sequences(sequences, maxlen=None, dtype=‘int32’,
padding=‘pre’, truncating=‘pre’, value=0.)

  • sequences:浮点数或整数构成的两层嵌套列表
  • maxlen:None或整数,为序列的最大长度。大于此长度的序列将被截短,小于此长度的序列将在后部填0.
  • dtype:返回的numpy array的数据类型
  • padding:‘pre’或‘post’,确定当需要补0时,在序列的起始还是结尾补
  • truncating:‘pre’或‘post’,确定当需要截断序列时,从起始还是结尾截断
  • value:浮点数,此值将在填充时代替默认的填充值0

IMDB电影评论文本的神经网络分类相关推荐

  1. 自然语言处理--Keras 实现LSTM循环神经网络分类 IMDB 电影评论数据集

    LSTM 对于循环网络的每一层都引入了状态(state)的概念,状态作为网络的记忆(memory).但什么是记忆呢?记忆将由一个向量来表示,这个向量与元胞中神经元的元素数量相同.记忆单元将是一个由 n ...

  2. AI:神经网络IMDB电影评论二分类模型训练和评估

    AI:Keras神经网络IMDB电影评论二分类模型训练和评估,python import keras from keras.layers import Dense from keras import ...

  3. 自然语言处理-应用场景-文本分类:基于LSTM模型的情感分析【IMDB电影评论数据集】--(重点技术:自定义分词、文本序列化、输入数据批次化、词向量迁移使用)

    文本情感分类 1. 案例介绍 现在我们有一个经典的数据集IMDB数据集,地址:http://ai.stanford.edu/~amaas/data/sentiment/,这是一份包含了5万条流行电影的 ...

  4. Tensorflow2.*教程之使用Tensorflow Hub 对IMDB电影评论数据集进行文本分类(2)

    使用数据集: IMDB 数据集 库文件: tensorflow tensorflow_hub:用于迁移学习的库和平台 tensorflow_datasets:提供常用数据集 我们使用 Tensorfl ...

  5. 【NLP文本分类】对IMDB电影评论进行情感分析

    概述 对imdb中的电影评论进行分类,是一个二分类的问题,这是一种重要且广泛适用的机器学习问题. 数据 imdb的数据包含50000条电影评论.拥有25000条训练数据以及25000条评估数据,有着相 ...

  6. 基本文本分类:电影评论文本分类

    使用评论文本将影评分为积极(positive)或消极(nagetive)两类.这是一个二元(binary)或者二分类问题,一种重要且应用广泛的机器学习问题. 我们将使用来源于网络电影数据库(Inter ...

  7. TensorFlow 教程——电影评论文本分类

    https://tensorflow.google.cn/tutorials/keras/text_classification 解决方案 import tensorflow as tf from t ...

  8. 自然语言处理--Keras 实现循环神经网络分类 IMDB 电影评论数据集

    那么为什么要使用 RNN 呢?不一定要选择循环神经网络,与前馈网络或卷积神经网络相比,它训练和传递新样本的成本相对较高(循环层计算成本较高). 但是循环网络在记忆能力方面的特殊优势即记住句子中出现过的 ...

  9. 自然语言处理--keras实现一维卷积网络对IMDB 电影评论数据集构建情感分类器

    为什么在 NLP 分类任务中选择 CNN 呢? 1.CNN神经网络可以像处理图像一样处理文本并"理解"它们 2.主要好处是高效率 3.在许多方面,由于池化层和卷积核大小所造成的限制 ...

  10. 产品经理也能动手实践的AI(五)- IMDB电影评论语义识别,协同过滤

    上一节产品经理也能动手实践的AI(四)- 多标签识别,图像分割讲了多标签识别,图像分割和data block,这之前讲的都是图像识别的方法,今天一节课把剩下的3种核心领域都讲了:自然语言处理,表格数据 ...

最新文章

  1. 2022-2028年中国胶片手套行业市场研究及前瞻分析报告
  2. 设置ListView每条数据之间的间隔
  3. 【Java架构:持续交付】一篇文章搞掂:持续交付理论
  4. 【NSGAII】基于NSGAII的多目标优化算法的MATLAB仿真
  5. 最简单的基于FFmpeg的AVfilter的例子-修正版
  6. Android Glide图片加载框架(四)回调与监听
  7. 【网络安全工程师面试合集】—邮件协议是如何被安全人员利用的?
  8. 数据库的主键与外键的区别
  9. cvHoughLines2() 霍夫线变换
  10. UE4学习日记(十一)实现简单的御剑(板)飞行功能
  11. excel模板 基金账本_专项基金拨款记录EXCEL图表
  12. STC官网首页资源整理
  13. 数据库实验系列之1数据库及数据库中表等数据库对象的建立实验(包括关系图、完整性、权限控制、视图、索引等内容)
  14. TheDAO悲剧重演,SpankChain重入漏洞分析
  15. 【JavaScript】17 - DOM
  16. 夜神安卓(android)模拟器 摇一摇
  17. php银行卡的验证规则,php验证银行卡号码的正确性、规范性
  18. 关于Windows无法格式化该卷,因为该卷已脱机的问题解决办法
  19. python实现天气预报_【Python3爬虫】用Python实现发送天气预报邮件
  20. MEncoder 转码 psp 视频

热门文章

  1. poi-3.17版本 和若依框架结合--excel导出,excel图片导出
  2. python学习-02(数据类型、字符串、列表、元祖、字典)
  3. 自抗扰控制中的扩张状态观测器收敛性分析3
  4. 2014年全国高等学校名单
  5. 云队友丨华为选拔人才,最看重这5个素质,已经用了15年
  6. 三方协议、报到证(派遣证)、干部身份
  7. cad线加粗怎么设置_cad2016怎么把线加粗
  8. cad 绘制直线 设定长度 角度
  9. Oracle跨平台迁移之XTTS
  10. 华为机试4.20:新员工考试