鍍金池/ 問答/PHP  Python/ 最近需要做一個敏感詞過濾的東西,有做過的幫忙給個思路

最近需要做一個敏感詞過濾的東西,有做過的幫忙給個思路

最近需要做一個敏感詞過濾的功能,對用戶在聊天過程中發(fā)送的內容進行實時過濾,有做過此類功能的兄弟們希望給個思路。比如服務器相關配置等,盡量解決關鍵詞數(shù)據(jù)較多時過濾性能的問題。謝謝!
需要補充的是項目中是PHP環(huán)境

回答
編輯回答
假灑脫

我們是在用戶注冊以及修改用戶名是進行這個敏感詞過濾。
redis中存儲著敏感詞庫。
用戶輸入,之后通過kmp算法匹配敏感詞是否在用戶輸入中

2017年2月7日 00:02
編輯回答
九年囚

據(jù)我所知,絕大多數(shù)實時敏感詞過濾都是node棧

2017年1月27日 08:27
編輯回答
忘了我

敏感詞過濾核心是算法。

不要有“使用replace替換”的想法就好。

1.接入第三方
2.自己實現(xiàn): https://www.cnblogs.com/naaov...

2017年9月6日 15:36
編輯回答
下墜

直接使用阿里云的敏感詞過濾,不過是收費的.但是功能肯定比自己做更加完善

function word_filter($str, $type)
{
    $str = strip_tags(htmlspecialchars_decode($str));
    if (empty($str)) {
        return true;
    }
    if ($type == 1) {
        $sss = 'antispam';//不能有聯(lián)系方式,用于論壇
    }
    if ($type == 2) {
        $sss = 'keyword';//級別低
    }
    import('Ylfc.Aliyuncs.aliyun-php-sdk-core.Config', EXTEND_PATH); //此處包含類文件根據(jù)自己的當時包含
    $ak['accessKeyId'] = 'ggrhrLTAI16kjtyjtjt4FqtSotuB9';
    $ak['accessKeySecret'] = 'gerhkyuklytCXggRQqkIQEggerxD8NOSdJwzRDEimQQP';
    //請?zhí)鎿Q成你自己的accessKeyId、accessKeySecret
    $iClientProfile = DefaultProfile::getProfile("cn-shanghai", $ak["accessKeyId"], $ak["accessKeySecret"]);
    DefaultProfile::addEndpoint("cn-shanghai", "cn-shanghai", "Green", "green.cn-shanghai.aliyuncs.com");
    $client = new DefaultAcsClient($iClientProfile);
    $request = new \Green\Request\V20170112\TextScanRequest();
    $request->setMethod("POST");
    $request->setAcceptFormat("JSON");
    $task1 = array('dataId' => uniqid(),
        'content' => $str
    );
    $request->setContent(json_encode(array("tasks" => array($task1), "scenes" => array($sss))));
    $response = $client->getAcsResponse($request);
    date_default_timezone_set('PRC');
    if (200 == $response->code) {
        $taskResults = $response->data;
        $arr = json_decode(json_encode($taskResults), true);
        foreach ($taskResults as $taskResult) {
            if (200 == $taskResult->code) {
                $sceneResults = $taskResult->results;
                foreach ($sceneResults as $sceneResult) {
                    $scene = $sceneResult->scene;
                    $suggestion = $sceneResult->suggestion;
                    if ($suggestion != 'pass') {
                        return false;
                    }
                }
            }
        }
    }
    return true;
}
2018年2月26日 11:26