什么是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. 03_NoSQL数据库之Redis数据库:list类型
  2. JavaScript Array reverse 方法:颠倒数组中元素的顺序
  3. 安卓如何运行python_如何在android上运行Python代码?
  4. 马斯克超级计算机玩吃鸡,在50亿美元打造的计算机上运行《绝地求生大逃杀》会怎样?...
  5. html页面提交数据,利用servlet接收数据并写进xml中
  6. 史上最全 Python Re 模块讲解(三)
  7. 总结运行SSIS包的几种方式
  8. 现代c++之列表初始化/统一初始化
  9. 编译使用CEF2623遇到的错误解决办法
  10. JavaScript Array(数组)对象
  11. Windows api实现桌面任务栏隐藏\显示
  12. 二、es的可视化工具:Kibana及练习
  13. 长期不上班,人会废掉吗?
  14. mysql 1032 1062_MySQL 1032和1062跳过错误总结
  15. Android Studio中模拟器如何输入中文、将模拟器语言设置为中文
  16. 发送消息(SendMessage)常识普及
  17. (转)(异常分析) org.hibernate.MappingException: entity class not found
  18. 高性能Excel操作工具
  19. 初学者用Eclipse和IDEA哪个好用一点?
  20. Selenium学习(七) selenium IDE命令之 store系列详解

热门文章

  1. java 处理表单_java – 处理multipart / form-data输入
  2. js函数 every some map ()=a+b;
  3. android后台时不显示,Android后台下载问题
  4. ansa打开catia文件_关于CATIA文件格式的那些事儿
  5. 卸载mysql 安装_MySQL萌新第一季 第二话
  6. jq点击按钮获取php的值删除,通过jquery怎么移除点击事件
  7. Android无法运行AVD,android – 无法运行AVD(模拟器)
  8. 二等水准测量记录数据_公路水准测量培训道路放样测量学习
  9. Linux 利用yum源安装subversion(svn)客户端
  10. 启用Windows Server 2012的远程桌面