日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人工智能 > 循环神经网络 >内容正文

循环神经网络

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

發布時間:2024/9/15 循环神经网络 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 深度学习-Tensorflow2.2-RNN循环神经网络{11}-评论分类-25 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

什么是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的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。