劉一利 朱潼昕 施凡
(1.國防科技大學電子對抗學院 安徽合肥 230031;2.武警警官學院22隊 四川成都 610001)
隨著計算機網(wǎng)絡(luò)技術(shù)的快速發(fā)展和使用成本的快速降低,互聯(lián)網(wǎng)的普及率迅速提升。互聯(lián)網(wǎng)正深刻的改變著我們的生產(chǎn)、生活模式。作為互聯(lián)網(wǎng)的重要應用,電子商務(wù)和社交網(wǎng)站迅速普及,針對商品、微博、新聞等發(fā)表評論已經(jīng)成為一種潮流,越來越多的人喜歡通過發(fā)表在線評論表達自己的意見。由于互聯(lián)網(wǎng)的評論數(shù)據(jù)巨大,僅通過人工閱讀的方式難以有效挖掘互聯(lián)網(wǎng)用戶的意見傾向,通過自動化方法可有效提升對在線評論文本意見挖掘的速度,具有重要的應用價值。本文設(shè)計的互聯(lián)網(wǎng)在線評論文本意見挖掘系統(tǒng)基于機器學習方法可實現(xiàn)對在線評論文本意見的自動化挖掘,可用于用戶商品智能、輿情監(jiān)控和民意調(diào)查等領(lǐng)域。
意見挖掘(Opinion Mining)被稱為評論挖掘,也稱為情感分析(Sentiment Analysis),通過對發(fā)表的評論文本分析,挖掘意見傾向,是贊成還是反對。意見挖掘涉及多個領(lǐng)域知識,包括自然語言處理、概率統(tǒng)計、關(guān)聯(lián)規(guī)則和機器學習等知識,是一個綜合的研究領(lǐng)域。唐曉波等為了解決微博評論文本隱式特征的識別問題,提出一種基于特征本體的評論情感分析方法[1]。楊春曉等通過構(gòu)建卷煙在線評論情感詞典的方法,提出了卷煙情感指數(shù)計算模型[2]。王娜娜等提出一種基于評價單元五元組的情感分析方法。通過聯(lián)合無監(jiān)督和有監(jiān)督學習方法構(gòu)建評價詞表和評價對象詞表判斷文本情感類別[3]。李曉東等通過使用技術(shù)指標表示數(shù)值價格數(shù)據(jù),用情感向量表示文本新聞文章使用全連接神經(jīng)網(wǎng)絡(luò)模型進行了股票價格預測的研究[4]。Naresh等運用多種機器學習模型對twitter數(shù)據(jù)集進行了文本意見挖掘,通過對比得出決策樹模型具有較高的正確率[5]。有監(jiān)督的意見挖掘機器學習算法在評論文本意見挖掘方面,不需要語言學專業(yè)知識的約束,具有較好的分類效果,但其需要大量的帶有標注信息的訓練數(shù)據(jù)。本文基于有監(jiān)督的意見挖掘算法,提出了模塊化的在線評論文本意見挖掘系統(tǒng)設(shè)計方法。該方法支持不同模塊的靈活組合,單個功能模塊可以靈活選擇優(yōu)化算法。

圖1 系統(tǒng)框架圖

表1 評論文本示例

圖2 模型訓練步驟

圖3 實驗精確率和召回率
互聯(lián)網(wǎng)在線評論文本意見挖掘系統(tǒng)采用模塊化的設(shè)計方法,分為人機接口模塊、評論文本爬取模塊、文本特征提取模塊、自動分類模塊和數(shù)據(jù)存儲模塊。人機接口模塊支持設(shè)置目標網(wǎng)站URL、爬取條數(shù)、線程數(shù)等參數(shù),將文本意見挖掘結(jié)果通過圖表、表格等方式輸出給用戶;評論文本爬取模塊使用Scrapy網(wǎng)絡(luò)爬蟲框架,支持對目標網(wǎng)站評論文本實現(xiàn)異步高并發(fā)爬取,可高效爬取大批量評論文本數(shù)據(jù);文本特征提取模塊可對中文文本實現(xiàn)智能分詞處理,并對分詞進行預處理,并進行向量化處理;自動分類模型基于機器學習算法,系統(tǒng)使用樸素貝葉斯(Native Bayes)算法,模型通過對訓練數(shù)據(jù)進行學習,達到學習指標后,可實現(xiàn)對文本向量化處理后數(shù)據(jù)的智能分類;數(shù)據(jù)存儲模塊實現(xiàn)數(shù)據(jù)的存儲和管理。系統(tǒng)框架如圖1所示。
從互聯(lián)網(wǎng)爬取的評論文本不能被計算機程序直接理解,需要對其進行分詞處理,并將分詞進行向量化轉(zhuǎn)換,實現(xiàn)自然語言到數(shù)值變量的轉(zhuǎn)換,數(shù)值變量可直接作為自動分類模塊的輸入。從支付寶網(wǎng)站口碑應用爬取評論文本示例如表1所示。
(1)文本分詞。
系統(tǒng)采用python的jieba分詞模塊完成對評論文本的分詞處理,jieba分詞模塊支持精確模式、全模式和搜索引擎模式。精確模式尋求將句子精確分開;全模式把句子中所有的成詞都掃描出來;搜索引擎模式,在精確模式的基礎(chǔ)上,對長詞再次切分,提升查全率。以表1評論1為例,精確模式分詞為:“還/贈送/了/兩個/紅茶/,/味道/也/不錯/分量/足”,全模式分詞為:“還/贈送/了/兩個/紅茶/,/味道/也/不錯/錯分/分量/足”,搜索引擎模式分詞為:“還/贈送/了/兩個/紅茶/,/味道/也/不錯/分量/足”。能夠較好的將句子中的詞語分開,但其中“還”、“了”、“也”等語氣詞在評論文本意見挖掘中起不到分類的效果,本系統(tǒng)使用從互聯(lián)網(wǎng)下載的“哈工大停用詞表”去除語氣詞、特殊符號等停用詞。
(2)分詞向量化。
將文本詞語轉(zhuǎn)換為計算機能夠理解的數(shù)字,對文本進行向量化處理。針對系統(tǒng)具體的應用場景,構(gòu)建詞匯表,將分詞后的文本詞和詞匯表進行對照,若詞匯表中單詞在文本中出現(xiàn),詞匯向量該位就設(shè)為1,未出現(xiàn)就設(shè)為0。這樣每一個文本都能夠轉(zhuǎn)換為一個包含0、1元素的多維向量。我們運用sklearn庫中CountVectorizer方法將文本轉(zhuǎn)化為詞向量。
系統(tǒng)文本自動分類模塊使用樸素貝葉斯分類算法完成文本數(shù)據(jù)自動分類。使用訓練數(shù)據(jù)對模型進行訓練,將訓練數(shù)據(jù)進行合理劃分,模型經(jīng)訓練達到指標要求后,結(jié)束訓練,可對未知文本進行分類。
(1)樸素貝葉斯分類算法。
樸素貝葉斯分類算法是一種基于概率的機器學習模型,根據(jù)人們對事物的先驗知識和條件概率結(jié)合起來,推導事物發(fā)展變化的后驗概率。設(shè)有訓練數(shù)據(jù)B={b1,b2,...,bn},訓練數(shù)據(jù)的特征屬性為X={x1,x2,...,xn},類別集合為C={c1,c2},后驗概率公式如下所示[6]

(2)模型訓練過程。
模型訓練步驟如圖2所示。
將數(shù)據(jù)集進行合理劃分,按照一定比例將數(shù)據(jù)集劃分為訓練數(shù)據(jù)和測試數(shù)據(jù)。使用訓練數(shù)據(jù)訓練模型,用測試數(shù)據(jù)來驗證模型的正確率和召回率,判斷模型訓練效果。如果訓練效果達到要求,停止訓練,模型訓練完成。如果達不到要求,返回重新訓練模型,直到達到要求。
為了驗證系統(tǒng)對評論文本意見挖掘的有效性,選擇從互聯(lián)網(wǎng)爬取的2000條美食評論作為數(shù)據(jù)集。將數(shù)據(jù)集按照7:3的比例劃分為訓練集和測試集。本文使用python的sklearn模塊實現(xiàn)樸素貝葉斯模型的快速構(gòu)建,進行5次獨立實驗,正確率和召回率如圖3所示。
從圖3所示的測試結(jié)果看出,系統(tǒng)對美食評論文本數(shù)據(jù)集進行了5次獨立實驗,精確率分別為88.9%、90.0%、88.9%、88.5%、87.7%,平均值為88.8%;召回率分別為86.0%、84.5%、84.2%、81.7%、83.0%,平均值為83.8%。分類結(jié)果的精確率和召回率均在80%以上,具有較好的分類效果。
如今,隨著互聯(lián)網(wǎng)服務(wù)的快速普及,互聯(lián)網(wǎng)中各種應用的在線評論文本數(shù)量呈指數(shù)增長,通過設(shè)計在線評論文本意見挖掘系統(tǒng)可有效提升對大數(shù)據(jù)文本評論信息的有效挖掘。通過實驗分析,系統(tǒng)能夠較為有效的對美食評論數(shù)據(jù)進行意見挖掘。下一步還要針對多種類型的評論信息展開實驗,進一步提升系統(tǒng)的泛化能力。