最近需要做一个敏感词过滤的功能,对用户在聊天过程中发送的内容进行实时过滤,有做过此类功能的兄弟们希望给个思路。比如服务器相关配置等,尽量解决关键词数据较多时过滤性能的问题。谢谢!
需要补充的是项目中是PHP环境
最近需要做一个敏感词过滤的功能,对用户在聊天过程中发送的内容进行实时过滤,有做过此类功能的兄弟们希望给个思路。比如服务器相关配置等,尽量解决关键词数据较多时过滤性能的问题。谢谢!
需要补充的是项目中是PHP环境
直接使用阿里云的敏感词过滤,不过是收费的.但是功能肯定比自己做更加完善
function word_filter($str, $type)
{
$str = strip_tags(htmlspecialchars_decode($str));
if (empty($str)) {
return true;
}
if ($type == 1) {
$sss = 'antispam';//不能有联系方式,用于论坛
}
if ($type == 2) {
$sss = 'keyword';//级别低
}
import('Ylfc.Aliyuncs.aliyun-php-sdk-core.Config', EXTEND_PATH); //此处包含类文件根据自己的当时包含
$ak['accessKeyId'] = 'ggrhrLTAI16kjtyjtjt4FqtSotuB9';
$ak['accessKeySecret'] = 'gerhkyuklytCXggRQqkIQEggerxD8NOSdJwzRDEimQQP';
//请替换成你自己的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;
}
业务量小的时候用 2~3人工审核+简单的关键词库就能搞定,量大的时候人工审核成本较高,可以用机器做一遍判断,拿不准的再交给人工审核,可以极大提高识别稳定性以及降低审核成本。说白了,识别效果依赖于三个因素:对政策的熟悉度、敏感词库丰富度和识别算法复杂度,想做好肯定是个大工程,我正在做这块服务,有兴趣可以私聊~
1 回答4.1k 阅读✓ 已解决
3 回答1.9k 阅读✓ 已解决
2 回答2.3k 阅读✓ 已解决
1 回答1.4k 阅读✓ 已解决
2 回答2.2k 阅读
1 回答675 阅读✓ 已解决
2 回答598 阅读✓ 已解决
敏感词过滤核心是算法。
不要有“使用replace替换”的想法就好。
1.接入第三方
2.自己实现: https://www.cnblogs.com/naaov...