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

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

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

;積極、消極、中性等等經(jīng)典應(yīng)用:

、購物、社交、金融、機(jī)器人等。評(píng)論情感分析:正面or

(二分類)。實(shí)踐平

度AI實(shí)訓(xùn)平臺(tái)-AI

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

現(xiàn)象。模型選擇長(zhǎng)短期 (

LSTM)增強(qiáng)了其處理遠(yuǎn)距離依賴問題的能力。縮短梯度

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

的數(shù)據(jù)訓(xùn)練集和測(cè)試集分別包含25000個(gè)已標(biāo)注過的

評(píng)論其中,

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

計(jì)算網(wǎng)絡(luò)輸出和損失函數(shù)。根據(jù)損失函數(shù)進(jìn)行反向誤差

,將網(wǎng)絡(luò)誤差從輸出層依次向前傳遞,并更新網(wǎng)絡(luò)中的參數(shù)。重復(fù)1~2步驟,直至網(wǎng)絡(luò)訓(xùn)練誤差達(dá)到規(guī)定的程度或訓(xùn)練輪次達(dá)到設(shè)定值。訓(xùn)練網(wǎng)絡(luò)準(zhǔn)備數(shù)據(jù)配置網(wǎng)絡(luò)訓(xùn)練網(wǎng)絡(luò)模型評(píng)估模型準(zhǔn)備數(shù)據(jù)導(dǎo)入必要的包準(zhǔn)備數(shù)據(jù)配置網(wǎng)絡(luò)訓(xùn)練網(wǎng)絡(luò)模型評(píng)估模型paddle.fluid-→

PaddlePaddle深度學(xué)習(xí)框架numpy------→

python基本庫,用于科學(xué)計(jì)算os----------→

python的模塊,可使用該模塊對(duì)操作系統(tǒng)進(jìn)行操作準(zhǔn)備數(shù)據(jù)獲取數(shù)據(jù)字典準(zhǔn)備數(shù)據(jù)配置網(wǎng)絡(luò)訓(xùn)練網(wǎng)絡(luò)模型評(píng)估模型數(shù)據(jù)字典,每個(gè)句子都是以一串整數(shù)來表示的,每個(gè)數(shù)字都是對(duì)應(yīng)一個(gè)單詞。所以這個(gè)數(shù)據(jù)集就會(huì)有一個(gè)數(shù)據(jù)集字典,這個(gè)字典是訓(xùn)練數(shù)據(jù)中出現(xiàn)單詞對(duì)應(yīng)的數(shù)字標(biāo)簽。上述代碼中,word_dict是一個(gè)字典序列,是詞和label的對(duì)應(yīng)關(guān)系。每行是如('limited':1726)的對(duì)應(yīng)關(guān)系,該行表示單詞limited所對(duì)應(yīng)的label是1726。準(zhǔn)備數(shù)據(jù)訓(xùn)練數(shù)據(jù)提供器paddle.dataset.imdb.train()表示獲取imdb的訓(xùn)練集paddle.reader.shuffle()表示每次緩存BUF_SIZE個(gè)數(shù)據(jù)項(xiàng),并進(jìn)行打亂paddle.batch()表示按批次

亂序后的數(shù)據(jù),批次大小為BATCH_SIZE訓(xùn)練數(shù)據(jù)集準(zhǔn)備準(zhǔn)備數(shù)據(jù)配置網(wǎng)絡(luò)訓(xùn)練網(wǎng)絡(luò)模型評(píng)估模型準(zhǔn)備數(shù)據(jù)測(cè)試數(shù)據(jù)提供器paddle.dataset.imdb.test()表示獲取imdb的測(cè)試集paddle.batch()表示按批次

亂序后的數(shù)據(jù),批次大小為BATCH_SIZE測(cè)試數(shù)據(jù)集準(zhǔn)備準(zhǔn)備數(shù)據(jù)配置網(wǎng)絡(luò)訓(xùn)練網(wǎng)絡(luò)模型評(píng)估模型配置網(wǎng)絡(luò)定義網(wǎng)絡(luò)在網(wǎng)絡(luò)的開始同樣是經(jīng)過一個(gè)embedding接口,接著是一個(gè)全連接層,緊接的是一個(gè)dynamic_lstm長(zhǎng)短期記接口,有這個(gè)接口,

很容易就搭建一個(gè)長(zhǎng)短期

網(wǎng)絡(luò)。然后是經(jīng)過兩個(gè)序列池操作,該序列池的類型是最大化。最后也是一個(gè)大小為2的輸出層。準(zhǔn)備數(shù)據(jù)配置網(wǎng)絡(luò)訓(xùn)練網(wǎng)絡(luò)模型評(píng)估模型配置網(wǎng)絡(luò)定義數(shù)據(jù)層準(zhǔn)備數(shù)據(jù)配置網(wǎng)絡(luò)訓(xùn)練網(wǎng)絡(luò)模型評(píng)估模型fluid.layers.data():配置數(shù)據(jù)層張量words:為詞的ID,所以數(shù)據(jù)類型為int64,lod_level=1表示數(shù)據(jù)屬于序列數(shù)據(jù),默認(rèn)為0獲取分類器配置網(wǎng)絡(luò)定義損失函數(shù)準(zhǔn)備數(shù)據(jù)配置網(wǎng)絡(luò)訓(xùn)練網(wǎng)絡(luò)模型評(píng)估模型交叉熵?fù)p失函數(shù)在分類任務(wù)上比較常用。定義了一個(gè)損失函數(shù)之后,還要對(duì)它求平均值,因?yàn)槎x的是一個(gè)Batch的損失值。同時(shí)

還可以定義一個(gè)準(zhǔn)確率函數(shù),這個(gè)可以在

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

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

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

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

(list[str])

–推理(inference)需要feed

的數(shù)據(jù)第三個(gè)參數(shù):

_vars

(list[Variable])

–保存推理(inference)結(jié)果的

Variables第四個(gè)參數(shù):executor

(Executor)

executor

保存inference

model準(zhǔn)備數(shù)據(jù)配置網(wǎng)絡(luò)訓(xùn)練網(wǎng)絡(luò)模型評(píng)估模型save_inference_model()構(gòu)建一個(gè)專門用于推的Program,然后executor把它和所有相關(guān)參數(shù)保存到dirname中模型評(píng)估觀察訓(xùn)練過程中間結(jié)果如下:觀察到模型的誤差在降低,而準(zhǔn)確率在提高。接下來可以使用該模型進(jìn)行準(zhǔn)備數(shù)據(jù)配置網(wǎng)絡(luò)訓(xùn)練網(wǎng)絡(luò)模型評(píng)估模型模型創(chuàng)建

數(shù)據(jù)先定義三個(gè)句子,第一句是中性的,第二句偏向正面,第三句偏向

。然后把這些句子

到一個(gè)列表中。將要

的數(shù)據(jù)轉(zhuǎn)換成張量準(zhǔn)備數(shù)據(jù)配置網(wǎng)絡(luò)訓(xùn)練網(wǎng)絡(luò)模型評(píng)估模型數(shù)據(jù)處理模型準(zhǔn)備數(shù)據(jù)配置網(wǎng)絡(luò)訓(xùn)練網(wǎng)絡(luò)模型評(píng)估模型模型load_inference_model()這個(gè)函數(shù)的返回有三個(gè)元素的元組Program是一個(gè)

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論