(二)、社區反垃圾化之文本和諧化處理

(二)、社區反垃圾化之文本和諧化處理

序言:在以上篇博客中,我們講述到了通過計算重複率來鑑別文本是否爲垃圾內容,本篇我們就來通過垃圾文本庫來鑑定垃圾內容.

前期準備:
需要準備出一個垃圾文本庫,用於儲存我們收集的垃圾信息文本、可以選擇通過數據庫儲存也可以通過以json或txt文件的形式來進行儲存,我這邊提前準備了一個文本庫,大概有10000+的垃圾詞和網址在內.

image

場景:

用戶A和B在評論區進行了以下內容留言:

A:我草尼瑪...傻逼玩意...
B Go to hell Fuck you...

技術分析:

A和B用戶發表的內容中都含有大量的髒詞,可直接利用手頭詞庫進行和諧化處理.

PHP代碼如下:

function replaceBadWord($text, $replace = '*')
{
    $file = '詞庫路徑';

    if (file_exists($file)) {
        $contents = file_get_contents($file);
        $badWords = explode("\n", $contents);
        $badWords = array_map(function ($badWord) {
            $badWord = base64_decode($badWord);
            $badWord = str_replace(["\n", "\r", "\n\r", '"', ';'], '', $badWord);
            return $badWord;
        }, $badWords);

        foreach($badWords as $badWord){
            //存在髒詞就和諧化處理
            if(strpos($text,$badWord) !== false){
                $len = mb_strlen($badWord, 'utf8');
                $text = str_replace($badWord,str_repeat($replace,$len),$text);
            }
        } 
        
        return  $text;
    }
}

實戰演示:

將髒詞部分進行了和諧化處理.

image

尾:
以上就通過遍歷詞庫來完成了一個髒詞的和諧化處理,當然這樣處理起來效率可能有點低,可以考慮提前將文本讀到內存中,這樣就無需每次都去重新讀取文件,從而使用PHP來完成簡單運算即可.

缺點就是需要維護一個髒詞文本庫,需要進行不斷的維護和更新.

但目前這個辦法也是最簡單粗暴的形式,只需要維護好髒詞的特徵,即可完成和諧化處理,但對於項目級產品使用的話,可以嘗試使用阿里或網易的文本檢測技術,來減輕企業開發成本替代長期的人力資源開發.

就這些,Happy Coding.

image

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章