首页 > 编程知识 正文

腾讯敏感词在线检测,阿里敏感词有哪些

时间:2023-05-03 22:30:49 阅读:228628 作者:2153

前言

项目地址:Text-Sensitivity

笔者在开发小程序时,由于需要对用户输入内容进行敏感词检查,故需要使用现有服务商的相关API(自行开发NLP产品,难度大)。

我们技术团队初步使用的是腾讯云的文智,但由于我们的使用姿势不正确(腾讯云控制台密钥复制错误,导致鉴权总是失败),放弃了腾讯云的产品,转向对开发者更为友好的阿里云文本反垃圾API。

在成功将阿里云API投入到当前业务中运行后,我们认为在小程序审核上内容安全上,我们的产品是没有问题的。但小程序审核结果大失所望,产品的内容审核机制仍不够完善,于是就有了整合阿里云与腾讯云两大敏感词检测API的想法。

目录结构 ├── README.md├── aliTextSensitivity.js├── config.json├── index.js└── qcloudTextSensitivity.js复制代码 说明 index.js:整合阿里云与腾讯云敏感词检测aliTextSensitivity.js:阿里云敏感词检测qcloudTextSensitivity.js:腾讯云敏感词检测config.json:API配置 项目代码 Promise 的使用

在 aliTextSensitivity.js 和 qcloudTextSensitivity.js 使用了 Promise 对业务进行了封装。

在 index.js 使用了 await 语法糖,一定程度简化了开发流程。

核心代码 // index.jsasync function checkTextSensitivity(order) { let aliResult = await aliTextSensitivity(order); let qcloudResult = await qcloudTextSensitivity(order); // 当且仅当阿里云和腾讯云的审核通过,该词汇才会被审核通过 if (aliResult === 1 && qcloudResult === 1) { return 1; } return 0;}// aliTextSensitivity.jsasync function checkTextSensitivity(order) {bizCfg.requestBody = JSON.stringify({scenes: ["antispam"],tasks: [{"content": order}]}); // 使用 Promise 对业务封装return new Promise((resolve, reject) => {green(bizCfg, function (result) {let greenResult = JSON.parse(result);// 使用阿里云返回的文本建议作为判断阈值if (greenResult.data[0].results[0].suggestion !== "pass") {resolve(0);}resolve(1);});});}// qcloudTextSensitivity.jsasync function qcloudTextSensitivity(order) {let promises = []; // 搭建 Promise 数组for (let i = 1; i <= 2; i++) {promises.push(new Promise((resolve ,reject) => {capi.request({Region: "gz" ,Action: "TextSensitivity" ,content: order ,type: i} ,function (err ,data) {if (err) {console.log(err);reject();}resolve(data);});}));}// 对 Promise 数组使用 Promise.all 方法return new Promise((resolve, reject) => {Promise.all(promises).then(data => {if (data[0].sensitive > 0.5 || data[1].sensitive > 0.5) {resolve(0);}resolve(1);}).catch(() => reject());});}复制代码

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。