情感分析可能是對自然語言處理中最常見的應用(之一)。作者認為(從企業的角度來講),我們無需強調對它所服務的用戶或潛在用戶情感分析的重要性。所以我們現在要做的是使用遞歸神經網絡在IMDB數據集中訓練電影評論分類器。如果你想深入學習情感分析,這會是一篇很好的文章。
數據
我們將使用遞歸神經網絡,特別是LSTM,在Keras進行情感分析。使用Keras是因為它有一個內置的IMDb電影評論數據集,這正是我們所需要的。
這裡需要補充的是:LSTM(Long Short-Term Memory)是長短期記憶網絡,是一種時間遞歸神經網絡,適合於處理和預測時間序列中間隔和延遲相對較長的重要事件。LSTM 已經在科技領域有了多種應用。基於 LSTM 的系統可以學習翻譯語言、控制機器人、圖像分析、文檔摘要、語音識別圖像識別、手寫識別、控制聊天機器人、預測疾病、點擊率和股票、合成音樂等等任務。
在訓練和測試數據中設置詞彙表大小和負載。
加載數據集,其中包含著25000個訓練樣本和25000個測試樣本。
檢查樣品及其標籤。
需要注意的是,影評被存儲為整數序列。上圖是預先分配給每個單詞的單詞ID,其中標籤是整數。(0表示負數,1表示正數)。
我們可以通過imdb.get_word_index()找回評論中的原始單詞(即未經編碼的單詞)。
最大審查長度和最低審查長度。
最長審查時間:2697
最低審查時間:14
PAD序列
為了將這些數據輸入到RNN中,所有輸入文檔都必須具有相同的長度。我們需要通過截斷較長的評論並將較短的評論填充為空值(0)。將最大評審長度限制為max_word。我們可以使用Keras中的PAD_Seques()函數來實現這一點。現在,我們要把max_word設置為500。
情感分析的RNN模型設計
我們在下面的代碼單元中開始構建我們的模型架構。我們從Keras導入了一些你可能需要的圖層,但你也可以使用你喜歡的其他圖層。
需要強調的是,我們輸入的是最大長度max_word的單詞序列(從技術上講,是單詞ID),輸出是二進制情感標籤(0或1)。
總之,我們的模型是一個簡單的RNN模型,它包含一個嵌入層、1個LSTM層和1個密集層。裡面有213301個需要訓練的參數。
訓練和評估我們的模型
我們首先需要通過指定我們希望在訓練時使用的損失函數和優化器以及任何我們想要測量的評估指標來編譯我們的模型。指定適當的參數時,參數中至少有一個要符合國際標準。
一旦編譯完畢,我們就可以開始訓練了。需要強調的是,有兩個重要的訓練參數需要指定 ,即批處理大小和訓練次數。因為這兩個參數與我們的模型體系結構一起決定了訓練的總時間。
一旦我們訓練好了我們的模型,就該看看它的測試數據表現如何了。
現在我們通過度量=['accuracy'],分數[1]表示準確性。
測試準確度:0.86964
總結
我們有幾種方法可以建立我們的模型。通過對不同的體系結構、層次和參數進行實驗,我們可以繼續嘗試和提高模型的準確性。
閱讀更多 AI中國 的文章