自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

基于 AC 自動機和貝葉斯方法的垃圾內容識別

人工智能 機器學習
雖以識別垃圾內容為出發(fā)點,建立了基于 AC 自動機和「貝葉斯」思想的內容識別系統,但這套系統還可以運用到其他場景,比如輿情、其他內容歸類等,在這兒就不展開了。

背景

作為一個開放領域的知識社交平臺,知乎為大家提供了「友善」、「理性」、「專業(yè)」的討論氛圍,吸引了大量用戶參與,產生了很多優(yōu)質內容。但同時也吸引了一些垃圾制造者,在知乎上生產了不少的垃圾內容,如「違法」、「廣告」、「淫穢色情」、「人身攻擊」等,嚴重影響了知乎用戶的正常討論交流,極大地影響了用戶體驗,同時也對社區(qū)管理造成了較大的干擾。

我們先來看看都有哪些真實的垃圾:

非法內容

用侮辱、夸張的手法嘲諷他人,如「腦殘」、「智商欠費」等等。這類內容表現為不尊重他人,用惡毒的言語刺激對方,使得討論無法正常有效進行。

還有一些垃圾廣告,如微商。

這些垃圾內容嚴重影響了知乎用戶的正常交流。此前我們的工程師們也嘗試了一些方法去識別處理它們。如文本分類模型,準確率達到了 96%, 每天識別 300+ 條;利用 DFA 根據關鍵詞大量召回。這些嘗試雖然都取得了一定的效果,但是召回不夠、或召回過多非垃圾內容、或者存在不少的誤傷。為此我們引入人工審核,但不能快速處理,容易造成內容堆積,而且對管理員也是很大壓力,平均每周要消耗 1 個人力。

前期的嘗試雖然效果不是很理想,但積累了比較多的數據。對這些數據的分析,我們發(fā)現這些垃圾內容是有套路的?;诖?,我們利用 Aho-Corasick 自動機實現多模匹配,在其基礎上增加了過濾機制,實現了第一版的垃圾內容分析系統,取得了不錯的效果。

Aho-Corasick 自動機

AC 自動機算法于 1975 年產生于貝爾實驗室。該算法巧妙地將多模式串建成一個確定性有限狀態(tài)機 (DFA),以待匹配字符串作為該 DFA 的輸入,使狀態(tài)機進行狀態(tài)轉移,當到達某些特定的狀態(tài)時,完成模式匹配, 能??

??時間內完成多模式匹配(其中 n 為待匹配字符串的長度)。下面以模式串「 he / she / his / hers 」構建一個 AC 自動機舉例說明(如圖一所示)

??

??

當輸入一個字符串時「ushers」,該自動機從狀態(tài) 0 開始進行狀態(tài)轉換,完整的狀態(tài)轉移路徑如圖二所示


 

??

??

當遇到 AC 中的紅色節(jié)點時,說明發(fā)生了模式匹配,匹配到的模式有:「he」、「she」、「hers」。

具體可以用 Double Array Trie 實現 AC 自動機,在保持高效多模匹配的基礎,進一步節(jié)省空間。

貝葉斯方法

雖然 AC 自動機能快速的從字符串中找到存在于詞典中的關鍵詞,但這僅僅能滿足一小部分需求,即不顧準確率的大量召回,很顯然會造成誤傷,這對知友也是很不友好??隙ㄓ兄跤脩魰?,直接用「貝葉斯」方法不就可以搞定嗎?你看人家做 spam 郵件過濾,不也做得還不錯,還用什么 AC ?對對對,你說的都是正確的。但是實驗發(fā)現,單純地用 「貝葉斯」方法直接進行過濾時,準確率和召回率都不是很理想。究其原因呀,有 1)知友們知識面廣、思維發(fā)散,2)長尾,很多詞語出現頻次相對較低。

AC + 貝葉斯 > max { AC, 貝葉斯 }

考慮到上述問題,我們提出了利用 AC 自動機,根據設定的類別關鍵詞圈定相應類別的內容,然后在每個類別里利用「貝葉斯」方法的思想準確過濾出垃圾內容?,F在我們有了解決問題的思想(思想很重要),來看看我們具體是怎么利用 AC 和「貝葉斯」這兩個神器,打造垃圾內容過濾的。直接上圖,一圖勝千言。

??

??

圖三中「主關鍵詞」就是利用 AC 自動機按關鍵詞圈定相應類別的內容。圈定之后,利用「可有可無」這兒所配置的策略在每個類別里進行垃圾內容過濾,策略即是利用「貝葉斯」思想總結出來的。

下面以評論數據為例,介紹如何運用貝葉斯方法來總結策略。

首先,分析樣本數據,提取每一個詞,計算每個詞在正常評論和垃圾評論中出現的頻率。比如,我們假定「sb」這個詞,在 1000 條垃圾評論中,有 500 條包含該詞,那么它的出現頻率就是0.5;而在 1000 條正常評論中,只有 2 條包含該詞,那么出現頻率就是0.002。那現在對一條新的評論,發(fā)現其中包含「sb」這個詞,它是垃圾評論的概率可以通過式一計算。(此處用S和H分別表示垃圾評論和正常評論,W表示詞 「sb」,P(S)表示垃圾評論的概率,P(W/S)表示垃圾評論中W出現的頻率)

 

??

??

 

(式一)

在沒有更多先驗知識的情況下,我們通常假設P(S)=P(H=0.5)。那在前文的例子中,很容易計算出P(S/W)=0.996,說明「sb」詞很容易區(qū)分出垃圾評論。通過這樣的方式去挖掘出詞語,當然也可以從正面角度考慮,比如「我」這個詞,在我們的數據中能較好地區(qū)分出不是垃圾評論。此外,還可以考慮多個詞語聯合共現,甚至詞之間的空間結構關系。這些在目前的邏輯里都是支持的。

有了具體實現,我們來看看實際的效果,如圖四所示。(對于不利于討論的內容也會被處理)


線上效果如圖五所示。


這套邏輯已融入到了算法機器人「瓦力」的大腦中,在知乎的諸多場景下,如評論、私信、回答、提問等,以 99% 的準確率處理著每天產生的垃圾內容。每天處理掉 3000+ 條垃圾評論,上線后處理了站內上萬條封建迷信提問、上千條代為完成個人任務、上千條求醫(yī)問藥等違規(guī)提問,幫助知友們維護起了一個「友善」的討論環(huán)境。

此外,這套系統也十分方便運營人員實現一站式自助策略管理。首先通過樣本制定策略,然后通過離線版本進行策略驗證,評估其準確率和召回率,最后自助上線策略。整個過程均無需工程師的介入,大大提高了運營效率。

總結和展望

為了友善地討論交流,我們踏出了這一小步,主動識別處理了諸多垃圾內容。但還有很長的路要走,后續(xù)我們將為機器人「瓦力」打造更加完善智能的大腦,如自動歸納策略,引入深度學習等,為其建立更加科學高效的識別能力,以全自動的方式準確地識別出所有內容。

雖以識別垃圾內容為出發(fā)點,建立了基于 AC 自動機和「貝葉斯」思想的內容識別系統,但這套系統還可以運用到其他場景,比如輿情、其他內容歸類等,在這兒就不展開了。

責任編輯:武曉燕 來源: 知乎專欄
相關推薦

2017-08-07 13:02:32

全棧必備貝葉斯

2022-09-28 08:00:00

Python機器學習算法

2021-04-18 09:57:45

Java樸素貝葉斯貝葉斯定理

2017-06-12 06:31:55

深度學習貝葉斯算法

2017-07-12 11:27:05

樸素貝葉斯情感分析Python

2012-09-24 10:13:35

貝葉斯

2022-10-30 14:54:58

測試數據貝葉斯推理

2024-11-11 15:02:16

2023-01-31 15:49:51

機器學習函數評分函數

2013-05-08 09:05:48

狐貍貝葉斯大數據

2017-03-29 14:50:18

2023-02-22 07:04:05

自動機原理優(yōu)化實踐

2016-08-30 00:14:09

大數據貝葉斯

2016-08-30 00:19:30

2024-10-11 16:53:16

貝葉斯人工智能網絡

2017-11-07 11:17:40

樸素貝葉斯畫像數據數據挖掘

2021-08-30 11:53:36

機器學習人工智能計算機

2017-07-24 10:36:37

Python機器學習樸素貝葉斯

2023-10-18 08:00:00

貝葉斯網絡Python醫(yī)療保健

2023-10-23 07:13:04

點贊
收藏

51CTO技術棧公眾號