文 濤,楊 達,李 娟
(中國科學院軟件研究所 互聯網軟件技術實驗室,北京100190)
網絡化軟件以服務大眾為目標,強調以用戶的期望為著手點,通過多種途徑使得自己提供的產品或服務達到或超越用戶期望,獲得用戶滿意。傳統的用戶滿意度研究是通過確定用戶滿意度模型以及問卷調查的方式得到。然而這種方式由于數據收集過程繁瑣、冗長,并且調查受眾有限,很顯然已經不能滿足網絡化時代的要求,特別是針對近幾年來興起的各類移動應用,其軟件版本更新速度非常之快,若不能及時掌握用戶需求,則會被市場所淘汰。
網絡上存在著大量的用戶對軟件的評論,這些評論大都為用戶使用軟件后對其功能和性能的評價,通過對這些評論進行分析,可以得到大眾用戶對軟件各方面的總體傾向,從而使軟件開發者了解到自身產品的不足和用戶的實際需求,為下一版本的改進依據。但是網絡上的評論信息數據量巨大、來源眾多,例如,僅Android Market上應用軟件的總數量目前就已達40萬[1],并且還在不斷增長,一些熱門軟件的用戶評論也是高達上萬條,如果采用人工閱讀的方式將會耗費大量的時間和精力,而目前并沒有相關的對中文軟件評論進行分析的工具,因此一個有效的中文軟件評論挖掘系統將會給開發者帶來具大的幫助。
目前,評論挖掘是一個非常熱門的研究領域,具有很大的研究價值和應用價值,正受到國內外越來越多的研究機構和組織的重視。評論挖掘在英文領域的起步比中文領域早,技術也相對成熟,已有了一些原型系統和產品,并且有些還在商業中得到了應用。比較有代表性地如Liu[2]等人所開發的系統Opinion Observer,該系統從網上獲取關于產品的評論,分析該評論中用戶所針對的產品特征及所持的情感傾向,然后采用可視化方式對多種產品的特征的綜合評價進行比較。微軟公司的 Gamon[3]等人開發的“Pulse”系統可以自動獲取網絡上有關汽車的評論,并挖掘這些評論中所包含的褒貶信息及強弱程度。
中文方面,由于中英文之間的諸多差異,一些針對英文評論挖掘方面的研究成果無法在中文評論挖掘中直接應用,再加之中文評論挖掘研究起步較晚,目前已有的中文評論挖掘系統相對較少,最具代表性的是姚天昉[4]等人研究開發的一個用于漢語汽車評論的意見挖掘系統。該系統從各門戶網站和汽車論壇上獲取有關汽車的評論,然后挖掘用戶在評論中對汽車各性能指標所持的觀點,判斷這些觀點的極性以及強弱并給出可視化的結果。但是系統需要以人工的方式建立汽車本體,移植性較差,并且當產品屬性發生變化時其本體還需要重建。因此,該系統對其它領域很難適用,特別是軟件這一領域,軟件功能的增加或變化是相當頻繁的。
為此,本文構建了一個中文軟件評論挖掘的系統。系統通過抓取網絡上的軟件評論數據,然后采用自然語言處理、機器學習、意見挖掘等技術,識別出評論中的關鍵信息(軟件、特征、評價),通過對這些信息的細粒度情感傾向性分析,最終得到大眾用戶對軟件各方面的滿意度并將結果以可視化的方式進行展示。
系統主要包含數據收集、意見挖掘和結果展示3個部分。詳細的結構如圖1所示。

圖1 系統總體架構
各個部分的主要功能如下:
(1)數據收集。它是整個系統的基礎部分,主要負責從 Android Market(http://market.android.com)上抓取軟件的相關信息和評論數據。Android是近年來興起的智能手機操作系統,其平臺上擁有大量的應用程序和用戶。Android Market正是提供基于Android平臺軟件下載的一個大的站點,用戶數量巨大,為本文的研究提供了大量的數據來源。同時Android Market開放了一些對外的API,這也方便了本系統數據的獲取。
(2)意見挖掘。它由數據預處理、軟件特征抽取、<特征詞、觀點詞>對識別、情感極性判斷及強度計算4個模塊組成,是整個系統的核心部分。主要功能是利用自然語言處理、機器學習的一些技術從軟件評論文本中抽取出軟件特征、評價詞等關鍵信息,然后通過對這些信息進行細粒度的情感分析,得到大眾用戶對軟件各方面的滿意程度。
(3)結果展示。它的主要功能是將軟件評論進行意見挖掘分析之后的結果,以可視化的方式進行展示,方便開發者查看。
系統采用B/S結構進行開發,整個系統的流程大致可描述如下:首先用戶通過交互界面輸入軟件名稱(如圖2所示),然后數據收集模塊在Android Market中查找相關軟件的信息并將檢索結果反饋給用戶,用戶在結果頁面選取某一款具體的軟件后,數據收集模塊再次啟動抓取其評論數據,存儲到數據庫中。接著意見挖掘模塊對評論數據進行挖掘分析,將結果傳送給展示模塊。最終結果展示模塊以可視化的方式將結果進行顯示。結果展示的界面如圖3所示,以軟件特征為粒度,顯示其正負評論數,點擊數字可以查看具體的評論信息。

圖2 系統交互界面
系統的實現和運行表明,各模塊間只通過數據進行聯系,降低了模塊之間的耦合度,提高了實現的效率并方便了后續對各模塊的改進。

圖3 結果展示界面
軟件評論挖掘系統的有效與否主要在于其結果是否真實、準確。因此系統意見挖掘部分所涉及到的軟件特征抽取、<特征詞、觀點詞>對識別、情感極性判斷及強度計算等技術是其關鍵的技術。
軟件特征為用戶對軟件進行評論時的關注點,一般為描述軟件功能或性能的詞或短語。Hu和Liu[5]最早使用關聯規則算法Apriori來進行產品特征的抽取。但是該方法并沒有充分考慮評價對象的結構特征以及評價對象的領域相關性,直接用會產生很大噪聲。國內的李實[6-7]等人對中文評論中產品特征的抽取進行了研究,他們在Apriori算法的基礎上,設計了一些剪枝算法來提高特征挖掘的正確率和召回率。這與本文的方法比較相似,但是在剪枝策略的設計上有明顯的不同。同是我們還注意到,對于軟件這一領域,在利用頻繁k項集(K>=2)生成特征時,還需要考慮詞的順序問題。如有頻繁二項集 {省電,功能},描述的特征應為 “省電功能”而不是 “功能省電”,而有時還存在前后順序都合理的情況,如 “垃圾清理功能”和 “清理垃圾功能”。基于此,本文的特征提取方法在剪枝后還加入了順序還原的過程。方法基本步驟如下:
(1)對評論語料進行預處理,主要是將每一條評論語句進行分詞和詞性標注。本研究中利用了中國科學院計算所開發的分詞軟件ICTCLAS進行。
(2)在詞性標注的語料中,提取出句子中的所有名詞、動詞以及字符,同時過濾停用詞、情感詞,最終形成的結果作為關聯規則的事務文件。
(3)使用關聯規則挖掘的Apriori算法尋找所有的頻繁項集并將其作為候選特征集。
(4)距離剪枝。在中文評論中,假設fk是頻繁規則k項集,表示為 {Q1,Q2,…Qk},評論語句S包含fk,S分完詞也可以表示成詞語序列的形式 {W1,W2,…Wn}。這樣,S包括fk的最短摘要定義為包含fk中所有詞的最短詞語序列,比如從 Wi到Wj(0<i<j≤n)。定義fk的距離為表達式(1)所示

式中:S(fk)——fk包含的所有評論語句的集合,length-OfAbs(s,fk)——s中包含fk的最短摘要的長度,Size(S(fk))——集合的大小。
遍歷所有的頻繁k項集(K>=2)fk,將Dist(fk)>α的項從候選項集中移除,這里α為設定的一個閾值,本系統中設置為4。此技術主要為了找出頻繁出現的短語候選特征。
(5)冗余過濾。如果某一頻繁項集的所有項被更高的頻繁項集所包含,則將該頻繁項集從候選特征集中刪除。這一步驟主要是為了防止生成冗余的特征。
(6)還原順序。對于K>=2的頻繁K項集,在生成特征時,還需要考慮其順序。如對于頻繁二項集 {省電、功能},需要確定最終的特征是 “省電功能”還是 “功能省電”。本文的方法是對該頻繁項集在其評論語句中的出現順序進行頻次統計,若某種順序出現的頻次大于閾值β,則認為是合理的順序,本系統中設置為3,之所以不直接取頻次最高的是因為可能存在多種順序都是合理的情況。例如:“病毒掃描功能”和 “掃描病毒功能”都是合理的且為同為同一特征,但不同的用戶的表達不同而已。對于多種順序都合理的情況,選取出現頻次最多的為該特征的標準表示,其余合理的形式為其同義表示加入特征列表中。
在構建出軟件的特征庫后,針對每一條評論語句需要進一步識別出其中包含的<特征詞,觀點詞>對。我們通過對真實軟件評論中出現的特征詞和觀點詞進行了觀察分析,發現特征詞和觀點詞在句子內部存在一定的語法關系。如 “好看的界面,強大的功能,我喜歡”這一評論中,特征詞 “界面”、“功能”分別與觀點詞 “好看”,“強大”形成修飾關系。因此在句子特征詞已知的情況下,可利用語法關系識別出對應的觀點詞。本文正是通過引入依存句法分析技術完成<特征詞,觀點詞>對的識別。依存句法主要是通過分析句子內部各個語言單位成分的依存關系來表示句子的句法結構。通過對軟件評論句子的依存關系仔細研究,我們得到特征詞和觀點詞的依存關系主要有如下3種:
(1)定語結構(amod)。若特征詞出現在句子的定語結構中,則結構中的形容詞即為該特征對應的觀點詞。如對于評論語句 “真/d是/vshi一/m 款/n好/a軟件/n”,其中包括了結構 “amod(軟件-6,好-5)”,則可以識別出<特征詞,觀點詞>對<軟件,好>。
(2)主謂結構(nsubj)。評論中有一類語句是特征詞為主語的情況,這時觀點詞一般為謂語或補語。首先遍歷句子中所有出現特征詞的主謂結構,若謂語為形容詞,則該形容詞即為修飾該特征詞的觀點詞;若謂語為動詞,還需要繼續尋找包含該動詞的補語結構,將修飾動詞的補語作為該特征對應的觀點詞。如表1的兩個例子就對應了這兩種情況(ccomp表示補語結構)。
(3)動賓結構(dobj)。除了形容詞能作為觀點詞外,動詞通常也可以用來表達用戶的情感,如 “喜歡”、“討厭”等。動賓結構就是為了處理特征詞和觀點詞的這一類對應關系。如在評論語句 “比較/d喜歡/vi隱私保護功能/n,/wd不怕/v別人/rr愉看/v手機/n”中,就存在結構 “dobj(喜歡-2,隱私保護功能-3)”,因此識別出<隱私保護功能,手機>。

表1 評論中的主謂結構
我們使用了Stanford Parser[8]的中文自然語言處理工具來得到一個句子的依存關系,然后基于上述3種結構,在已知特征詞的前提下,定位句子中相對應的觀點詞,生成<特征詞,觀點詞>對
為了獲得<特征詞,觀點詞>的極性,需要借助極性詞典。本文所提到的極性詞典主要由三部分構成:①基礎極性詞典。直接使用了知網[9]公布出的情感詞匯資源,包含負面評價詞語(3116個),負面情感詞語(1254個),正面評論詞語(3730個),正面情感詞語(836個)。②網絡極性詞典。由于網絡上的用戶評論中口語化比較普遍,僅僅利用書面的一些觀點詞并不能滿足需求。因此本文構建了網絡極性詞典,它主要由兩部分構成,一是從現有的《中國網絡用語詞典》中挑選了83個觀點詞語。二是從真實評論語料中,人工隨機瀏覽500條評論,從中抽取出具有觀點傾向的網絡詞語。③領域極性詞典。某些詞語只有結合其使用的領域才能判斷出其表達的情感極性。如 “大”這個詞,在 “屏幕很大”與 “內存占用很大”中就表現出完全相反的極性。本文通過人工的方式,構建了一個軟件領域常用的極性詞詞典。
對于在極性詞典中檢索不到的詞,本文采用了基于知網的極性計算方法[10]。對于某個觀點詞word,其靜態極性計算如下:
(1)選取22對褒貶基準詞。這里基準詞指褒貶態度非常明顯,具有代表性的詞語。基本思想就是:與褒義基準詞聯系越緊密,則詞語的褒義傾向性越強烈;與貶義基準詞聯系越緊密,則詞語的貶義傾向性越強。
(2)利用選取的基準詞通過表達式(2)計算出word的正面接近程度Positive(word)。

式中:pwi——某個褒義基準詞,m——褒義基準詞的個數,Similarity(word,pwi)——利用HowNet計算兩個單個詞之間的相似度結果。具體而言,就是利用知網計算兩個詞匯義原之間的相似度,并取兩個詞匯義原之間相似度的最大值作為Similarity(word,pwi)的結果。同理,也可以計算出word負面接近的程序。
(3)最終word的極性得分為

在考慮<特征詞,觀點詞>對的極性強度時,還不能夠忽視程度詞和否定詞的影響。例如對于評論語句 “界面比較好看”,“界面非常好看”,“界面不好看”,抽取出的都為<界面,好看>這一二元關系對,但前兩句的情感強度是遞增的,最后一句情感極性會反轉。顯然,為了更準確表達用戶的情感傾向,必須要考慮修飾情感詞的程度副詞和否定副詞。本文總結了一些常用的程度詞,根據它們的程度分為了4個級別,賦值從0到1,分別為 {0.2,0.5,0.8,1.0}。否定詞會對句子的情感傾向產生反轉的影響,同樣,本文總結了部分常用的否定詞,建立的常用的否定詞詞典。最終,情感強度的計算為表達式(4)所示

式中:Score(senWord)——情感詞senWord的分值,它可以通過查表或式(3)計算。Score(degWord)——程度詞的分值,num表示句子中否定詞的個數,我們知道雙重否定表示肯定,通過句子中否定詞的個數是奇數還是偶數能決定是否發生反轉。但是一般情況下并不能直接取反,例如,“不好看”并不代表 “難看”,“不是不好看”也不并能等價于 “好看”,因此本文設置否定詞的反轉參數為-0.5。
為了驗證系統的有效性,本文對系統中使用的關鍵技術的效果進行了實驗評估。我們選取了Android Market上4款使用較多的軟件的用戶評論評論作為實驗數據,分別為 “QQ手機管家”、“搜狗手機輸入法”、“UC瀏覽器”和“360手機衛士”。
由于網絡評論中存在大量的噪音,有很多句子并不是用戶對軟件的評論語句。本文將包含軟件特征的句子設定為評論句,這樣就濾掉了一部分無用的句子。同時,對于一些結構比較復雜的句子,進行了人工斷句處理。最后通過在這些數據集上的實驗,和人工標注的結果作對比,得到了方法在特征抽取和極性判斷兩個方面的效果,結果見表2和表3。

表2 軟件特征抽取結果

表3 特征情感傾向判斷結果
從表2可以看到,對于軟件特征抽取結果,4個數據集上的F值都在0.6左右,結果比較穩定。通過進一步分析特征抽取錯誤的結果發現其主要原因包括以下三點:①一些軟件特征為比較復雜的短語結構;②特征之間存在層次關系,例如 “軟件速度很快”,“雙核殺毒速度很快”,前者的“速度”表示軟件整體運行速度,后者的 “速度”為 “雙核殺毒”的速度,而本文并沒有考慮。③一些分詞和詞性標注的結果不準確。因此,如何挖掘出復雜短語結構的軟件特征、分析軟件特征之間的層次關系以及減少分詞錯誤對特征抽取結果的影響都將是今后進一步工作的改進方向。
情感傾向判斷的結果如表3所示,由于情感傾向判斷是以軟件特征抽取為前提的,因此會存在錯誤的疊加,但通過結果對比可以看出,情感傾向判斷的F值(0.539)相比于軟件特征抽取的F值(0.616)并沒有低很多,由此可以得到在抽取出的正確的特征上,情感傾向的判斷結果大都是正確的,這也充分說明了系統的有效性。
如何快速獲取用戶對軟件的滿意度,從而發現用戶期望,為軟件的改進提供依據,一直是軟件開發者關注的問題。特別是隨著移動互聯網的興起,大量移動應用的涌現,加之移動應用軟件版本快速更新的特點使得這一需求更加迫切。為此,本文構建了一個中文軟件評論挖掘的系統。系統利用網絡上用戶的海量評論數據,通過自然語言處理、機器學習等技術,識別出評論中的軟件特征和用戶對這些特征所表達的情感傾向,最終通過可視化技術將結果進行展現,方便了開發者及時了解用戶反饋,從而發現用戶期望,為軟件的改進提供了依據。同時,通過在Android Market上的測試,驗證了系統的有效性。
當然,這個系統還存一些不足的地方,如軟件特征抽取時只考慮了顯示出現的軟件特征;觀點詞識別的效果依賴于句法分析的精度,而目前中文句法分析的技術還不是很成熟等。這些也將是本系統下一步改進的方向。
[1]Distimo.Google android market[EB/OL] .[2011-11-30].Http://www.distimo.com/appstores/stores/view/19-Google _Android_Market.
[2]Liu B,Hu M,Cheng J.Opinion observer:Analyzingand comparing opinions on the Web[C]//New York:Proceedings of the 14th International Conference of World Wide Web,2005:342-351.
[3]Gamon M,Aue A,Corston-oliver S,et al.Pulse:Mining customer opinions from free text[C]//Madrid:The 6th International Symposium on Intelligent Data Analysis,2005:121-132.
[4]YAO Tianfang.An opinion mining system for chinese automobile reviews[C]//Beijing:Proceedings of the 25th Chinese Information Processing Society,2006:260-281(in Chinese).[姚天昉.一個用于漢語汽車評論的意見挖掘系統[C]//北京:中國中文信息學會二十五周年學術會議,2006:260-281.]
[5]Hu Minqing,Liu Bing.Opinion extraction and summarization on the web[C]//Boston:Proceedings of the National Conference on Artificial Intelligence,2006:1621-1624.
[6]LI Shi,LI Qiushi.Research on pruning algorithm of product feature mining in Chinese review[J].Computer Engineering,2011,37(23):43-45(in Chinese).[李實,李秋實.中文評論中產品特征挖掘的剪枝算法研究[J].計算機工程,2011,37(23):43-45.]
[7]LI Shi,LI Qiushi.Improving the performance of features extraction from Chinese customer reviews[C]//Hong Kong:The 2th International Conference on Communication Systems,Networks and Applications,2010:26-29.
[8]Stanford Parser web page[EB/OL].[2012-01-10].http://nlp.stanford.edu.software/lex-parser.shtml.
[9]DONG Zhendong,Dong Qiang.HowNet[EB/OL].[2012-02-01].Http://www.keenage.com(in Chinese).[董振東,董強.知網[OL].[2012-02-01].Http://www.keenage.com.]
[10]ZHU Yanlan.Semantic orientation computing based on HowNet[J].Journal of Chinese Information Processing,2006,20(1):14-20(in Chinese).[朱嫣嵐.基于HowNet的詞匯語義傾向計算[J].中文信息學報,2006,20(1):14-20.]