朱曉旭 錢培德
ZHU Xiaoxu, QIAN Peide
蘇州大學(xué) 計算機(jī)科學(xué)與技術(shù)學(xué)院,江蘇 蘇州 215006
School of Computer Science & Technology, Soochow University,Suzhou, Jiangsu 215006, China
隨著Web2.0的發(fā)展深入,論壇、博客和微博等發(fā)布與交互平臺的普及,用戶從被動接受信息轉(zhuǎn)而可以制造信息,大量的用戶參與到網(wǎng)絡(luò)信息的主動發(fā)布中來,信息在以爆炸的速度增長。尤其是以微博為代表的社交網(wǎng)絡(luò)工具,它們具有簡單便捷、互動性和時效性極強(qiáng)的特征[1],對這些用戶主動發(fā)布的文本進(jìn)行分析與挖掘具有非常大的實際意義與應(yīng)用價值。
臟話作為一種非正規(guī)的語言現(xiàn)象,在現(xiàn)代社會中已經(jīng)無處不在[2]。臟話表示了表達(dá)者一種憤怒的情感,明顯具有侮辱、辱罵、攻擊他人的意味,但是臟話往往缺乏邏輯性,而且由于網(wǎng)絡(luò)很多場合是非實名制的,它也是一種不負(fù)責(zé)任的貶損,顯然這與網(wǎng)絡(luò)的文明背道而馳。在2012年2月的“方舟子與韓寒的大戰(zhàn)”中,大量的粉絲蜂擁到對方的博客中用臟話進(jìn)行謾罵回復(fù);2012年4月的“甄子丹和趙文卓的爭論”中,再次出現(xiàn)了該不文明的現(xiàn)象。因此自動識別用戶文本中是否包含臟話句子并進(jìn)行干預(yù)處理是一個非常有實用意義的研究課題。
目前一些在線游戲、論壇中已經(jīng)提供了類似臟話檢測的功能,主要的手段是通過臟話詞典進(jìn)行機(jī)械匹配,通常的步驟是:首先對用戶輸入文本進(jìn)行分詞,然后對分詞結(jié)果進(jìn)行臟話關(guān)鍵詞機(jī)械匹配,如果匹配到明顯的臟話關(guān)鍵詞,則禁止該語句的提交,或者將認(rèn)為的敏感內(nèi)容替換為星號,圖1就是國內(nèi)某知名游戲平臺上對用戶的發(fā)布文本進(jìn)行處理后的結(jié)果。但是由于查準(zhǔn)率和查全率都不是特別高,而且經(jīng)常誤識別,因此會影響用戶正常信息的發(fā)布,圖1中的最后一句話就是一個典型被誤識別的例子。
圖1 國內(nèi)某知名游戲平臺對用戶臟話文本的處理結(jié)果例子
臟話識別可以看成是文本情感分析的一個具體的應(yīng)用。Pang[3]首次將情感分類任務(wù)和機(jī)器學(xué)習(xí)相結(jié)合,使用了不同的特征,采用 NB(Naive Bayesian)、ME(Maximum Entropy)、和 SVM(Support Vector Machine)三種方法進(jìn)行了分類,并發(fā)現(xiàn)使用 unigram作為分類特征效果最好,同時他們發(fā)現(xiàn)在文本情感分析問題上使用“0-1”值作為權(quán)重比tf-idf方法要好。Cui[4]的實驗證明,當(dāng)訓(xùn)練語料少時,unigram作用明顯,但當(dāng)訓(xùn)練語料的增多時,bi-gram和 tri-gram以及n-gram(n>3)發(fā)揮越來越重要的作用。Ng[5]也通過實驗也發(fā)現(xiàn)將bi-gram和tri-gram加入unigram項后能夠提高SVM的分類性能。
Swapna Somasundaran[6]詳細(xì)介紹了人工標(biāo)注情感語料庫的注意事項、規(guī)范,和對標(biāo)注者的培訓(xùn),以及評價標(biāo)注者之間的標(biāo)注統(tǒng)一程度的評價方法。Wiebie[7]描述了MPAQ(multiple-perspective QA)語料庫的手工標(biāo)注的詳細(xì)流程。但是顯然純粹依靠人工來標(biāo)注語料,耗時耗力,有些不需要深度標(biāo)注的場合,完全可以采用人工與機(jī)器相結(jié)合的方法節(jié)約成本并提高效率。
目前國內(nèi)外尚無專門用于文本情感分析臟話語料庫的報道與文獻(xiàn),本文借助海量的真實評價文本,通過半監(jiān)督學(xué)習(xí)的方法,構(gòu)造了一個高質(zhì)量的較大規(guī)模臟話語料庫。
按照廖德明的總結(jié)[2],臟話可以歸納為如下五類:1)以男性、女性的性器官和性行為為對象的臟話;2)以家庭譜系成員為對象,在輩分上占便宜;3)把對方比擬成動物或者牲口;4)把對方比擬成骯臟物、污穢物或無價值的東西;5)瀆神與詛咒。本文認(rèn)為1)、3)、4)和5)屬于顯式臟話,而2)屬于隱式臟話,這里主要進(jìn)行顯式臟話的處理與分析。
為了便于研究,本文需要采集大量的臟話文本進(jìn)行分析。百度貼吧是百度旗下的中文社區(qū),它結(jié)合搜索引擎建立了一個在線的交流平臺,讓那些對同一個話題感興趣的人們聚集在一起,方便地展開交流和互相幫助[8]。百度貼吧中具有海量的真實人物評價文本語料,其中也包含了大量的臟話。
在對百度貼吧網(wǎng)頁數(shù)據(jù)分析的技術(shù)上,本文實現(xiàn)了一個百度貼吧語料自動采集工具。該工具讓用戶指定一個起始頁面,將會自動抓取該貼吧內(nèi)所有主題的網(wǎng)頁數(shù)據(jù)。在去除一些純西文的句子、和超長的無意義“水帖”后,以句號、感嘆號、問號標(biāo)點符號和換行符作為分句依據(jù),對文本進(jìn)行了分句。接著刪除長度大于1000的句子,刪除不包含中文的句子,替換
、 和等字符串。本文在 “芙蓉姐姐”、“鳳姐”、“甄子丹”、“趙文卓”等貼吧中合計采集了1736722句評價文本。
由于自然語言的字詞具有歧義性,并且搭配變化多,顯然僅僅根據(jù)關(guān)鍵字詞,難以實現(xiàn)較高質(zhì)量的臟話識別。在海量文本中提取出臟話文本構(gòu)造高質(zhì)量臟話語料庫有利于挖掘出臟話的特征。,本文采用半監(jiān)督學(xué)習(xí)的思路設(shè)計了一個少量人工干預(yù)的可迭代的臟話語料采集方法,該方法的具體步驟參見圖2。
圖2 自動擴(kuò)展臟話典型特征的結(jié)構(gòu)圖
如圖2所示,本文首先人工采集了少量的典型臟話特征構(gòu)成臟話特征庫,然后利用一個高精度的臟話分類器對海量的文本集合進(jìn)行處理,如果臟話分類器的分類值大于一個閾值,則加入到臟話子集,如果分類值為0則加入到非臟話子集,其余的情況放到不確定集合。顯然由于一開始臟話特征的數(shù)量少,此時分類出的非臟話集合中其實也包括了很多臟話,然后本文利用臟話和非臟話兩個集合進(jìn)行特征篩選,找出部分顯著的臟話特征添加到臟話特征庫中。然后多次迭代上述過程,隨著迭代的進(jìn)行,臟話集合不斷擴(kuò)大,非臟話集合不斷縮小,當(dāng)臟話集合的規(guī)模達(dá)到一個合適的大小,就停止迭代。
經(jīng)過統(tǒng)計與觀察,本文發(fā)現(xiàn)臟話句子的詞性特征和句法特征與普通句子區(qū)別不大,因此本文主要是以詞組和詞組間的二元、三元搭配作為特征進(jìn)行分析。
按照廖德明的總結(jié)的規(guī)則[2],在百度貼吧中人工查看并標(biāo)注網(wǎng)頁,合計找到400句臟話。首先用斯坦福分詞系統(tǒng)[9]對400句臟話就行分詞,然后利用SRILM[10]進(jìn)行一元統(tǒng)計分析,找到了40個高頻的詞條。由五位自愿者對這些詞條進(jìn)行了 1-10的權(quán)值標(biāo)記,越高的數(shù)字代表是臟話的可能性越大,然后對五位志愿者的標(biāo)注權(quán)值計算平均后取整,得到了每個詞條的權(quán)值,40個基礎(chǔ)特征詞以及權(quán)值參見表1。
本文設(shè)計了一個簡單的高精度分類器,設(shè)Sentence代表一個句子,Words={w1,w2,…wn}代表一個句子中詞組的集合,F(xiàn)eatures={(fea1,value1),(fea2,value2)…(feam,v aluem)},它是一個二元組集合,代表臟話特征庫中的特征以及特征的權(quán)值,fvalue(feaj)函數(shù)用于獲取指定特征feaj的權(quán)值。那么判斷一個句子是否臟話的算法如下:
當(dāng)采用表1中的40個典型臟話特征,以20作為閾值時,高精度臟話分類器的準(zhǔn)確率為96.29%,查全率為20.47%。
表1 初始臟話特征以及權(quán)值
為了便于統(tǒng)一處理,本文將待處理的文本全部轉(zhuǎn)換為UTF-8編碼。因為日期中經(jīng)常出現(xiàn)“2”和“日”這樣的字符,因此用正則表達(dá)式匹配出一個句子中的日期,并替換為空,然后用斯坦福分詞系統(tǒng)對1736722句評價文本進(jìn)行分詞。
使用前述的高精度的分類器,在1736722句評價文本中第一輪找到284句臟話,本文對這些分詞后的句子用 SRILM 工具對它們進(jìn)行一元、二元、三元統(tǒng)計,去除現(xiàn)有特征庫中的特征,并刪除停用詞,然后對統(tǒng)計的結(jié)果按照出現(xiàn)頻度各取出前5%、%2和%1,接著利用卡方(χ2)檢驗對這些特征進(jìn)行計算,對計算結(jié)果從大到小排序,將排序后的前50個特征作為候選特征,然后人工對前50個進(jìn)行篩選與確定權(quán)值,合計進(jìn)行了6輪,每一輪找到的句子數(shù)量以及篩選出的特征參見表2。這里使用人工篩選主要基于兩個考慮,第一,每次只需要對50個特征篩選,工作量不大,切實可行;第二,人工篩選的準(zhǔn)確性非常好,有利于保證語料庫是在可靠質(zhì)量的前提下增長。
卡方(χ2)檢驗是統(tǒng)計中最為常用的方法之一,它的公式如下所示:
其中 N表示訓(xùn)練集合中臟話與非臟話句子的總數(shù),Cj為具體一個類別,Cj∈{臟話、非臟話}。Featurei表示特定的特征,A表示屬于Cj類且包含F(xiàn)eaturei的句子頻數(shù),B表示不屬于 Cj類但是包含 Featurei的句子頻數(shù),C表示屬于Cj類但是不包含F(xiàn)eaturei的句子頻數(shù),D表示既不屬于 Cj也不包含F(xiàn)eaturei的句子頻數(shù)。
表2 迭代6次的實驗過程
結(jié)合找到的6232句臟話文本,本文從百度百科人物介紹中采集了6656句文本作為非臟話文本集合。首先對文本進(jìn)行分詞,然后進(jìn)行一元、二元和三元統(tǒng)計,按照頻度分別找出前 5%、2%和 1%作為候選特征,計算它們的卡方(χ2)檢驗值,進(jìn)行排序,分別取前 200、400、600、800、1000、1500和2000個特征作為分類特征,使用SVM和最大熵分類器分別進(jìn)行訓(xùn)練后分類,采用了5折交叉測試,并對五折交叉測試的結(jié)果取平均,實驗結(jié)果參見表3。
表3 SVM和最大熵使用不同數(shù)量的特征分類結(jié)果
通過表3可以看出,隨著特征數(shù)量的增加,準(zhǔn)確性在略微提高,但是查全率也在同步微微降低,而F值穩(wěn)定在98%以上。在實際應(yīng)用中可以根據(jù)需要在準(zhǔn)確率、查全率和計算復(fù)雜度和之間尋找一個平衡點。
實驗結(jié)果顯示,利用機(jī)器學(xué)習(xí)的方法進(jìn)行臟話的自動識別是一種切實可行的方法,在良好語料庫支撐的基礎(chǔ)上SVM和最大熵方法都能取得很好的效果。
本文對網(wǎng)絡(luò)評價中的臟話進(jìn)行了介紹與分析,設(shè)計了一種半監(jiān)督的多次迭代的方法從海量文本中找臟話文本和臟話文本的特征,構(gòu)建了一個高質(zhì)量的臟話語料庫,并利用該語料庫進(jìn)行了臟話文本自動分類試驗,取得了很好的效果。如果與具體系統(tǒng)相結(jié)合,可以實現(xiàn)論壇、博客和微博發(fā)布與回復(fù)的臟話過濾。也可以利用臟話識別的結(jié)果來輔助分析評價文本的褒貶極性。
[1]袁納宇. 圖書館應(yīng)用微博客的價值分析[J]. 圖書與情報, 2010,3:104-106.
[2]廖德明. 臟話的性意識指向剖析[J]. 遼東學(xué)院學(xué)報(社會科學(xué)版), 2009,11(4):25-30.
[3]Pang B,Lee L,Vaithyanathan S.Thumbs up?Sentiment classification using machine learning techniques[C]//Proc of the EMNLP 2002. Morristown: ACL, 2002.79-86.
[4]Cui H,Mittal VO,Datar M. Comparative experiments on sentiment classification for online product reviews[C].//Proc.of the AAAI 2006.Menlo Park:AAAI Press,2006.1265-1270.
[5]NgV, Dasgupta S, Arifin SM N. Examining the role of linguistic knowledge sources in the automatic identification and classification of reviews[C]//Proceedings of the COLING/ACLMain Conference Poster Sessions,Morristown,NJ,USA:Association for Computational Linguistics, 2006: 611-618.
[6]Swapna Somasundaran, Janyce Wiebe,等. Manual annotation of opinion categories in meetings[C]//Proceedings of the Workshop on Frontiers in Linguistically Annotated Corpora 2006. Sydney, Australia. Association for Computational Linguistics.
[7]Wiebe J,Wilson T,Cardie C. Annotating expressions of opinions and emotions in language[J]. Language Resources and Evaluation,2005,39(2-3):164-210.
[8]百度百科.貼吧百科名片[OL].[2012-07-15].http://baike.baidu.com/view/2185.htm
[9]Huihsin Tseng, Pichuan Chang, Galen Andrew,Daniel Jurafsky, Christopher Manning. 2005. A Conditional Random Field Word Segmenter for Sighan Bakeoff 2005[C]. //Proceedings of the Fourth SIGHAN Workshop on Chinese Language Processing, 168-171. Jeju Island,Korea.
[10]Andreas Stolcke. SRILM—an extensible language modeling toolkit[C]//In International Conference on Spoken Language Processing,Denver, Colorado,September 2002.