首页站内杂志技术文摘
文章内容页

利用百度审核接口检测内容是否还有敏感词

  • 作者:雨祺
  • 来源: 原创
  • 发表于2024-05-19 12:10:47
  • 被阅读0
  • 敏感词检测工具是一种软件或程序,旨在检测文本或语音内容中的敏感词汇,并给出警告或过滤这些词汇。这些工具通常用于社交媒体平台、在线论坛、网站评论等涉及用户生成内容的场所,以确保社交媒体上的内容不包含令人反感、暴力或不恰当的语言、图片或视频。检测敏感词的工具通常会将文本内容分解为单个单词,并与预定义的敏感词列表进行比较。如果发现匹配,该工具会自动采取行动,例如自动编辑或删除违规内容。这些工具通常是基于机器学习和自然语言处理技术开发的,其准确性和效率取决于数据质量和算法设计。那么小编现在开始给大家讲解运用百度的api文本审核接口检测内容是否含有敏感词。
    首先我们看看效果吧。(输出结果为JSON)newstext内容字段参数支持post与get
    1. https://www.meiweny.cn/ecmsapi/index.php?mod=jiexi&act=baidchekconcent 
    因为newstext参数已经默认了文本内容,访问上面的地址输出结果如下

    如果要newstext要自定义文本,那么检测地址就是,get请求为例
    1. https://www.meiweny.cn/ecmsapi/index.php?mod=jiexi&act=baidchekconcent&newstext=%E4%B8%BA%E4%BB%80%E4%B9%88%E7%BD%91%E7%AB%99%E5%81%9A%E4%B8%8D%E8%B5%B7%E6%9D%A5%E5%91%A2  
    再次声明,newstext参数支持post与get。如果用post提交请按照Ajax异步提交相关代码进行post请求。下面开始讲解重点,如何用百度文本审核接口检测内容是否含有敏感词。代码如下:
    1. <?php 
    2. defined("ECMSAPI_MOD") or exit; 
    3. $appid = '71789344'
    4. $apiKey = "Mm2fDOGFkc2NjRQCOnRFaFZz"
    5. $secretKey = "E65r4fkhJzOVM6y3xALIlHtUgVhMyw93"
    6. $newstext= $api->param('newstext' ,'你是个傻逼啊,一直访问我做测试做鸡巴。' , 'RepPostStr'); 
    7. if (class_exists('Memcached')){ 
    8. $cache = $api->load('cache','mem'); // 第二个参数mem表示mem缓存,redis表示redis缓存,yac表示使用yac方式缓存,默认使用File方式 
    9. }else
    10. $cache = $api->load('cache','file');     
    11. $cacheName =md5($public_r['add_pcurl']).'pcbaiduneibaidurongcheckhecheng_access_token_' . md5($secretkey); 
    12. /** 公共模块获取token开始 */ 
    13. $response = $cache->get($cacheName); 
    14. if(null==$response){ 
    15. $auth_url = "https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=".$apiKey."&client_secret=".$secretKey; 
    16. $ch = curl_init(); 
    17. curl_setopt($ch, CURLOPT_URL, $auth_url); 
    18. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
    19. curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5); 
    20. curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); //信任任何证书 
    21. curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); // 检查证书中是否设置域名,0不验证 
    22. curl_setopt($ch, CURLOPT_VERBOSE, DEMO_CURL_VERBOSE); 
    23. $res = curl_exec($ch); 
    24. if(curl_errno($ch)){ 
    25. print curl_error($ch); 
    26. curl_close($ch); 
    27. $response = json_decode($res, true); 
    28. $cache->set($cacheName,$response, 3600*24*7);  
    29. $token = $response['access_token']; 
    30. function request_post($url = '', $param = ''){ 
    31. if (empty($url) || empty($param)) { 
    32. return false
    33. $postUrl = $url; 
    34. $curlPost = $param; 
    35. $curl = curl_init(); 
    36. curl_setopt($curl, CURLOPT_URL, $postUrl); 
    37. curl_setopt($curl, CURLOPT_HEADER, 0); 
    38. curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); 
    39. curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); 
    40. curl_setopt($curl, CURLOPT_POST, 1); 
    41. curl_setopt($curl, CURLOPT_POSTFIELDS, $curlPost); 
    42. $data = curl_exec($curl); 
    43. curl_close($curl); 
    44. return $data; 
    45. $url = 'https://aip.baidubce.com/rest/2.0/solution/v1/text_censor/v2/user_defined?access_token=' . $token; 
    46. $bodys = array( 
    47.     'text' => $newstext 
    48. ); 
    49. $res = request_post($url, $bodys); 
    50. $resArray = json_decode($res, true); 
    51. if($resArray['conclusionType']=="1"){ 
    52. $api->load('fun')->json(1,'合规');     
    53. }else
    54. $minganci = []; // 敏感词数组 
    55. foreach ($resArray['data'] as $dataItem) { 
    56.     $msg = $dataItem['msg']; 
    57.     if (isset($dataItem['hits']) && is_array($dataItem['hits'])) { 
    58.         foreach ($dataItem['hits'] as $hit) { 
    59.             if (isset($hit['words']) && is_array($hit['words']) && count($hit['words']) > 0) { 
    60.                 $keyword = $hit['words'][0]; 
    61.                 $datasetName = $hit['datasetName']; 
    62.                 $minganci[] = ['msg' => $msg, 'datasetName' => $datasetName, 'keyword' => $keyword]; 
    63.             } 
    64.         } 
    65.     } 
    66. $keywordsminganci = array_unique(array_map('preg_quote', array_column($minganci, 'keyword'))); 
    67. $pattern = '/(' . implode('|', $keywordsminganci) . ')/iu'// 构建正则表达式,移除单词边界限制 
    68. $censoredText = preg_replace_callback($pattern, function ($matches) { 
    69.     return str_repeat('*', strlen($matches[1])); 
    70. }, $newstext);  
    71. $result = ['minganci' => $minganci,'newstext' => $newstext,'censoredText' => $censoredText]; 
    72. $api->load('fun')->json(0,$result,'含有违禁词');  
    以上代码需要安装本站的相关插件才可以运行,API万能插件下载地址:
    1. https://www.meiweny.cn/zazhi/ruanjianleyuan/2.html 
    整个利用百度审核接口检测内容是否还有敏感词教程讲解结束,逻辑就是这么简单,至于你想通过该接口想怎么检测其他字段值需要把newstext参数该下即可。懂点ajax请求的皮毛知识就能完成。当然还用一种方法就是新建一个敏感词的数据表手动录入敏感词,而后在遍历循环进行检测替换。不过小编还是推荐用百度文本审核接口,全自动且更符合当前ai人工智能环境,并且敏感词更为齐全。

     
    【审核人:站长】

        标题:利用百度审核接口检测内容是否还有敏感词

        本文链接:https://www.meiweny.cn/zazhi/zhongwangjiaocheng/903.html

        赞一下

        深度阅读

        • 您也可以注册成为美文苑的作者,发表您的原创作品、分享您的心情!

        阅读记录

          关注美文苑