文章目录

  • IMDB 数据集介绍
  • 导入相关的库
  • 数据预处理
  • 模型构建
  • 模型训练及预测
  • 绘制训练损失和验证损失
  • 绘制训练精度和验证精度

IMDB 数据集介绍

MDB 数据集包含来自互联网电影数据库(IMDB)的 50 000 条严重两极分化的评论。数据集被分为用于训练的 25 000 条评论与用于测试的 25 000 条评论,训练集和测试集都包含 50% 的正面评论和 50% 的负面评论。
train_labels 和 test_labels 都是 0 和 1 组成的列表,其中 0代表负面(negative),1 代表正面(positive)

导入相关的库

import tensorflow.keras as keras
from tensorflow.python.keras.preprocessing import sequence
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense ,LSTM,Embedding,Flatten

数据预处理

keras自带了IMDB的数据集,可直接使用load_data进行加载。

(x_train, y_train), (x_test, y_test) = imdb.load_data(path=“imdb.npz”,
num_words=None,
skip_top=0,
maxlen=None,
seed=113,
start_char=1,
oov_char=2,
index_from=3)

返回:

2 个元组:
x_train, x_test: 序列的列表,即词索引的列表。如果指定了 num_words 参数,则可能的最大索引值是 num_words-1。如果指定了 maxlen 参数,则可能的最大序列长度为 maxlen。
y_train, y_test: 整数标签列表 (1 或 0)。

参数:

path: 如果你本地没有该数据集 (在 '~/.keras/datasets/' + path),它将被下载到此目录。
num_words: 整数或 None。要考虑的最常用的词语。任何不太频繁的词将在序列数据中显示为 oov_char 值。
skip_top: 整数。要忽略的最常见的单词(它们将在序列数据中显示为 oov_char 值)。
maxlen: 整数。最大序列长度。 任何更长的序列都将被截断。
seed: 整数。用于可重现数据混洗的种子。
start_char: 整数。序列的开始将用这个字符标记。设置为 1,因为 0 通常作为填充字符。
oov_char: 整数。由于 num_words 或 skip_top 限制而被删除的单词将被替换为此字符。
index_from: 整数。使用此数以上更高的索引值实际词汇索引的开始
(x_train, y_train), (x_test, y_test) =keras.datasets.imdb.load_data(num_words=10000,skip_top=0,start_char=1,oov_char=2,index_from=3)# 截长补短
x_train_s=sequence.pad_sequences(x_train,maxlen=128)
x_test_s=sequence.pad_sequences(x_test,maxlen=128)

模型构建

vocabulary =10000
embedding_dim =32
word_num=128
state_dim =128
model = Sequential()
model.add(Embedding(vocabulary,embedding_dim,input_length=word_num))
model.add(LSTM(state_dim, return_sequences=False))
model.add(Dense(units=1,activation='sigmoid'))
model.summary()

模型训练及预测

#损失函数,优化器,评价指标
model.compile(loss='binary_crossentropy',optimizer="adam",metrics=['accuracy'])
history =model.fit(x=x_train_s,y=y_train,validation_split=0.2,epochs=3,batch_size=64,verbose=1)
loss_and_metrics = model.evaluate(x_test_s, y_test, batch_size=128)

绘制训练损失和验证损失

import matplotlib.pyplot as plt
history_dict = history.history
loss_values = history_dict['loss']
val_loss_values = history_dict['val_loss']
epochs = range(1, len(loss_values) + 1)
plt.plot(epochs, loss_values, 'bo', label='Training loss')
plt.plot(epochs, val_loss_values, 'b', label='Validation loss')
plt.title('Training and validation loss')
plt.xlabel('Epochs')
plt.ylabel('Loss')
plt.legend()
plt.show()

绘制训练精度和验证精度

plt.clf()  # 清空图像
acc = history_dict['accuracy']
val_acc = history_dict['val_accuracy']
plt.plot(epochs, acc, 'bo', label='Training acc')
plt.plot(epochs, val_acc, 'b', label='Validation acc')
plt.title('Training and validation accuracy')
plt.xlabel('Epochs')
plt.ylabel('Accuracy')
plt.legend()
plt.show()

【NLP】keras实现IMDB电影评论分类相关推荐

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

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

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

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

  3. keras电影评论分类

    keras之电影评论分类 数据集 代码讲解 1.模块导入: 2.加载imdb数据集: 3.数据预处理: 4.构建网络: 5.配置模型参数: 6.训练模型: 7.绘制损失和准确率图像: 完整代码: 数据 ...

  4. (imdb数据集)电影评论分类实战:二分类问题

    目录 前言 一.电影评论分类实战 1-1.数据集介绍&数据集导入&分割数据集 1-2.字典的键值对颠倒&数字评论解码 1-3.将整数序列转化为张量(训练数据和标签) 1-4.搭 ...

  5. 电影评论分类(python深度学习——二分类问题)

    记:二分类问题应该是应用最广泛的机器学习问题,电影评论分类是指根据电影评论的文字内容,将其划分为正面评论或者是负面评论,是一个二分类问题,我从头到尾学习了代码,并且进行了整理,有的内容是个人理解,如有 ...

  6. 电影评论分类:二分类问题 —— R语言实现

    前言 在R和Python之间如何进行选择一直是一个热议的话题.机器学习世界也被不同语言偏好所划分.但是随着深度学习的盛行,天平逐渐向Python倾斜,因为截至目前为止Python具有大量R所没有的深度 ...

  7. 深度学习入门系列21:项目:用LSTM+CNN对电影评论分类

    大家好,我技术人Howzit,这是深度学习入门系列第二十一篇,欢迎大家一起交流! 深度学习入门系列1:多层感知器概述 深度学习入门系列2:用TensorFlow构建你的第一个神经网络 深度学习入门系列 ...

  8. 使用朴素贝叶斯对电影评论分类

    本文内容: 使用朴素贝叶斯对电影评论分类 1.数据集讲解: 2.具体实现: 3.实验结果: 实验总结 代码地址 使用朴素贝叶斯对电影评论分类 1.数据集讲解: ​ 该数据集是IMDB电影数据集的一个子 ...

  9. 【深度学习kears+tensorflow】电影评论分类:二分类问题

    目录 Classifying movie reviews: a binary classification example 电影评论分类:二分类问题 The IMDB dataset IMDB 数据集 ...

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

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

最新文章

  1. php网站首页点击更多时获取数据,jQuery+PHP实现点击按钮加载更多,不刷新页面加载更多数据!附:可用源码+demo...
  2. 性价比高出英特尔45%,亚马逊的云服务器芯片如何做到?| 解读
  3. 【项目管理】ITTO-风险管理
  4. 神策数据搬新家,召唤有才新伙伴!
  5. [邻接表] 学习邻接表的表示方法+BFS
  6. 杂项:E-Learning
  7. AjaxControlToolkit控件效果演示
  8. 用c语言复制字符串的元音字母,急求:编写程序,将一个字符串中的元音字母复制到另一个字符串,然后输出。...
  9. 学python多大年龄可以学车_多大年龄可以学驾照?
  10. 疫情期间,在家使用java的SSH框架实现一个简单的任务调度系统
  11. 在oracle中处理日期大全
  12. WinCE中串口驱动及接口函数介绍
  13. 【运动女神】99年、健身达人、北方女孩、直爽善谈、乐天派、旅行爱好者
  14. 腾讯、阿里、百度...大厂招聘火热中,测试员如何才能入大厂?
  15. iOS关键代码遭泄露;Google正式抛弃HTTP;微博网页版出故障 | 一周业界事
  16. HenCoder自定义View学习整理
  17. eXtremeComponents 分页列表
  18. 推荐几个设计师常去的优秀素材网站!收藏好哦!
  19. 你想要的单片机自学指南都在这里(大一必看)
  20. PyTorch学习笔记(10)——上采样和PixelShuffle

热门文章

  1. Win10系统怎么注销微软账户
  2. Linux 创建用户角色并添加ssh登录权限
  3. python 计算众数、中位数、分位数、偏度、峰度
  4. Visual Studio问题汇总
  5. QuartusII软件异常:Error: Top-level design entity is undefined
  6. 51单片机初学之流水灯程序
  7. 靠谱测试人员需要团队协作能力
  8. mysql blob类型图片输出到前端
  9. 产品研发项目管理软件哪个好? 1
  10. 华为网络设备SSH连接