什么是RNN?








代码

import tensorflow as tf
import matplotlib.pyplot as plt
%matplotlib inline
import numpy as np
import pandas as pd
import os
import re
# 显存自适应分配
gpus = tf.config.experimental.list_physical_devices(device_type='GPU')
for gpu in gpus:tf.config.experimental.set_memory_growth(gpu,True)
gpu_ok = tf.test.is_gpu_available()
print("tf version:", tf.__version__)
print("use GPU", gpu_ok) # 判断是否使用gpu进行训练


读取数据

data = pd.read_csv ("F:/py/ziliao/数据集/Tweets.csv")

data = data[["airline_sentiment","text"]] # 取出需要的列


data_p = data[data.airline_sentiment=="positive"] # 取出需要的评论
data_n = data[data.airline_sentiment=="negative"]
data_n = data_n.iloc[:len(data_p)] # 我们从差评里取出好评这么多数据让数据一致


数据预处理

# 创建新的数据
data = pd.concat([data_n,data_p])
len(data)



# 处理label
# 返回布尔值,把布尔值astype成int类型  赋值给review列
data["review"] = (data.airline_sentiment=="positive").astype("int")



处理评论文本

token = re.compile("[A-Za-z]+|[!?,.()]")# 编写一个正则取出A-Z a-z !?,.()
def reg_text(text):new_text = token.findall(text) # 提取字符new_text = [word.lower()for word in new_text] # 变成小写return new_text
data["text"] = data.text.apply(reg_text) # 字符处理后重新赋值给text

# 提取出文本中的唯一单词
word_set = set()
for text in data.text:for word in text:word_set.add(word)


# 构造一个 英文单词:索引
word_list = list(word_set) # 转换成列表

# 转换成 英文单词:数字索引 把所有数字+1 表示不从0开始数数
word_index = dict((word,word_list.index(word)+1) for word in word_list)

# 对数据集进行转换  如果未匹配到 0作为填充
data_ok = data.text.apply(lambda x:[word_index.get(word,0)for word in x])

max(len(x)for x in data_ok),min(len(x)for x in data_ok) # 查看评论长度

maxlen = max(len(x)for x in data_ok)
# 对所有评论安装最大长度进行填充 填充为0
data_ok = tf.keras.preprocessing.sequence.pad_sequences(data_ok.values,maxlen=maxlen)



搭建循环神经网络

model = tf.keras.Sequential() # 顺序模型
 # 最大单词格式  , 密集向量长度  , 评论的长度
model.add(tf.keras.layers.Embedding(max_word,50,input_length=maxlen))
model.add(tf.keras.layers.LSTM(64)) # 添加LSTM层 隐藏单元 64个 #超参数
model.add(tf.keras.layers.Dense(1,activation="sigmoid")) # 二分类激活函数sigmoid

# 编译
model.compile(optimizer="adam",loss="binary_crossentropy",metrics=["acc"])
# 训练
model.fit(data_ok,label, # 训练数据及labelepochs=10, # 训练步数batch_size=128, # 每次训练128个数据validation_split=0.2    # 从训练集中分割出20%作为测试集
)

深度学习-Tensorflow2.2-RNN循环神经网络{11}-评论分类-25相关推荐

  1. 深度学习 十四讲 循环神经网络例子--名字分类

    任务:根据输入的不同名字,分出所属国家 模型如下 数据两列:名字,国家 实现过程 准备数据 用ASCII表作为字典长度,字典长度为128 实际上这个77对应的是一个one_hot向量,这个向量一共有1 ...

  2. 深度学习小白专场之循环神经网络和递归神经网络

    深度学习小白专场之循环神经网络和递归神经网络 全连接神经网络和卷积神经⽹网络,都只能单独的去处理单个的输入,且前后的输入之间毫无关系.但是在一些任务中,我们需要更好的去处理序列的信息,即前后的输⼊之间 ...

  3. 第七章:Tensorflow2.0 RNN循环神经网络实现IMDB数据集训练(理论+实践)

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/LQ_qing/article/deta ...

  4. 动手学深度学习(文本预处理+语言模型+循环神经网络基础)

    文本预处理 文本是一类序列数据,一篇文章可以看作是字符或单词的序列,本节将介绍文本数据的常见预处理步骤,预处理通常包括四个步骤: 读入文本 分词 建立字典,将每个词映射到一个唯一的索引(index) ...

  5. 【动手学深度学习】李沐——循环神经网络

    本文内容目录 序列模型 文本预处理 语言模型和数据集 循环神经网络 RNN的从零开始实现 RNN的简洁实现 通过时间反向传播 门控循环单元GRU 长短期记忆网络(LSTM) 深度循环神经网络 双向循环 ...

  6. 《Python 深度学习》6.3 循环神经网络的高级用法 (代码)

    # 6.3 循环神经网络的高级用法 本节将介绍提高循环神经网络的性能和泛化能力的三种高级技巧.学完本节,你将会掌握 用 Keras 实现循环网络的大部分内容.我们将在温度预测问题中介绍这三个概念.在这 ...

  7. 动手学深度学习:6.4 循环神经网络的从零开始实现

    6.4 循环神经网络的从零开始实现 在本节中,我们将从零开始实现一个基于字符级循环神经网络的语言模型,并在周杰伦专辑歌词数据集上训练一个模型来进行歌词创作.首先,我们读取周杰伦专辑歌词数据集: imp ...

  8. 深度学习笔记七:循环神经网络RNN(基本理论)

    参考: RECURRENT NEURAL NETWORKS TUTORIAL, PART 1 – INTRODUCTION TO RNNS A Critical Review of Recurrent ...

  9. July深度学习之RNN循环神经网络

    RNN循环神经网络 一.简介 首先,为什么有BP神经网络和CNN,还要提出RNN? 因为传统的神经网络,包括CNN,它的输入和输出是互相独立的.但有些时候,后续的输出和前面的内容是相关的.比如,我是中 ...

最新文章

  1. Pymol(1.8.6)作图技巧之cartoon和surface镶嵌模型
  2. Windbg学习 (0x0013) 扩展命令-SOS
  3. 繁星代码生成器0.91版 【视频】
  4. Spring Security——OAuth 2.0登录——Google,GitHub,Facebook和Okta
  5. Student学生管理系统
  6. win10批处理改计算机名和ip地址,win10系统修改计算机IP地址的操作方法
  7. 【spring源码学习】spring的aop目标对象中进行自我调用,且需要实施相应的事务定义的解决方案...
  8. [转载]Memcached缓存服务的简单安装
  9. 计算机图形学研究与应用的最新进展,关于计算机图形学的发展及应用探究
  10. 现代通信原理A.1-a:仿真确定信号波形与频谱(Matlab版)
  11. IDEA 如果修改工作区的主题 也就是黑色背景和白色背景
  12. QTreeWidget使用
  13. postgis 栅格数据_postGIS教程
  14. 使用豆瓣源安装Django
  15. 一个优秀开发者如何才能变得伟大?
  16. 百度地图AK申请流程
  17. 面试时如何回答面试官的问题
  18. 老男孩-Python之路,Day2 - Python基础2
  19. 全文标明引文报告html,知网查重全文标明引文是什么意思
  20. ArcGis For JavaScript API Drawing Tool (绘图工具又称框选地图)

热门文章

  1. sql2008安装包_数据库SQL2008下载与安装图文详解
  2. CDATA和转义字符
  3. PHP判断上传文件类型
  4. java file类详解_Java File类详解及IO介绍及使用
  5. python小数乘法_Polymorph:支持几乎所有现有协议的实时网络数据包操作框架
  6. linux 实时 网口 速率_Linux 命令行网络端口速度测试
  7. 传智学员信息登记表html代码_IT兄弟连 HTML5教程 HTML5文字版面和编辑标签 使用HTML表格...
  8. goland go test 多个文件_这个代码怎么会编译不通过?Goland 新手常见问题解决:GOPATH 和 Go Modules 编译不成功...
  9. 计算机网络实验步骤华北电力大学,华北电力大学网络管理实验
  10. 【Centos 8】【Centos 7】腾讯云服务器 安装 docker