江蘇經(jīng)貿(mào)職業(yè)技術(shù)學(xué)院 劉成
為提高店鋪數(shù)字化運營水平,采用AdaBoost算法解決電商評論情感分類問題。在調(diào)用該算法中,采用樸素貝葉斯多分類器,在實驗過程中對比分析SAMME和SAMME.R的實現(xiàn)方式,實驗結(jié)果表明基于SAMME.R方式實現(xiàn)的MultinomialNB_AdaBoost算法可以有效對電商評論進(jìn)行情感分類,準(zhǔn)確率較高。
隨著我國電子商務(wù)的迅猛發(fā)展,當(dāng)前電商平臺競爭日益激烈,對于店鋪管理人員不僅要提高商品質(zhì)量,還提高數(shù)字化運營水平。以商品評論為例,店鋪管理人員可以對評論數(shù)據(jù)進(jìn)行挖掘,分析商品的質(zhì)量、服務(wù)、物流等存在的問題。另一方面,對于一些未知體驗產(chǎn)品,用戶為獲得產(chǎn)品信息,會重點觀察其他客戶對此商品的評論,并以此作為決策的重要依據(jù)。對于客戶來說,可以借鑒別人的購買歷史以及評論信息,更好的輔助自己制定購買決策。因此,通過利用數(shù)據(jù)挖掘技術(shù)針對客戶的大量評論進(jìn)行分析,可以挖掘出這些信息的特征,提高店鋪的數(shù)字化運營水平。對于用戶的評論,情感分類一般可以分為積極“消極”“積極”“中性”三種,在情感分析方法中,可以采用基于情感字典的方法,也可以采用機(jī)器學(xué)習(xí)的方式,如概率分類器、線性分類器等。文獻(xiàn)1提出基于正則化貪心森林算法進(jìn)行情感分析,文獻(xiàn)2提出基于LDA主題分析模型的電商平臺用戶評論數(shù)據(jù)情感分析[1-2]。
對于電商評論數(shù)據(jù),可采用爬蟲的方式,從商品的評論頁面獲取,在設(shè)置爬蟲的時候,可以設(shè)置IP代理池,防止被屏蔽。首先是確定帶處理的網(wǎng)頁,可以采用專業(yè)的網(wǎng)頁采集工具進(jìn)行采集。例如八爪魚工具,作為一款可視化免編程的網(wǎng)頁采集軟件,能夠從不同網(wǎng)站中快速提取規(guī)范化數(shù)據(jù),幫助用戶實現(xiàn)數(shù)據(jù)的自動化采集、編輯以及規(guī)范化,降低工作成本。同時,還提供云采集功能,相比其他采集軟件,云采集能夠做到更加精準(zhǔn)、高效和大規(guī)模的進(jìn)行數(shù)據(jù)采集。同時八爪魚工具也支持自定義采集過程中,可以在相關(guān)配置中設(shè)置,進(jìn)行制定化的數(shù)據(jù)采集[3]。
數(shù)據(jù)獲取之后,需要將其保存到本地文件中,方便后續(xù)的處理。對于電商評論數(shù)據(jù),在進(jìn)行情感分析之前,需要對其進(jìn)行特殊處理如數(shù)據(jù)去重、清洗等。常見預(yù)處理包含以下幾個方面:
(1)文本去重,電商平臺上有部分用戶,會設(shè)置自動評論等功能,該部分的評論內(nèi)容基本上高度相似,在處理的時候需要進(jìn)行去重操作。
(2)數(shù)據(jù)清洗,噪聲會降低模型的準(zhǔn)確性,需要去除文中的噪聲,比如鏈接、圖片等。
(3)構(gòu)建詞典,需要根據(jù)電商商品的特點,構(gòu)建一些專用停用詞庫,以及其他專業(yè)的相關(guān)。
(4)文本分詞,需要對原始文本進(jìn)行分詞操作,文本挖掘首先要以中文分詞為前提。目前常用的中文分詞軟件主要有BosonNLP、Jieba等工具。
(5)特征構(gòu)造,根據(jù)模型需要將本文進(jìn)行特征提出,將文本數(shù)據(jù)轉(zhuǎn)化為計算機(jī)可識別的數(shù)值型數(shù)據(jù)。
實現(xiàn)分類AdaBoost的兩種算法SAMME和SAMME.R,主要區(qū)別是基學(xué)習(xí)器權(quán)重的度量,SAMME使用對樣本集分類效果作為弱學(xué)習(xí)器權(quán)重 (原理中即為SAMME),而SAMME.R使用對樣本集分類的預(yù)測概率大小來作為弱學(xué)習(xí)器權(quán)重。在訓(xùn)練的時候SAMME.R速度更快。SAMME.R實現(xiàn)方式的AdaBoost算法,其算法偽代碼如表1所示。
表1 AdaBoost基于SAMME.R偽代碼Tab.1 AdaBoost is based on SAMME.R pseudocode
本模型采用AdaBoost算法來提升樸素貝葉斯的性能,在迭代訓(xùn)練的時候,根據(jù)訓(xùn)練結(jié)果,動態(tài)調(diào)整模型參數(shù),當(dāng)訓(xùn)練樣本xi分類錯誤,權(quán)重將增加,否則將減少。在處理文本的數(shù)據(jù)的時候,采用空間向量來表示樣本,對于每個待分類的樣本數(shù)據(jù)Xi,采用特征向量(WSi1,WSi2,...WSik,...,WSim)來表示該樣本,其中WSik為該文本中提取出來的Sik的權(quán)重。利用AdaBoost分類的時候,需要確定先驗概率P(cj)和條件概P(sik|cj)。
根據(jù)樸素貝葉斯原理,樸素貝葉斯公式有:
可以先驗概率P(cj),需要在分子上進(jìn)行加1操作,防止出現(xiàn)概率為0的情況,影響后面的計算。先后概率為
進(jìn)而每個特征基于類的條件概率P(sik|cj)計算公式如下:
其中,δ(sik,xi)為特征sik出現(xiàn)的次數(shù)。對測試數(shù)據(jù)進(jìn)行分類的時候,我們需要根據(jù)以上公式,計算出樣本每個類別對應(yīng)的后驗概率,然后取后驗概率最大的類別作為測試數(shù)據(jù)的輸出標(biāo)簽,公式如下:
在計算概率的時候,會進(jìn)行累乘操作,防止乘積算出來的概率太低接近于0,引入對數(shù)函數(shù)對其進(jìn)行優(yōu)化,改進(jìn)后的公式如下:
AdaBoost在進(jìn)行迭代訓(xùn)練的時候,每個訓(xùn)練樣本分配的權(quán)重為,然后將其引入?yún)?shù)P(sik|cj),公式最終為:
根據(jù)算法定義,隨著AdaBoost的每次迭代,樣本權(quán)重每次都有更新,樸素貝葉斯的先驗概率和后驗概率都有變化,對樸素貝葉斯分類器的分類產(chǎn)生了擾動,增加了樸素貝葉斯分類器的相異性。集成方法通過將多個分類器的分類結(jié)果組合起來,使最終分類器比最初的簡單分類器有更好的結(jié)果。同時,多分類器能夠解決單分類器的過擬合問題[4]。
本次實驗對電商評論進(jìn)行分析,分為按照“積極”“消極”“中性”進(jìn)行三分類。對于多分類的算法,AdaBoost的處理有多種方式,其中,以SAMME和SAMME.R效率較好。本文中將使用Sklearn庫中的MultinomialNB和AdaBoost進(jìn)行實驗,Sklearn封裝了SAMME和SAMME.R算法,在調(diào)用的時候可以直接將MultinomialNB傳入到AdaBoost算法中。本文實驗分為兩組,具體的配置參數(shù)如表2所示。
表2 分組AdaBoost參數(shù)配置Tab.2 Group AdaBoost parameter configuration
其中,base_estimator是基學(xué)習(xí)器,可以采用決策樹或者神經(jīng)網(wǎng)絡(luò)作為基學(xué)習(xí)器,默認(rèn)是決策樹。n_estimators是弱學(xué)習(xí)器的最大個數(shù),如果n_estimators太小,模型可能出出現(xiàn)欠擬合的情況,如果n_estimators太大,模型會出現(xiàn)過擬合的情況。在實際調(diào)參的過程中,常常將n_estimators和參數(shù)learning_rate一起考慮,如果learning_rate太小,就要適當(dāng)增大n_estimators參數(shù)。learning_rate是權(quán)重縮減系數(shù),為了防止模型出現(xiàn)過擬合情況,通常也會加入正則化項。Algorithm是實現(xiàn)分類Adaboost的兩種算法SAMME和SAMME.R。兩者的主要區(qū)別是基學(xué)習(xí)器權(quán)重的度量,SAMME使用對樣本集分類效果作為弱學(xué)習(xí)器權(quán)重,而SAMME.R使用對樣本集分類的預(yù)測概率大小來作為弱學(xué)習(xí)器權(quán)重。SAMME.R迭代一般比SAMME快,需要注意的是,如果參數(shù)Algorithm選擇的是SAMME.R,則我們的弱分類學(xué)習(xí)器還需要支持概率預(yù)測[5]。
通過實驗可以發(fā)現(xiàn),基于SAMME實現(xiàn)的AdaBoost模型,在訓(xùn)練和測試的過程中會出現(xiàn)上下波動的情況,如圖1所示。在訓(xùn)練集上準(zhǔn)確率能夠接近90%,在測試集上準(zhǔn)確率超過60%。基于SAMME.R實現(xiàn)的Adaboost模型相對穩(wěn)定,如圖2所示,在訓(xùn)練集上準(zhǔn)確率接近90%,在測試集上的準(zhǔn)確率接近70%,性能提升明顯。
圖1 基于SAMME的AdaBoost情感分析Fig.1 AdaBoost sentiment analysis based on SAMME
圖2 基于SAMME.R的AdaBoost情感分析Fig.2 AdaBoost sentiment analysis based on SAMME.R
AdaBoost算法可以有效的對電商評論文本進(jìn)行情感分析,在訓(xùn)練集上擬合效果較好,在測試集上準(zhǔn)確率低于訓(xùn)練集上的效果,因此實驗存在一定的過擬合。后續(xù)實驗中可以補(bǔ)充基于情感詞典對模型進(jìn)行優(yōu)化。