异步文本审核
接入说明
异步文本识别: 最大支持 20,000 个字符识别, 非实时回调接口。
支持语种:文本审核默认识别中文,如需识别其他语种(例如,英文、日语、韩语、泰语、越南语、马来语、印尼语、印地语、菲律宾语、阿拉伯语、土耳其语、俄语、德语、法语、意大利语、西班牙语、葡萄牙语等)中的风险内容,请联系我们进行相应配置,以保证识别效果。
请求地址:
- 国内:
http://api.text.tuputech.com/v3/recognition/text/async/<secretId>
secretId 需替换为您的 secretId,请联系我们为您开通 secretId。
请求方法:
POST
请求头:
Content-Type: application/json
QPS限制
- 1 秒最多允许请求 50 次;
- 测试期最多允许同时处理 3 个文本,正式使用请与我们沟通协商
如有特殊并发需求,请联系我们。
请求及返回参数:
请求示例:
{
"contentId": "your_contentId",
"content": "32132131",
"callbackUrl": "http://your_cb.com",
"userId": "your_userId",
"forumId": "your_forumId",
"timestamp": 1541499770,
"nonce": 0.8469537531104208,
"signature": "CsIMcHuWqn/QFEnHWcFEhrB7ydcg5xTKawpRpNqA9Nw2WlCVIDR5jDcyUF85"
}
curl 请求示例
curl -X POST --header 'Content-Type: application/json' \
-d '{
"content": "32132131",
"contentId": "your_contentId",
"userId": "your_userId",
"forumId": "your_forumId",
"timestamp": 1541499770,
"nonce": 0.8469537531104208,
"signature": "CsIMcHuWqn/QFEnHWcFEhrB7ydcg5xTKawpRpNqA9Nw2WlCVIDR5jDcyUF85"
}' \
'http://api.text.tuputech.com/v3/recognition/text/async/your_secretId'
请求参数说明:
参数名 | 类型 | 是否必填 | 说明 |
---|---|---|---|
content | String | 是 | 待检测的文本内容,可以为词语或句子, 最大支持 20,000 字符 |
contentId | String | 否 | 客户自定义信息,方便根据该 Id 找到相关的文本,建议可设置为 secretId + 当前时间 + 随机数,参考请求示例 |
userId | String | 否 | 用户 Id |
forumId | String | 否 | 板块 Id |
timestamp | Number | 是 | 当前的服务器的 Unix 时间戳 |
nonce | Number | 是 | 随机数 |
signature | String | 是 | 我们采用的数字证书签名算法是:"RSA-SHA256",签名输出类型是:base64 ,具体步骤如下:1. 所有参与签名的参数为: secretId 、 timestamp 、 nonce ,用英文半角逗号 , 相连,得到 sign_string ;2. 利用您的私钥,使用算法 "RSA-SHA256" 签名,输出为 base64 格式,得到参数 signature 的值。点击管理公钥证书查看如何生成私钥,及如何上传您的公钥用于数字签名的认证; |
响应及回调
注意:同步响应及异步回调结果都是此结构,不同的是 json 里的信息
请求的同步响应
json 字段数据示例:
{
"requestId": "611b896c0d2b6305747aeb55",
"code": 0,
"message": "success",
"nonce": "0.01627771095362096",
"timestamp": 1552391372490
}
响应参数说明
参数名 | 类型 | 是否必有 | 说明 |
---|---|---|---|
requestId | String | 是 | 客户提交的文本审核的唯一请求 id,后续可以通过该 id 查到文本的相关信息 |
异步回调参数说明
参数名 | 类型 | 是否必有 | 说明 |
---|---|---|---|
requestId | String | 是 | 客户提交的文本审核的唯一请求 id,后续可以通过该 id 查到文本的相关信息 |
<taskId> | Object | 是 | 任务 id 对应的审核结果 |
taskId
57c4036c557603652aeeb222
taskId对象中的数据结构
参数名 | 类型 | 是否必有 | 说明 |
---|---|---|---|
content | String | 是 | 检测的文本内容 |
action | String | 是 | 检测结果, pass : 通过, block : 不通过, review : 复审 |
label | String | 是 | 标签, 具体参考识别分类值 |
review | Bool | 是 | 是否需要复审, true : 是, false : 否 |
rate | Float | 是 | 吻合分数,值越高机器对判定结果越有把握,取值为 0 到 1 之间或者空值 null (外语语种审核不返还分数) |
details | Array | 是 | 命中的关键词详细信息,如果 actions 为 pass ,则 details 为空数组,详见以下数据结构 |
contentId | String | 否 | 客户自定义信息 |
userId | String | 否 | 用户Id |
forumId | String | 否 | 版块Id |
details数据结构
参数名 | 类型 | 是否必有 | 说明 |
---|---|---|---|
keyword | String | 否 | 命中的关键词。 1. 若命中算法模型,值为空字符串; 2. 若命中单个关键词,值为关键词字符串,例如: 习近平 ;3. 若同时命中多个关键词(组合规则),值为通过 + 拼接,且被括号包裹的字符串,例如:(加+微信) ;(A+B) 表示关键词 A 与 B 之间无顺序要求,{A+B} 表示关键词 A 与 B 之间按照出现顺序匹配 |
hint | String | 否 | 检测文本中的违规内容片段,例如原文为 那我先加您微信,发您一下 ,值为:加您微信 |
mainLabel | String | 否 | 命中的风险主标签, 具体参考识别分类值 |
subLabel | String | 否 | 二级标签 |
startPos | Number | 否 | 违规片段所在文本区间的起始位置,从检测文本的第一个字符起,以 0 开始计数。关于文本区间,请参看下文 Q&A 部分。 |
endPos | Number | 否 | 违规片段所在文本区间的结束位置,从检测文本的第一个字符起,以 0 开始计数。关于文本区间,请参看下文 Q&A 部分。 |
文本识别结果数据示例
{
"57c4036c557603652aeeb222":{
"contentId":"test-contentId",
"userId":"user-id",
"forumId":"test-id",
"content":"2014年6月15号的下午,3名手持凶器的暴徒在对新疆和田市一家棋牌室内的市民进行疯狂砍杀的时候,遭到市民的奋力反击,很快被警民联手制伏,3名暴徒当中,两人因伤重不治而亡,一人被擒。昨天,在当地的看守所,记者见到了被抓获的犯罪嫌疑人木尔扎提。 木尔扎提头上的伤是在案发时遭群众反击留下的。警察来了把他带到了医院,医生把他头上的伤缝好。 监控显示,案发前,木尔扎提3人曾在棋牌室门前逗留了一分半钟,密谋袭击行动。照他们原来的想法是在这里搞袭击,一是容易得手且不容易被警察发现,二是可以顺利逃跑。 木尔扎提先观察了5秒钟,随后跟一起进去的人拿着斧头开始砍,也朝一个人开始砍。 木尔扎提选择的第一个袭击对象是监控画面中唯一的一位女士。 木尔扎提同伙有跟他们说砍人要分年龄,见人就砍。 想着没机会逃跑了 袭击行动开始后,暴徒们却感到了一丝恐惧。 木尔扎提当时有一些怕,乘客用椅子桌子朝他们打过来,他表示发生这种事(激烈反抗)真的有一些害怕。看到人们并没有被他们吓到,三名暴徒企图逃跑,可当他们跑出棋牌室后却发现其实已经无路可逃。 在外面群众拿着棍子朝他们过来,当时他想的就是他们没有机会逃跑了。面对人们组成的包围圈,暴徒们慌不择路继续实施砍杀。可越来越多的群众加入到了围堵的行动中。这时,正在附近巡逻的武装力量也及时赶到了现场,3名暴徒被彻底制伏。 能活着被警察抓获 木尔扎提也很庆幸自己能被警察抓获。木尔扎提表示,现在还活着,如果我能出去的话,再不会干这种事了。我会好好地在家照顾父母。 据当地警方介绍,该团伙成员深受宗教极端思想影响,相信通过杀戮可以换取进入天堂的资格。 木尔扎提表示,他们跟我讲关于“圣战”的事情,说只要进行“圣战”而死,死后就可以不受“审判”直接进入天堂。",
"action":"block",
"label":"Abuse",
"review":false,
"rate":1,
"details":[
{
"keyword":"昨天在当地的看守所记者见到了被抓获的犯罪嫌疑人木尔扎提",
"hint":"",
"mainLabel":"Sensitive",
"startPos":91,
"endPos":121
},
{
"keyword":"警察",
"hint":"警察",
"mainLabel":"Sensitive",
"subLabel":"Social_Negative_Events",
"startPos":144,
"endPos":167
},
{
"keyword":"警察",
"hint":"警察",
"mainLabel":"Sensitive",
"subLabel":"Social_Negative_Events",
"startPos":205,
"endPos":246
},
{
"keyword":"砍人",
"hint":"砍人",
"mainLabel":"Sensitive",
"subLabel":"Social_Negative_Events",
"startPos":314,
"endPos":338
},
{
"keyword":"警察",
"hint":"警察",
"mainLabel":"Sensitive",
"subLabel":"Social_Negative_Events",
"startPos":570,
"endPos":597
},
{
"keyword":"警方",
"hint":"警方",
"mainLabel":"Sensitive",
"subLabel":"Social_Negative_Events",
"startPos":640,
"endPos":683
}
]
},
"requestId":"619205955c56844be4f7fbde",
"code":0,
"message":"success",
"nonce":0.932176752285591,
"timestamp":1636959639392
}
Q&A
Q:违规片段所在的文本区间是指什么?什么是文本区间位置?
A:文本区间指的是违规片段所在的句子。返回的文本区间位置是指,违规片段所在句子在检测文本中的大致位置,用于定位违规片段。Q: 文本区间划分的依据是什么?
A: 按句子进行区间划分。一般是以句号、问号、感叹号、分号作为句子结束标志,中英文字符均适用。若原句过短则可能呈现的是多个句子合并后的区间。Q: 为什么只能返回文本区间位置,不能返回违规片段在文本中的精确位置?
A: 检测文本可能含有违规拼音或者谐音字等,nlp 识别会先对文本内容进行预处理,导致无法匹配到原文,所以只返回违规片段所在句子区间的大致位置。