IMDB电影评论文本的神经网络分类
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电影评论文本的神经网络分类相关推荐
- 自然语言处理--Keras 实现LSTM循环神经网络分类 IMDB 电影评论数据集
LSTM 对于循环网络的每一层都引入了状态(state)的概念,状态作为网络的记忆(memory).但什么是记忆呢?记忆将由一个向量来表示,这个向量与元胞中神经元的元素数量相同.记忆单元将是一个由 n ...
- AI:神经网络IMDB电影评论二分类模型训练和评估
AI:Keras神经网络IMDB电影评论二分类模型训练和评估,python import keras from keras.layers import Dense from keras import ...
- 自然语言处理-应用场景-文本分类:基于LSTM模型的情感分析【IMDB电影评论数据集】--(重点技术:自定义分词、文本序列化、输入数据批次化、词向量迁移使用)
文本情感分类 1. 案例介绍 现在我们有一个经典的数据集IMDB数据集,地址:http://ai.stanford.edu/~amaas/data/sentiment/,这是一份包含了5万条流行电影的 ...
- Tensorflow2.*教程之使用Tensorflow Hub 对IMDB电影评论数据集进行文本分类(2)
使用数据集: IMDB 数据集 库文件: tensorflow tensorflow_hub:用于迁移学习的库和平台 tensorflow_datasets:提供常用数据集 我们使用 Tensorfl ...
- 【NLP文本分类】对IMDB电影评论进行情感分析
概述 对imdb中的电影评论进行分类,是一个二分类的问题,这是一种重要且广泛适用的机器学习问题. 数据 imdb的数据包含50000条电影评论.拥有25000条训练数据以及25000条评估数据,有着相 ...
- 基本文本分类:电影评论文本分类
使用评论文本将影评分为积极(positive)或消极(nagetive)两类.这是一个二元(binary)或者二分类问题,一种重要且应用广泛的机器学习问题. 我们将使用来源于网络电影数据库(Inter ...
- TensorFlow 教程——电影评论文本分类
https://tensorflow.google.cn/tutorials/keras/text_classification 解决方案 import tensorflow as tf from t ...
- 自然语言处理--Keras 实现循环神经网络分类 IMDB 电影评论数据集
那么为什么要使用 RNN 呢?不一定要选择循环神经网络,与前馈网络或卷积神经网络相比,它训练和传递新样本的成本相对较高(循环层计算成本较高). 但是循环网络在记忆能力方面的特殊优势即记住句子中出现过的 ...
- 自然语言处理--keras实现一维卷积网络对IMDB 电影评论数据集构建情感分类器
为什么在 NLP 分类任务中选择 CNN 呢? 1.CNN神经网络可以像处理图像一样处理文本并"理解"它们 2.主要好处是高效率 3.在许多方面,由于池化层和卷积核大小所造成的限制 ...
- 产品经理也能动手实践的AI(五)- IMDB电影评论语义识别,协同过滤
上一节产品经理也能动手实践的AI(四)- 多标签识别,图像分割讲了多标签识别,图像分割和data block,这之前讲的都是图像识别的方法,今天一节课把剩下的3种核心领域都讲了:自然语言处理,表格数据 ...
最新文章
- 2022-2028年中国胶片手套行业市场研究及前瞻分析报告
- 设置ListView每条数据之间的间隔
- 【Java架构:持续交付】一篇文章搞掂:持续交付理论
- 【NSGAII】基于NSGAII的多目标优化算法的MATLAB仿真
- 最简单的基于FFmpeg的AVfilter的例子-修正版
- Android Glide图片加载框架(四)回调与监听
- 【网络安全工程师面试合集】—邮件协议是如何被安全人员利用的?
- 数据库的主键与外键的区别
- cvHoughLines2() 霍夫线变换
- UE4学习日记(十一)实现简单的御剑(板)飞行功能
- excel模板 基金账本_专项基金拨款记录EXCEL图表
- STC官网首页资源整理
- 数据库实验系列之1数据库及数据库中表等数据库对象的建立实验(包括关系图、完整性、权限控制、视图、索引等内容)
- TheDAO悲剧重演,SpankChain重入漏洞分析
- 【JavaScript】17 - DOM
- 夜神安卓(android)模拟器 摇一摇
- php银行卡的验证规则,php验证银行卡号码的正确性、规范性
- 关于Windows无法格式化该卷,因为该卷已脱机的问题解决办法
- python实现天气预报_【Python3爬虫】用Python实现发送天气预报邮件
- MEncoder 转码 psp 视频