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

圖1 系統框架圖

表1 評論文本示例

圖2 模型訓練步驟

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

(2)模型訓練過程。
模型訓練步驟如圖2所示。
將數據集進行合理劃分,按照一定比例將數據集劃分為訓練數據和測試數據。使用訓練數據訓練模型,用測試數據來驗證模型的正確率和召回率,判斷模型訓練效果。如果訓練效果達到要求,停止訓練,模型訓練完成。如果達不到要求,返回重新訓練模型,直到達到要求。
為了驗證系統對評論文本意見挖掘的有效性,選擇從互聯網爬取的2000條美食評論作為數據集。將數據集按照7:3的比例劃分為訓練集和測試集。本文使用python的sklearn模塊實現樸素貝葉斯模型的快速構建,進行5次獨立實驗,正確率和召回率如圖3所示。
從圖3所示的測試結果看出,系統對美食評論文本數據集進行了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%。分類結果的精確率和召回率均在80%以上,具有較好的分類效果。
如今,隨著互聯網服務的快速普及,互聯網中各種應用的在線評論文本數量呈指數增長,通過設計在線評論文本意見挖掘系統可有效提升對大數據文本評論信息的有效挖掘。通過實驗分析,系統能夠較為有效的對美食評論數據進行意見挖掘。下一步還要針對多種類型的評論信息展開實驗,進一步提升系統的泛化能力。