根据电影评论的 文字内容将其划分为正面或负面。

使用IMDB 数据集,它包含来自互联网电影数据库(IMDB)的50 000 条严重两极分
化的评论。数据集被分为用于训练的25 000 条评论与用于测试的25 000 条评论,训练集和测试
集都包含50% 的正面评论和50% 的负面评论。(only use 10000 recotds because of memory error )

1 加载IMDB 数据集
from keras.datasets import imdb
(train_data, train_labels), (test_data, test_labels) = imdb.load_data(num_words=10000)

2 将整数序列编码为二进制矩阵
import numpy as np
def vectorize_sequences(sequences, dimension=10000):
results = np.zeros((len(sequences), dimension))
for i, sequence in enumerate(sequences):
results[i, sequence] = 1.
return results
x_train = vectorize_sequences(train_data)
x_test = vectorize_sequences(test_data)

模型定义
from keras import models
from keras import layers
model = models.Sequential()
model.add(layers.Dense(16, activation='relu', input_shape=(10000,)))
model.add(layers.Dense(16, activation='relu'))
model.add(layers.Dense(1, activation='sigmoid'))

4 编译模型
model.compile(optimizer='rmsprop',
loss='binary_crossentropy',
metrics=['accuracy'])

5 配置优化器
from keras import optimizers
model.compile(optimizer=optimizers.RMSprop(lr=0.001),
loss='binary_crossentropy',
metrics=['accuracy'])

6使用自定义的损失和指标
from keras import losses
from keras import metrics
model.compile(optimizer=optimizers.RMSprop(lr=0.001),
loss=losses.binary_crossentropy,
metrics=[metrics.binary_accuracy])

7 留出验证集
x_val = x_train[:10000]
partial_x_train = x_train[10000:]
y_val = y_train[:10000]
partial_y_train = y_train[10000:]

8 训练模型
model.compile(optimizer='rmsprop',
loss='binary_crossentropy',
metrics=['acc'])
history = model.fit(partial_x_train,
partial_y_train,
epochs=20,
batch_size=512,
validation_data=(x_val, y_val))

9 绘制训练损失和验证损失
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()

10 绘制训练精度和验证精度
plt.clf()
acc = history_dict['acc']
val_acc = history_dict['val_acc']
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()

11 从头开始重新训练一个模型
model = models.Sequential()
model.add(layers.Dense(16, activation='relu', input_shape=(10000,)))
model.add(layers.Dense(16, activation='relu'))
model.add(layers.Dense(1, activation='sigmoid'))
model.compile(optimizer='rmsprop',
loss='binary_crossentropy',
metrics=['accuracy'])
model.fit(x_train, y_train, epochs=4, batch_size=512)
results = model.evaluate(x_test, y_test)

12使用训练好的网络在新数据上生成预测结果
训练好网络之后,你希望将其用于实践。你可以用predict 方法来得到评论为正面的可能
性大小。
>>> model.predict(x_test)
array([[ 0.98006207]
[ 0.99758697]
[ 0.99975556]
...,
[ 0.82167041]
[ 0.02885115]
[ 0.65371346]], dtype=float32)

电影评论分类:二分类问题相关推荐

  1. 使用逻辑回归和词向量进行(英文)电影评论情感(二)分类

    问题描述:对电影评论进行情感分类,类型一共有两种:正面评价 (pos) 和负面评价 (neg). 训练数据集:英文电影评论及对应的分类标签,保存在工作路径下.样本举例如下: 使用的算法:sklearn ...

  2. 基于Keras的IMDB数据集电影评论情感二分类

    原创不易,如果有转载需要的话,请在首行附上本文地址,谢谢. 第一步加载IMDB数据集,如若加载不成功,这里提供一种解决方法:点开IMDB数据下载链接(喜欢的话给个小星星和follow一下),fork到 ...

  3. 4.使用Keras和Tensorflow Hub对电影评论进行文本分类

    使用Keras和Tensorflow Hub对电影评论进行文本分类 本指南使用tf.keras(一个在TensorFlow中用于构建和训练模型的高级API)和tensorflow_hub(一个用于在一 ...

  4. Deep Learing 记录:电影评论分类——二分类问题

    文章目录 一.数据集介绍与可视化展示 1.数据集介绍 2.数据展示--评论解码 二.数据处理与说明 1.train_data处理(列表处理) 2.train_labels处理(标签向量化) 三.网络构 ...

  5. 深度学习实战案例:电影评论二分类

    第一个深度学习实战案例:电影评论分类 公众号:机器学习杂货店 作者:Peter 编辑:Peter 大家好,我是Peter~ 这里是机器学习杂货店 Machine Learning Grocery~ 本 ...

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

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

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

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

  8. 机器学习中的数学原理——二分类问题

    今天是2022年的最后一天,提前祝大家新年快乐!这个专栏主要是用来分享一下我在机器学习中的学习笔记及一些感悟,也希望对你的学习有帮助哦!感兴趣的小伙伴欢迎私信或者评论区留言!这一篇就更新一下<白 ...

  9. 分类家族:二分类、多分类、多标签分类、多输出分类

    分类家族:二分类.多分类.多标签分类.多输出分类 目录 分类家族:二分类.多分类.多标签分类.多输出分类 二分类

  10. LESSON 10.110.210.3 SSE与二分类交叉熵损失函数二分类交叉熵损失函数的pytorch实现多分类交叉熵损失函数

    在之前的课程中,我们已经完成了从0建立深层神经网络,并完成正向传播的全过程.本节课开始,我们将以分类深层神经网络为例,为大家展示神经网络的学习和训练过程.在介绍PyTorch的基本工具AutoGrad ...

最新文章

  1. Restful API的设计思路
  2. python3 sys.stdout.write print 区别
  3. 数据元素和数据项的区别
  4. 第4章 DHCP服务
  5. Node.js aitaotu图片批量下载Node.js爬虫1.00版
  6. 神策数据全新服务体系——打造用户行为分析领域服务最高标准
  7. halcon 偏折法_Halcon18新技术
  8. C# combobox SelectedText值为空
  9. 为何 iOS 越来越偏爱 Swift?
  10. 排序系统 c语言程序设计,c语言程序设计(排序算法).doc
  11. nero8 刻录 avi文件
  12. python可以手眼定标吗_机器人无标定手眼协调
  13. Idea通过svn更新项目失败报 Node remains in conflict
  14. C++学习路线图(重整理)
  15. Kafka KSQL安装
  16. 如何用 Python 可视化《三国》人物与兵器出现频率?(视频教程)
  17. 有偏估计 无偏估计
  18. 【图文教程】虚拟机VMware16 windows系统下载安装
  19. 【汇智学堂】-python小游戏(生成.exe文件)
  20. html网页北京大学,HTMLDocView-北京大学网络与信息系统研究所.ppt

热门文章

  1. 使用spring的@autowired注解,无法实例化dao
  2. 十三、实现Comparable接口和new ComparatorT(){ }排序的实现过程
  3. LeetCode:验证回文串【125】
  4. dubbo学习 三 dubbox概述
  5. Git学习笔记01--初始化设置
  6. 『WPF』实现拖动文件到窗体(控件)
  7. [Java]java反射随笔
  8. boost::function的用法(二)
  9. fopen、fwrite使用
  10. CWinThread