在实际项目中,难免会需要屏蔽敏感词汇。本文以tp5为实例封装一个敏感词检测接口供大家参考。
阿里云内容检测API SDK开发包:https://help.aliyun.com/knowledge_detail/50180.html
setMethod("POST");
$request->setAcceptFormat("JSON");
$task1 = array('dataId' => uniqid(),
'content' => $content
);
/**
* 文本垃圾检测: antispam
* 关键词检测: keyword
**/
$request->setContent(json_encode(array("tasks" => array($task1),
"scenes" => array("antispam"))));
try {
$response = $client->getAcsResponse($request);
$result=array();
if(200 == $response->code){
$taskResults = $response->data;
foreach ($taskResults as $taskResult) {
if(200 == $taskResult->code){
$sceneResults = $taskResult->results;
foreach ($sceneResults as $sceneResult) {
$scene = $sceneResult->scene;
$suggestion = $sceneResult->suggestion;
$result=$taskResult;
}
}else{
print_r("task process fail:" + $response->code);
}
}
}else{
print_r("detect not success. code:" + $response->code);
}
$result=$result->results[0];
$data=array();
if($result->label == 'normal'){
$data['code']=true;
$data['label']=$result->label;
}else{
$data['code']=false;
$data['label']=self::getlabel($result->label);
}
return $data;
} catch (Exception $e) {
print_r($e);
}
}
static private function getlabel($label){
switch ($label){
case 'normal':
return '正常文本';
break;
case 'spam':
return '输入的内容含垃圾信息';
break;
case 'ad':
return '输入的内容含广告';
break;
case 'politics':
return '输入的内容含渉政';
break;
case 'terrorism':
return '输入的内容含暴恐';
break;
case 'abuse':
return '输入的内容含辱骂';
break;
case 'porn':
return '输入的内容含色情';
break;
case 'flood':
return '输入的内容含灌水';
break;
case 'contraband':
return '输入的内容含垃违禁';
break;
case 'customized':
return '输入的内容包含敏感词';
break;
default:
return '';
break;
}
}
}相关阅读:
tp5如何使用bootstrapvalidator进行异步验证邮箱的示例
以上就是本篇文章的全部内容,同学们如果有疑问,可以在下方评论区探讨哦~










