潘紅麗
(西安航空學院外國語學院,陜西西安 710077)
隨著人們在互聯網上發布的信息越來越多,如何篩選其中的有用信息尤為重要,傳統的文本分析效果有限,無法及時處理大量數據。因此,建立有效的英語情感分析體系[1]變得日趨重要。
自然語言處理(NLP)旨在使用計算資源從語言數據(即語音和文本)中提取重要特征,以結構化形式對數字化帶注釋的語言數據進行處理,以提供可供機器分析使用的信息。近年來,深度學習算法已成功解決了各個領域的問題,例如圖像分類、機器翻譯、語音識別、文本到語音的生成以及其他相關領域,這些領域的進步促使其通過計算機分析方法了解、分析人類情感成為可能。
文中基于遞歸神經網絡(RNN)網絡,設計了一種英語語義分析方法。RNN[2]可以提取文本中所有單詞的信息,長短期記憶(LSTM)神經網絡作為一種RNN 網絡結構[3],能夠準確識別文本數據的長短模式,精準識別真實隨機的英語文本包含的情感信息。
單詞之間的拓撲關系對文本情感分析至關重要,基于遞歸神經網絡(RNN)的語言模型較為適合處理文本序列數據。RNN 由3 個模塊組成,分別是輸入層、隱藏層與輸出層[4]。在RNN 模型中,時間輸入層與時間隱藏層匯總為一個新的輸入層,同時也作為時間t處的隱藏層。RNN 的循環結構可使隱藏層保留先前單詞中的所有信息,以提高識別單詞之間順序關系的能力[5]。
RNN 模型通過時間優化算法(BPTT)進行的反向傳播中存在過多展開狀態層,這會導致訓練時歷史信息梯度衰減[6]。文中采用LSTM 來避免模型對詞語的長期依賴,其結構如圖1 所示。

圖1 單個單元的LSTM存儲模塊
LSTM 的計算過程主要包括4 個步驟:①計算忘記門與輸入門的值;②更新LSTM 單元的狀態[7];③計算輸出門的值;④更新整個單元的輸出。詳細步驟如下公式所示,輸入門由式(1)計算得出。

忘記門由式(2)計算得出:

忘記門單元狀態由式(3)計算得出:

輸出門由式(4)計算得出:

輸出門單元狀態由式(5)計算得出:

在上述函數中,s(·)是Sigmoid 型函數[8],h(·)是Tanh 函數。
具有LSTM 的RNN 可看作是傳統RNN 語言模型的改進模型,其將文本語句作為輸入序列來計算每個模型的誤差。但當文本序列信息較長時,帶有LSTM 的RNN 模型可以有效克服序列信息衰減問題[9]。
對于英語句子,首先應用分詞標準CRF++-0.58將句子轉換為分詞;然后對LSTM 進行正向計算,按照從左到右的順序依次搜索句子中的分詞,輸出單詞在概率時間t之前的單詞序列概率[10];最終通過所有單詞的聯合分布概率來測量句子的誤差值,較高的聯合分配概率可以有效降低文本語句的錯誤值。
在訓練階段,將訓練數據根據其情感標簽分為多個種類,針對每個種類的數據,分別訓練LSTM 模型,并產生多個LSTM 模型,將每個LSTM 模型用于相應的情感評論。為了預測新輸入評論的情感偏向,在訓練階段獲得的LSTM 模型將在新輸入評論上進行評估,并給出檢測誤差值。誤差值最小的模型被指定為新輸入評論的情感類別。
訓練階段的主要過程如圖2 所示。其中,數據分為3 類:積極、消極與中性。

圖2 情感偏向分類流程圖
與傳統的RNN 語言模型相比,具有LSTM 的RNN 可以完全覆蓋較長的句子[11],其在多次驗證實驗中表現均優,尤其是對于帶有連接詞的英語語句結構。
文中使用交叉熵損失加L2 調節懲罰作為優化目標,并使用小型批處理SGD 的優化程序Ada delta將優化目標最小化[12]。使用Ada delta而不是Adam 進行最小化優化的原因是,實驗發現通過Ada delta 優化的LSTM-RNN 可以實現更高的穩定性,性能較Adam 更優[13]。實驗相關的參數詳細信息如表1所示。

表1 RNN網絡訓練參數
自然語言推理(NLI)的目的是建立前提句子與相應假設句子之間的語義關系,語義關系包括必然、中立或矛盾。文中使用基準斯坦福自然語言推理(SNLI)數據集[14]比較了不同的模型。
遵循Bowman 的標準程序,文中推出了兩個句子編碼模型,分別帶有前提句子與假設句子的綁定參數。給定假設前提的輸出編碼sp與sh,其關系可表示為sp、sh、sp-sh與sp?sh的串聯。將其饋送到300 D 完全連接層中,然后反饋入3 個單元的輸出層與Softmax,用于計算NHI 模型3 種關系的概率分布。
文中使用基于LSTM 的RNN 網絡需要帶有注釋的語言數據集,為了訓練、開發、培訓與評估該系統,從各大英文網站收集相關數據,使用Beautiful Soup 2開發了一個自定義搜尋器[15],使用可擴展Python 庫從指定網站提取與解析結構化信息。
與大多數NLP 系統相同,文中首先使用數據預處理簡化輸入,并以適合計算機處理消耗的運算資源減少特征空間。文中直接在帶注釋的原始數據上進行文本預處理:
1)刪除URL:眾多新聞文本均包含指向相關信息的鏈接,由于這些URL 不傳達任何真實含義,因此將其刪除。
2)刪除標點符號:由于每個單詞均以一行空格隔開,標點符號不表示任何實際含義,因此將其刪除。
3)文本分割:文本分割是將每個有意義的實體單位(如單詞、短語、句子)分開的處理方法。由于需要將句子中的每個單詞及其相關的含義標簽排成一行,因此使用了Python 字符串拆分功能來標記句子中的單詞。
類似于監督式機器學習方法,文中將數據集分為訓練數據與測試數據[16]。然后使用訓練數據對模型進行訓練,以學習網絡的相關參數,其次,將測試數據輸入模型以評估性能。因為數據集的大小有限,所以此處不使用驗證數據。同時,由于系統考慮了與語言無關的注釋方案,因此可以使用K-fold 驗證來提高數據集的性能。
TensorFlow 2 是一個用于數值計算與大規模機器學習的開源庫,其支持絕大多數機器學習、深度學習模型及算法,可以通過通用接口使用,文中選取其作為RNN 網絡的后端工作。Theano 4 是執行大量運算工作的Python 庫,支持計算、優化與高維數組有關的復雜數學計算,其也被用作后端來改善網絡含義背景計算。Scikit-Learn5 Python 庫具有簡潔、統一以及流線型的API,并支持一系列機器學習算法的實例化,文中還使用其來處理與簡化網絡。
為訓練模型,文中使用了4 種類型的數據:網站評論、購物網站、旅行評論網站與英文電影評論。考慮到模型訓練的錯誤率以及計算速度,文中采用2013 年Graves 的開源C++代碼庫,在具有4 GB RAM、Intel Core2 Quad 的個人計算機上進行測試,GPU為NVIDIA 2 GB RAM GTX 560。實驗流程如圖3所示。

圖3 驗證實驗流程
經過必要的數據清理后,購物網站的評論被手動分為3 類:積極情緒、中性情緒與消極情緒。樣本數據集的總數為39 000,3 個類別的比例為1∶1∶1。選擇每個種類的3 000 個隨機樣本作為測試集,而其他樣本用作訓練集。評論分為兩類:積極情緒與消極情緒,積極情緒訓練數據的數量為19 493;消極情緒訓練數據的數量為23 955,積極情緒測試數據的數量為10 000;消極情緒測試數據的數量為8 000。
此外,將英文旅行網站與英文電影評論網站的評論手動分為兩類:積極情緒與消極情緒。對于來自旅行網站的數據集,每個類別的訓練數據數量為6 000,每個類別的測試數據數量為2 000。英文電影評論數據中,訓練數據與測試數據的數量均為12 500。
RNN 模型中展開狀態層的數量會影響訓練的準確性,更多的展開狀態層通常會帶來更優的結果,但同時也會帶來較高的計算復雜性。LSTM 結構的先天優勢使其需要更少的展開狀態層數,即可獲得與常規RNN 相當的結果。因此在實驗中,將模型中的展開狀態層數設置為10。
在每個數據集上,同時使用具有LSTM 的RNN與常規RNN。情緒分析結果如表2、表3 所示。

表2 LSTM-RNN網絡識別結果

表3 傳統RNN識別結果
分析表2 與表3 結果可知,與傳統RNN 相比,帶有LSTM 的RNN 可以帶來更優的準確率與召回率。具體而言,具有LSTM 的RNN 可以識別較多結構為“Although…But…”“,Not only…but also…”、“But”等的文本實例,因此,LSTM-RNN 相較傳統RNN 更優地標識出了一些長語句。
4 種不同模型在不同長度的英文句子上的表現如圖4 所示。在大多數評論句子的長度范圍(5,12)內,LSTM-RNN 明顯優于其他模型。同時,對于在(25,38)范圍內稍長的句子或段落,LSTM-RNN 也顯示出較為理想的性能。

圖4 細粒度情感分析準確性與句子長度的關系
文中提出了一種基于改進RNN 的語言模型LSTM,其涵蓋了所有歷史序列信息,性能優于常規RNN,可用于實現英文文本情感屬性的多分類,且較傳統的RNN 可以更準確地識別出文本情感屬性。
神經網絡的訓練工作需要強大的理論支撐與計算機硬件性能支持,后續的工作重點將是如何設計模板化的神經網絡訓練方案,使用云端服務器訓練神經網絡模型。