刁天宸 張俊坤 陳堯 李煒明



摘 要:中文文本情感分類應用是商家面對用戶改進產品的一種重要手段。傳統機器學習中one hot編碼效率低下且向量十分稀疏,維度很高。文章通過詞嵌入(word embedding)和循環神經網絡(RNN),結合精確篩選的數據集,構建了針對用戶評論的中文文本情感分類模型,在亞馬孫商品評論數據集以及電影數據集上實驗結果表明,使用該分類器,實際預測精度達99.32%,能較好地為商家提供用戶情感分類服務,便于商家分析產品反饋。
關鍵詞:循環神經網絡;詞嵌入;情感分類;中文文本
0 引言
中文文本情感分類是自然語言處理領域中一個重要研究方向。隨著信息技術的逐步發展而帶動的電子商業的繁榮,面對每天數百萬級的用戶評論,如何從如此巨大的數據集中,準確分類用戶評論情感并提取高價值的信息,成為企業和商家市場調研以及改進產品過程中極為重要的環節[1]。
本文通過詞嵌入(word embedding)和循環神經網絡(RNN)構建模型,會為中文文本返回0-1之間的情感傾向置信度。置信度越接近1,文本為積極情感可能性越高;置信度越接近0,文本為消極情感可能性越高。
1 相關工作
1.1 數據清洗
數據清洗的根本目的是為了刪除重復信息,糾正存在的錯誤,并保持數據一致性。本文采用亞馬遜商城評論數據集、online shopping數據集、豆瓣電影數據集。由于原數據集存在較多缺失值和重復內容,為了保證決策數據的精準性以及模型的預測和泛化能力,需要將這些重復內容和缺失值除去。
1.2 特征提取
特征提取是深度學習的重要步驟,往往好的特征選擇能達到更高的精度[2]。為了保證更高的精確度,本文通過機器加人工的方式篩選出情感傾向較為明顯的文本作為自定義詞典部分內容。篩選后總文本量為522 948行,篩選后的部分文本如表1所示。
1.3 ?中文詞典的構建
由于中文語意主要由詞語決定而不是單獨的漢字,因此需要對待訓練的中文文本進行分詞處理,并以此構建詞典。
本文字典由數字、英文字母、待訓練的中文文本構建。
(1)將Python字典中鍵0對應的值設為空字符串。
(2)將常用數字,英語字母直接添加至Python字典中,如:1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ。
(3)將待訓練的中文文本分詞和去標點。這里使用Python的Jieba中文分詞組件。Jieba分詞組件為開源分詞組件,主要使用動態規劃查找最大概率路徑,找出基于詞頻組合的最大切分組合。對未登錄詞組,采用HMM語言模型[3],以修正分詞效果。Jieba分詞有4種分詞模式,本文采用精確模式對清洗過后的數據集進行分詞,相關函數為jieba.cut()。
經如上處理,最終得到字典鍵值對261 089對,部分字典內容如表2所示。
1.4 ?中文編碼
由于機器不能識別自然語言而只能將向量(數字數組)作為輸入數據,因此需要對文本進行向量化(將字符串轉為數字),再將其輸入模型。傳統One-hot的編碼得到的向量是二進的、稀疏的,緯度很高。為了規避以上問題,本文采用詞嵌入(word embedding)編碼方式,這種編碼較One-hot編碼更加高效且密集,使得相似的詞組具有相似的編碼,且操作人員不必手動指定編碼。
本文編碼內容具體如下:(1)將特征提取后的文本保存為Python列表,部分列表如表3所示。(2)對列表中的句子進行分詞,并查找詞語對應的中文詞典索引,將其保存為NumPy數組,部分NumPy數組如表4所示。
2模型構建
本文模型基于循環神經網絡(Recurrent Neural Networks)所構建,網絡結構如表5所示。
2.1 ?Embedding層
Embedding層是模型的輸入層,是表示一個句子的實數矩陣。Embedding層中每一行表示一個詞組向量,行數為一句話中的詞組數量。通過統計發現,大多數文本長度未超過400詞(因本文設置基準長度為400),將每一條原文文本表示為400×64的實數矩陣。
2.2 ?Bidirectional層
為了克服常規RNN的限制,本文采用雙向神經網絡(BRNN)進行訓練。BRNN是將傳統RNN的狀態神經元拆分為兩部分,一部分負責positive time direction(forward states),另一部分負責negative time direction(backward states)。由于Forward states的輸出并不會連接到Backward states的輸入,因此與傳統RNN相比,BRNN的結構提供給了輸出層輸入序列中每一個點的完整的過去和未來的上下文信息,使得在任何時刻都能夠獲取到所有時刻的輸入信息。
3 ? 實驗驗證
3.1 實驗數據
本實驗數據由亞馬遜商城評論數據集,online shopping數據集,豆瓣電影數據集經處理后構成,總計693 573條,其中訓練數據集554 858條,測試數據集138 715條。
3.2 實驗結果及分析
經多次實驗發現,RNN的迭代次數設置為5輪,模型即可達到最優。模型試驗結果如表6所示。
通過表6可以得出,本模型對用戶評論情感分類具有較高精確度,能為企業和商家分析產品回饋節約大量時間。
4?結語
中文文本情感分類是在自然領域中很熱門的方向,本文中構建了一種基于循環神經網絡(RNN)的模型,經測試能較好地對用戶評論進行情感分析。
[參考文獻]
[1]繆亞林,姬怡純,張順,等.CNN-BiGRU模型在中文短文本情感分析的應用[J].情報科學,2021(3):1-6.
[2]張騰,劉新亮,高彥平.基于卷積神經網絡和雙向門控循環單元網絡注意力機制的情感分析[J].科學技術與工程,2021(1):269-274.
[3]宋祖康,閻瑞霞.基于CNN-BIGRU的中文文本情感分類模型[J].計算機技術與發展,2020(2):166-170.
(編輯 姚 鑫)