臧義
(四川大學計算機學院,成都610065)
網絡社區是指網上論壇、貼吧、微博、博客、網絡游戲聊天區等公共平臺,在這些平臺上用戶可以隨意通過發布帖子或者評論帖子來發表自己的言論。臟話作為人們的一種非正式語言,在現實生活中經常出現。互聯網的便利和虛擬性質更加助長了臟話的泛濫,尤其是在娛樂性質比較強的平臺如網絡游戲聊天區是臟話言論的高發地,在缺乏完善的監管之前,人們幾乎不會為自己所發表的臟話言論承擔責任,這為維護健康的網絡公共環境、凈化網絡風氣造成了風險。因此,研究針對一段文本來自動識別其是否為臟話的系統具有十分重要的現實意義。
臟話言論是指針對某個人或者某個群體的辱罵或者發表攻擊性言論的行為,根據辱罵內容的不同又可以細分為:性別歧視、種族歧視、仇恨言論、個人人身共計、諷刺、欺凌、褻瀆等方面,我們這里研究的臟話是指廣義方面的臟話。網絡社區的臟話言論一般具有以下特點:①臟話的書寫往往不規范,辱罵者一般為了規避敏感詞檢測系統,會采用縮寫、更換為其他語言等方式來表達同樣意思的臟話言論;②臟話的語言更新發展速度較快;③為了表達情緒,臟話相比于正式書面文本往往會伴隨一些表情符號或者不規范用法的標點符號;④部分臟話詞存在非臟話詞的意思,通過關鍵字匹配來屏蔽臟話詞并不一定能夠有效屏蔽臟話。
臟話識別可以看作一個文本二分類的任務,即針對一段聊天或評論文本判斷它是否是臟話言論。在實際應用中,臟話識別較為復雜的任務,主要表現在以下幾個方面:①由于臟話的表達形式豐富以及部分臟話詞存在非臟話意思,所以通過關鍵字匹配的方法往往效果不理想;②在語法上,臟話言論可能也比較流利,例如仇恨言論或方面;③存在模糊或者比擬手法等比較隱晦的臟話用法;④根據各細分領域的不同,臟話的文本風格也不相同。
早期對于臟話識別的技術主要是基于敏感詞過濾的方法,該方法事先要建立過濾敏感詞詞典,根據輸入的句子進行分詞,然后根據敏感詞詞典進行機器匹配,如果匹配到敏感詞則被認為這一段文本是臟話,該方法于精確率和召回率都不高,并且可能造成誤判,因此在實際應用中會影響用戶正常信息的發布。這是由于臟話語言更新速度較快、用戶變換臟話的形式以及部分臟話詞存在非臟話意思所導致的結果,所以敏感詞過濾的方法需要人為經常更新敏感詞詞典。S.O.Sood、J.Antin等人[1]通過使用眾包來標注了臟話行為,采用敏感詞過濾的方式褻瀆檢測,該方法由于無法適應臟話語言自身的特點,對于臟話識別具有一定的局限性。
基于敏感詞過濾的方法不能兼顧到臟話詞本身快速發展的特點,并且還可能會因為臟話詞在某些上下文中當非臟話詞意思使用的情況而導致本身不應為臟話的樣例被誤分類臟話。和敏感詞過濾方法相比,機器學習方法可以考慮人工設計加入更多更豐富的特征,例如N-Gram、詞匯特征、句法特征、用戶特定特征,等等。基于詞匯的檢測方法會將所有出現臟話詞的文本分類為臟話而造成的低精確率,而臟話詞在表達臟話詞意思的時候,往往帶有固定地句法搭配。考慮捕捉臟話詞及其使用搭配的句法特征,有助于提升臟話識別的效果。Thomas Davidson[2]和Zeerak Waseem[3]等人考慮引入N-Gram 的詞性特征來捕捉句法特征,并且還加入了一條推文中的hashtag 數量、提及用戶的數量、URL 數量等特征,最后采用了邏輯回歸模型來分類。William Warner 等人[4]也使用通過支持向量機來對捕捉的N-Gram 特征進行分分類。
傳統機器學習方法雖然取得不錯的效果,但是該方法依然存在以下缺點:①人工特征工程需要較大的時間成本和人力成本;②人工特征方法的模型在任務目標各異的臟話識別領域的通用性能較差,換一個數據集或者任務,則可能模型效果降低而導致部分特征需要重新設計。由于神經網絡方法具有自動學習特征的優勢,越來越多的研究人員使用神經網絡方法運用于臟話識別領域。
針對用戶故意對單詞進行混淆以規避臟話檢測系統的現象,Ji Ho Park 等人[5]考慮捕捉臟話詞字符層面的特征,采用基于詞級和字符級的卷積神經網絡(CNN)模型來分別抽取基于詞和字符的局部特征,再將兩部分特征進行融合,再通過一個CNN 抽取特征后進行分類。Mishra 等人[6]通過循環神經網絡(RNN)來捕捉字符級別的特征。Zhang 等人[7]考慮捕捉臟話詞的共現現象(即臟話詞及其附近固定用詞搭配),例如:(muslim refugees, deported)和(muslim refugees, not welcome)。而近兩年來,研究人員考慮使用更加復雜的模型以及引入輔助知識來提高臟話識別效果。研究人員發現單獨從一段文本尤其是在文本字數和信息較少的情況下很難去判斷該文本是否為臟話,作者的社區信息或者元數據包括作者之前的發文相關信息、個人信息以及基于社會網絡的信息,往往有作案前科的臟話言論者在社區信息或元數據特征上會有一個傾向性,捕捉這種特征的傾向性,有助于判斷該作者發文是臟話的準確率,提升臟話識別的效果。Mishra 等人[8]在N-Gram 字符級特征的基礎上考慮再加上作者的社區信息作為特征,Founta 等人[9]以文本和文本作者的元數據作為模型的兩個輸入,分別通過RNN 和多層感知機(MLP)抽取各自的隱藏特征,并使用一個拼接層將兩部分特征融合起來再作分類。作者在前期實驗中發現兩條輸入路徑存在收斂速率不同的情況,在論文的實驗中,作者使用遷移學習的思想,分別單獨訓練兩條路徑,保留拼接層以上的參數,重新初始化拼接層,重新訓練整個模型且只對之前保留的拼接層以上的參數進行微調。Rajamanickam 等人[10]基于《褻瀆心理學》[11]中的“臟話行為跟發表臟話者的心理狀態和情緒是息息相關的”這一理論,提出用多任務學習框架對臟話識別和情緒分類聯合建模,其中主任務是臟話識別,輔助任務是情緒分類。兩個任務采用交替學習的方式,在主任務訓練的時候,將兩個任務編碼端的信息進行融合再進行分類,并且同時更新兩個任務編碼端的參數;在輔助任務訓練的時候,僅更新輔助任務編碼端的參數。通過實驗證明,加入情緒分類的輔助任務的確有助于提升臟話識別的效果,而且相比于采用遷移學習的方式來訓練,交替訓練方式能夠更多保留輔助任務編碼端中隊臟話識別有幫助的信息。
目前臟話識別領域的數據集的概況有以下幾個特點:①公開可用的數據集較少。臟話識別領域大多數數據集只是作為研究人員各自的研究工作所用,并沒有對外公開,導致該領域數據集眾多,但是可以直接在網上下載的只有寥寥幾個。Waseem and Hovy 2016 數據集來自文獻工作[12],該工作主要檢測與宗教,性,性別和少數民族相關的常用誹謗和粗話,數據集來自推文,總共有16,202 條數據,標注分為三種:種族主義(占比12%),性別歧視(19.4%)或兩者都不存在(68.6%)。OffensEval 2019[13]數據集來自SemEval 2019 比賽第六個任務,旨在檢測社交媒體上的攻擊性言論,這里的攻擊性言論包含令人反感的語言或針對性的攻擊,包括侮辱,威脅,褻瀆性語言和臟話。該數據集共有13,240條推文,其中33%為攻擊性言論,另外67%為非攻擊性言論;②數據集的標注各異。由于研究人員根據各自的研究工作的任務不同,各自工作所用的數據集標注類別也各異,這就造成了目前臟話領域數據集雜亂的情況。并且由于各任務之間的數據分布差異,使得臟話領域中還沒有可以作為大量引用的標準化數據集;③標注數據困難。一方面臟話在數據分布中的比例較少,要標注一定量的正例(臟話)需要較大的工作量;另一方面,眾包模式可以解決標注工作量的問題,但是同時也存在著標注質量低的問題。
本文對網絡社區臟話識別的研究進展進行了介紹,簡單介紹了臟話識別的應用價值、臟話的特點和臟話識別任務的難點,重點介紹了臟話識別領域方法的發展歷程以及最新研究成果。臟話識別作為一個極具研究價值和現實意義的課題,該領域目前的研究水平還不夠充分,尤其深度學習的快速發展能夠為臟話識別領域的研究帶來重大突破。當下階段臟話識別領域不僅僅有難以獲取數據集的困難,而且大部分工作都集中在以英語為主要語言的領域,而在其他語言領域的研究極具匱乏,這些挑戰和研究空缺都需要研究人員去進一步探索新的解決方法。