电影评论分类:二分类问题

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

使用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)

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/472962.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

TensorFlow 2.0 - tf.distribute 分布式训练

文章目录1. 单机多卡 MirroredStrategy2. 多机训练 MultiWorkerMirroredStrategy3. TPU 张量处理单元学习于:简单粗暴 TensorFlow 2 1. 单机多卡 MirroredStrategy # 分布式训练 import tensorflow as tf import tensorflow_datasets as tfds# 1 单机多卡 Mirrore…

非抢占式优先级调度算法_华为鸿蒙操作系统内核真面目之抢占式和非抢占式内核...

华为鸿蒙操作系统内核真面目之抢占式和非抢占式内核众所周知华为鸿蒙操作系统内核是Linux内核。而Linux内核即是抢占式内核也是非抢占式内核。设置软件优先级在优先级在0-99之间是抢占式优先级。设置优先级在100-139之间是非抢占式优先级。从华为官方发布的信息--优先级高的任务…

TensorFlow 2.0 - Hub 模型复用

文章目录1. tfhub2. 例子:神经风格转换3. retrain 例子学习于:简单粗暴 TensorFlow 2 1. tfhub 网址: https://hub.tensorflow.google.cn/ https://tfhub.dev/ 可以搜索,下载模型 安装包 pip install tensorflow-hub import…

微服务 注册中心的作用_102,谈谈微服务注册中心zookeeperamp;Eureka

首先,大家要明确一点微服务注册中心是一个重要的组件,解决的是服务的注册和发现的问题,而zookeeper,Eureka都只是其中一款落地实现的产品,再比如Nacos也是如此,所以关键是掌握注册中心的工作原理&#xff0…

文本表示

1 one-hot representation 该单词对应所在元素为1,向量中其他元素均为0,向量的维度就等于词库中的单词数目  所有向量都是互相正交的,我们无法有效的表示两个向量间的相似度  向量维度过大。 from sklearn.feature_extraction.text…

天池 在线编程 课程表(拓扑排序 + 回溯)

文章目录1. 题目2. 解题1. 题目 总共有n个课程,从0到n-1。 有些课程可能有先决条件,例如,你想修课程0,你必须先修一门课程1,这两门课之间的关系表示为:[0,1] 给定课程的总数和先决条件对的列表,返回你可以…

java 父子级json组装不用递归_2020面试阿里Java研发岗题库总结,想虐面试官不能错过的面试宝典...

前言:虽然天猫,蚂蚁金,菜鸟都归属阿里旗下,但每个面试官问的问题都不一样,相同点主要在流程方面。面试开始会让自我介绍,主要业务架构和技术架构两部分。业务架构一般不会深究,但要面试官听明白&#xff0c…

LeetCode 1748. 唯一元素的和

文章目录1. 题目2. 解题1. 题目 给你一个整数数组 nums 。 数组中唯一元素是那些只出现 恰好一次 的元素。 请你返回 nums 中唯一元素的 和 。 示例 1: 输入:nums [1,2,3,2] 输出:4 解释:唯一元素为 [1,3] ,和为 4…

朵唯机器人怎么连网_平遥古城推出机器人导游 可伴游还可骑行

近日,一组集景点讲解、语音互动等多种功能于一身的机器人亮相平遥古城,引发游客关注。2月27日,北京青年报记者从景区旅游公司处了解到,这批机器人导游已经上岗5天,主要是为了填补下午5点人工导游下班后,古城…

评论数据获取、词频统计、词云图

# coding: utf-8 # In[2]: import urllib.request import re import requests import time import random import json # 设置请求头 headers (User-Agent, Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537…

pytorch 语义分割loss_vedaseg:基于pytorch的开源语义分割工具库,更多模型支持,更易拓展...

加入极市专业CV交流群,与6000来自腾讯,华为,百度,北大,清华,中科院等名企名校视觉开发者互动交流!更有机会与李开复老师等大牛群内互动!同时提供每月大咖直播分享、真实项目需求对接…

LeetCode 1749. 任意子数组和的绝对值的最大值(前缀和)

文章目录1. 题目2. 解题1. 题目 给你一个整数数组 nums 。 一个子数组 [numsl, numsl1, ..., numsr-1, numsr] 的 和的绝对值 为 abs(numsl numsl1 ... numsr-1 numsr) 。 请你找出 nums 中 和的绝对值 最大的任意子数组(可能为空),并返…

同一个项目相互调接口_408计算机网络D3-第二章:网络体系结构与参考模型(上)分层结构-协议-接口-服务...

网络体系结构是从功能上描述计算机网络结构。计算机网络体系结构简称网络体系结构是分层结构;是计算机网络的各层及其协议的集合。每层遵循某个/些网络协议以完成本层功能。分层结构-协议-接口-服务首先就是为什么要分层发送文件前要完成的工作发起通信的计算机必须…

专家 安全_船级社专家组到公司开展安全生产标准化考核

12月17日,船级社专家组一行到公司开展安全生产标准化考核工作,公司党委书记、执行董事曲贝贝,执行总经理(主持生产经营工作)陈飞,执行总经理、安全总监李中华,党委副书记、纪委书记、工会主席刘小丽,总经济…

LeetCode 1750. 删除字符串两端相同字符后的最短长度(双指针)

文章目录1. 题目2. 解题322 / 1676, 19.2%1166 / 8426,13.8%https://leetcode-cn.com/contest/biweekly-contest-45/ranking/ 前两题: LeetCode 1748. 唯一元素的和 LeetCode 1749. 任意子数组和的绝对值的最大值(前缀和&#xf…

LeetCode 1752. 检查数组是否经排序和轮转得到

文章目录1. 题目2. 解题1. 题目 给你一个数组 nums 。 nums 的源数组中,所有元素与 nums 相同,但按非递减顺序排列。 如果 nums 能够由源数组轮转若干位置(包括 0 个位置)得到,则返回 true ;否则&#xf…

ts自动编译声明文件_拥抱 TS:细数选择 TS 的 N 种理由

作者 | 马靖day day up, bye bye bug最近在做一个新项目,技术大佬告知前端要用 TS 。前端小白的我内心疑惑“弱类型语言它不香嘛,为什么选择 TS ?” 为了紧随大佬的流星大步,拥抱变化。带着这个疑惑我积(被)极(破)主(营)动(业)点开…

java分治法求数列的最大子段和_Java十大经典排序算法动画解析和 代码实现

排序算法是《数据结构与算法》中最基本的算法之一。排序算法可以分为内部排序和外部排序。内部排序是数据记录在内存中进行排序。而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。常见的内部排序算法有:…

LeetCode 1753. 移除石子的最大得分(优先队列)

文章目录1. 题目2. 解题2.1 优先队列2.2 脑筋急转弯1. 题目 你正在玩一个单人游戏,面前放置着大小分别为 a​​​​​​、b 和 c​​​​​​ 的 三堆 石子。 每回合你都要从两个 不同的非空堆 中取出一颗石子,并在得分上加 1 分。 当存在 两个或更多 …

基于Spring框架的Shiro配置

http://kdboy.iteye.com/blog/1103794 一、在web.xml中添加shiro过滤器 Xml代码 <!-- Shiro filter--> <filter> <filter-name>shiroFilter</filter-name> <filter-class> org.springframework.web.filter.Delegating…