吳昔遙 劉欣凱 王孝杰








【摘要】? ? 本文通過爬蟲獲取酒店評論數據,對數據進行預處理,包括數據清洗、評論內容分詞等。為了模型性能更優,本文對數據進行特征工程,將其分為兩步:一、使用主成分分析法進行數據降維;二、使用卡方檢驗篩選特征。接下來構建分別決策樹和隨機森林算法并使用處理好的數據進行訓練,通過測試集計算出兩種算法的ROC性能曲線,發現隨機森林算法相比決策樹有著更好的性能,滿足酒店評論情感分析的需求。
【關鍵詞】? ? 隨機森林? ? 機器學習? ? 評論分析? ? 機器學習
引言
隨著互聯網的迅速發展,人們越來越習慣于網購,很多人外出住宿都會網上訂購酒店,產生了大量的在線評論[6]。評論信息作為只有入住過的顧客親身體驗后的信息,很快就變成了人們看重的酒店服務質量指標?,F在去哪兒網是中國最大的旅游平臺之一,其中的在線評論由用戶原創且能互動,因此這些評論信息具有很大的挖掘意義[1]。
本文以去哪兒網上的酒店評論信息為實驗數據進行信息的挖掘,得到酒店情感分析模型。
一、 數據爬取和預處理
(一)數據爬取
Scrapy是一個爬取網站數據,提取結構性數據而編寫的Python框架, 廣泛利用于數據挖掘、信息處理等領域。本文我們使用Scrapy對去哪兒網的酒店信息進行爬取。
通過觀察發現,漢庭酒店的某城市下(如廊坊)的所有酒店可在城市頁面得到,具體頁面情況如圖1所示。通過跳轉每一個酒店的頁面來爬取酒店的基本信息,包括城市、名稱、地址、房間數等;然后爬取酒店的評論信息和評分情況,包括綜合評分、性價比評分、環境衛生評分等。最終我們得到需要進行分析的數據,部分參數如表1[2]。
(二)數據預處理
在爬取完相關數據后,需要對數據做一些清洗和預處理,才能做進一步的可視化和建立算法。對數據使用pandas進行導入后,進行一系列的預處理操作,例如對數據進行連接匯總;對省和市的名稱進行清洗,并去除省和市映射的重復值;對一些數據進行清洗,轉化為數值類型。經過處理后的數據集包括434400條樣本,樣本包含四個屬性,如表2所示[3]。
除上述基本操作外,最重要的操作是將評論信息是用jieba進行分詞和關鍵詞統計。jieba是一款非常流行中文開源分詞包,具有速度快、準確、可擴展等特點,目前主要支持python,其他語言也有相關版本。它支持多種分詞模式、繁體分詞、自定義詞典等功能。本文將所有評論按照不同評分分組,將評論分成中文的詞語并進行詞性標注,返回評分、詞語、詞頻。處理后的結果輸出到csv文件進行保存[4]。
(三)中文特征構造
在數據中評論的評分為1-5,本文將4和5分定義為好評,1和2定義為差評,將評分為3的評論全部刪除。評論中分詞后的詞語實際上有著一些沒有意義的詞語,通過載入jieba停用詞庫進行排除。除此之外還包含一些并無實際意義的特殊字符也需要對其進行篩除,僅保留完全由中文字符組成的詞語。其中詞頻最高的前二十個詞如圖2所示。
TF-IDF是一種對關鍵詞進行統計和分析的方式,被廣泛用于預估一個詞在文件或語料庫中的重要程度。一個詞的重要程度跟它在文章中出現的次數成正比,跟它在語料庫出現的次數成反比。此方法能有效地避免常用詞對關鍵詞的影響,提高關鍵詞與文章之間的相關性。TF指的是某一個詞在文章中出現的總次數,通常表示為TF = 某詞在文檔中出現的次數/文檔的總詞量,這樣可以防止結果偏向過長的文檔。IDF逆向文檔頻率,包含某詞語的文檔越少,IDF值越大,說明該詞語的區分能力越強。
本文使用一個向量化器將文本轉換為TF-IDF矩陣。通過設置文檔中的停用詞,使得停用詞不納入計算范圍,提高算法的精確性。
二、評論情感分類算法建立
(一)特征工程
模型訓練前對數據進行劃分,訓練集為253047條評論,測試集為108450條評論。每一條數據由評論id和評論內容組成。使用TF矩陣對數據進行編碼轉換,得到1000維的特征向量。
特征工程是從原始數據中提取特征的過程,轉化后的數據,可以讓模型更好的擬合問題。經過處理,數據已經轉化為1000維的特征向量,通過主成分分析法(PCA)進行數據的降維,減少冗余信息造成的誤差。畫出所有1000個特征變量卡方值的直方圖,如圖3所示。可以看出,大部分特征的卡方值都在1000以下,即預測能力較弱,并不適合進行模型的訓練。
使用卡方檢驗選取預測能力最強的100個特征變量,并按照卡方值從大到小排序,前二十個特征向量如圖4所示。
(二)算法建立
決策樹是將數據分為不同的區域,每個區域有獨立參數的算法。它基于實例的歸納學習,從訓練樣本中提煉出樹型模型。決策樹生成分為特征選擇和決策樹生成。特征選擇指從訓練集選擇合適的特征為分裂標準。決策樹生成指根據特征評估,從上到下遞歸生成子樹,直到數據集不可分[8]。決策樹模型結構較簡單,訓練速度很快,但性能一般。訓練時指定決策樹的相關超參數防止過擬合,決策樹最大深度為4,葉子結點最小樣本為500。使用特征構建完的決策樹如圖5所示。
隨機森林是將多棵樹聯系起來的集成學習算法,它的基本思想是袋裝采樣和決策樹。每棵決策樹都是一個分類器,而隨機森林正式集成了所有分類器的結果,以最靠譜的預測類別作為最終的輸出。與支持向量機、BP神經網絡等算法相比,隨機森林具有更低的錯誤率,更不易被數據噪聲所影響,減少了過擬合,體現了集成學習算法的優越性[7]。訓練時對隨機森林的參數進行設置,決策樹數量為100,決策樹的最大深度為4,葉子節點至少包含100個樣本。
該分類問題是一個類的分布具有不平衡性,這會損害分類模型的性能。將多數類的樣本降采樣,使多數類的樣本數量與少數類達到一致。
在機器學習中,分類器性能評估方法受到了廣泛關注。ROC曲線是選擇特征參數及分類閾值的高效工具,可以可視化地評估分類器性能,從而進行模型選擇[9]。訓練完成后得到模型在測試集上的性能分析,我們發現此時因為樣本比例不均衡,此時精確度并不是一個很好的性能指標,改用ROC曲線來衡量模型性能[9]。
最后得到分別在決策樹、隨機森林和降采樣后的ROC曲線,如圖6所示。根據ROC曲線看出,隨機森林算法在評論情感分析時有著較好的性能[5]。
三、結束語
本文通過爬蟲得到酒店評論數據,進行數據預處理和特征工程等過程。使用處理好的數據進行隨機森林算法和決策樹算法的構建,通過對比ROC曲線得出隨機森林算法相比決策樹有著更好的性能,滿足酒店評論情感分析的需要。
參? 考? 文? 獻
[1]胡譯文. 基于情感傾向的酒店評價分析與研究[D].哈爾濱工程大學,2018.
[2]王冬旭. 基于Python的旅游網站數據爬蟲研究[D].沈陽理工大學,2020.
[3]易小群. 面向智慧出行的酒店評論數據可視化技術研究與實現[D].西南交通大學,2019.
[4]王鴿. 中文產品評論的情感分析與觀點識別技術的研究[D].山東科技大學,2018.
[5]呂結紅. 基于文本挖掘的酒店在線評論研究[D].華中師范大學,2020.
[6]熊偉,郭揚杰.酒店顧客在線評論的文本挖掘[J].北京第二外國語學院學報,2013,35(11):38-47.
[7]仉文崗,唐理斌,陳福勇,楊甲鋒.基于4種超參數優化算法及隨機森林模型預測TBM掘進速度[J].應用基礎與工程科學學報,2021,29(5):1186-1200.
[8]李鵬,雷雨秋,劉宗杰,楊圓,邵明鑫,周瑋.基于決策樹算法的斷路器彈簧操動機構振動診斷技術[J].高壓電器,2021,57(9):1-8+18.
[9]董元方, 李雄飛, 李軍,等. 基于分辨粒度的gROC曲線分析方法[J]. 軟件學報, 2013,(1):109-120.