自然語言處理經典應用實踐電影評論情感分析_第1頁
自然語言處理經典應用實踐電影評論情感分析_第2頁
自然語言處理經典應用實踐電影評論情感分析_第3頁
自然語言處理經典應用實踐電影評論情感分析_第4頁
自然語言處理經典應用實踐電影評論情感分析_第5頁
已閱讀5頁,還剩18頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

任務介紹情感分析:在自然語言處理中,情感分析一般是指判斷一段文本所表達的情緒狀態(tài),屬于文本分類問題。文本:一句話、一個段落、一個文檔情緒:正面、

;積極、消極、中性等等經典應用:

、購物、社交、金融、機器人等。評論情感分析:正面or

(二分類)。實踐平

度AI實訓平臺-AI

Studio。模型選擇循環(huán)神經網絡(RNN)x:當前狀態(tài)下數據的輸入h:上一個節(jié)點的輸出y:當前節(jié)點的輸出,y常使用h’投入到線性層,然后使用softmax進行分類得到需要的數據h’:傳遞到下一節(jié)點的輸出,h’與x、h有關分析1:自然語言是典型的序列數據,RNN是一種能對序列數據進行精確建模的有力工具。分析2:對于較長的序列數據,容易出現梯度

現象。模型選擇長短期 (

LSTM)增強了其處理遠距離依賴問題的能力??s短梯度

路徑。遺忘門:它決定了上一時刻的單元狀態(tài)c_t-1有多少保留到當前時刻c_t輸入門:它決定了當前時刻網絡的輸入x_t有多少保存到單元狀態(tài)c_t輸出門:控制單元狀態(tài)c_t有多少輸出到LSTM的當前輸出值h_t數據集IMDB情感分析數據集短文本情感分析二分類數據集,每條樣本是一個txt文件,包括訓練集,測試集,和沒有

的數據訓練集和測試集分別包含25000個已標注過的

評論其中,

評論的得分小于等于4,正面評論的得分大于等于7,滿分10分。PaddlePaddle提供了獲取imdb數據集的接口:paddle.dataset.imdb自動字典、訓練數據、測試數據實踐流程實踐流程準備數據配置網絡定義網絡定義損失函數定義優(yōu)化算法訓練網絡模型評估模型要通過以下幾個步驟定義好模型結構之后,進行模型訓練。網絡正向

計算網絡輸出和損失函數。根據損失函數進行反向誤差

,將網絡誤差從輸出層依次向前傳遞,并更新網絡中的參數。重復1~2步驟,直至網絡訓練誤差達到規(guī)定的程度或訓練輪次達到設定值。訓練網絡準備數據配置網絡訓練網絡模型評估模型準備數據導入必要的包準備數據配置網絡訓練網絡模型評估模型paddle.fluid-→

PaddlePaddle深度學習框架numpy------→

python基本庫,用于科學計算os----------→

python的模塊,可使用該模塊對操作系統(tǒng)進行操作準備數據獲取數據字典準備數據配置網絡訓練網絡模型評估模型數據字典,每個句子都是以一串整數來表示的,每個數字都是對應一個單詞。所以這個數據集就會有一個數據集字典,這個字典是訓練數據中出現單詞對應的數字標簽。上述代碼中,word_dict是一個字典序列,是詞和label的對應關系。每行是如('limited':1726)的對應關系,該行表示單詞limited所對應的label是1726。準備數據訓練數據提供器paddle.dataset.imdb.train()表示獲取imdb的訓練集paddle.reader.shuffle()表示每次緩存BUF_SIZE個數據項,并進行打亂paddle.batch()表示按批次

亂序后的數據,批次大小為BATCH_SIZE訓練數據集準備準備數據配置網絡訓練網絡模型評估模型準備數據測試數據提供器paddle.dataset.imdb.test()表示獲取imdb的測試集paddle.batch()表示按批次

亂序后的數據,批次大小為BATCH_SIZE測試數據集準備準備數據配置網絡訓練網絡模型評估模型配置網絡定義網絡在網絡的開始同樣是經過一個embedding接口,接著是一個全連接層,緊接的是一個dynamic_lstm長短期記接口,有這個接口,

很容易就搭建一個長短期

網絡。然后是經過兩個序列池操作,該序列池的類型是最大化。最后也是一個大小為2的輸出層。準備數據配置網絡訓練網絡模型評估模型配置網絡定義數據層準備數據配置網絡訓練網絡模型評估模型fluid.layers.data():配置數據層張量words:為詞的ID,所以數據類型為int64,lod_level=1表示數據屬于序列數據,默認為0獲取分類器配置網絡定義損失函數準備數據配置網絡訓練網絡模型評估模型交叉熵損失函數在分類任務上比較常用。定義了一個損失函數之后,還要對它求平均值,因為定義的是一個Batch的損失值。同時

還可以定義一個準確率函數,這個可以在

訓練的時候輸出分類的準確率。配置網絡定義優(yōu)化算法準備數據配置網絡訓練網絡模型評估模型定義優(yōu)化方法,這里使用的時Adagrad優(yōu)化方法,Adagrad優(yōu)化方法多用于處理稀疏數據,設置學習率為0.002。配置網絡上述模型配置完畢后,得到兩個fluid.Program:fluid.default_startup_program()參數初始化操作會被寫入fluid.default_startup_program()fluid.default_main_program()用于獲取默認或全局main

program(主程序)。該主程序用于訓練和測試模型。fluid.layers中的所有l(wèi)ayer函數可以向default_main_program中添加算子和變量。是Fluid許多編程接口的缺省值。準備數據配置網絡訓練網絡模型評估模型訓練網絡創(chuàng)建訓練用Executor準備數據配置網絡訓練網絡模型評估模型定義數據

器定義運算場所,fluid.CPUPlace()和fluid.CUDAPlace(0)分別表示運算場所為CPU和GPU創(chuàng)建一個Executor實例Executor接收傳入的Program,并通過run()方法運行program訓練網絡開始訓練準備數據配置網絡訓練網絡模型評估在每輪訓練中:對于train_reader中的每次batch,執(zhí)行exe.run()運行執(zhí)行器開始訓練;喂入每個batch的訓練數據,fetch損失值。每40個batch打印一次損失值模型訓練網絡開始測試每40個batch,對于test_reader中每個batch的數據,執(zhí)行exe.run()運行執(zhí)行器開始測試;喂入每個batch的訓練數據,fetch損失值、準確率。計算每輪的誤差平均值、準確率平均值,并打印出來,以便能了解模型訓練效果準備數據配置網絡訓練網絡模型評估模型訓練網絡保存模型第一個參數:dirname

(str)–保存推理model的路徑第二個參數:feeded_var_names

(list[str])

–推理(inference)需要feed

的數據第三個參數:

_vars

(list[Variable])

–保存推理(inference)結果的

Variables第四個參數:executor

(Executor)

executor

保存inference

model準備數據配置網絡訓練網絡模型評估模型save_inference_model()構建一個專門用于推的Program,然后executor把它和所有相關參數保存到dirname中模型評估觀察訓練過程中間結果如下:觀察到模型的誤差在降低,而準確率在提高。接下來可以使用該模型進行準備數據配置網絡訓練網絡模型評估模型模型創(chuàng)建

數據先定義三個句子,第一句是中性的,第二句偏向正面,第三句偏向

。然后把這些句子

到一個列表中。將要

的數據轉換成張量準備數據配置網絡訓練網絡模型評估模型數據處理模型準備數據配置網絡訓練網絡模型評估模型模型load_inference_model()這個函數的返回有三個元素的元組Program是一個

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論