使用Python SDK文本反垃圾接口对文本内容进行色情、暴恐、涉政等风险识别。

背景信息

目前仅支持同步检测。一次请求可以检测多条文本,按实际检测的文本条数进行计费,具体请参见计费方式

准备工作

在进行具体的服务调用之前,请完成以下准备工作:

文本内容检测

文本垃圾检测支持自定义关键词,例如添加一些竞品关键词等。如果被检测的文本中包含您添加的关键词,算法会返回suggestion=block。

您可以在云盾内容安全控制台添加关键词,也可以通过API接口添加关键词。关键词编码请使用UTF-8,接口说明请参见文本反垃圾API文档

接口 描述 支持的Region
TextScanRequest 提交文本反垃圾检测任务,检测场景参数请传递antispam(scenes=antispam)。
  • cn-shanghai
  • cn-beijing
  • cn-shenzhen
  • ap-southeast-1
  • us-west-1
示例代码
#coding=utf-8
# 以下代码将调用文本检测接口。
from aliyunsdkcore import client
from aliyunsdkcore.profile import region_provider
from aliyunsdkgreen.request.v20180509 import TextScanRequest
from aliyunsdkgreenextension.request.extension import HttpContentHelper
import json
import uuid
import datetime

# 请使用您自己的AccessKey信息,支持修改配置文件或直接明文替换。
clt = client.AcsClient("yourAccessKeyId", "yourAccessKeySecret",'cn-shanghai')
region_provider.modify_point('Green', 'cn-shanghai', 'green.cn-shanghai.aliyuncs.com')
# 每次请求时需要新建request,请勿复用request对象。
request = TextScanRequest.TextScanRequest()
request.set_accept_format('JSON')
task1 = {"dataId": str(uuid.uuid1()),
         "content":"textContentToBeModerated",
         "time":datetime.datetime.now().microsecond
        }
# 文本反垃圾检测场景的场景参数是antispam。
request.set_content(HttpContentHelper.toValue({"tasks": [task1], "scenes": ["antispam"]}))
response = clt.do_action_with_exception(request)
print(response)
result = json.loads(response)
if 200 == result["code"]:
    taskResults = result["data"]
    for taskResult in taskResults:
        if (200 == taskResult["code"]):
             sceneResults = taskResult["results"]
             for sceneResult in sceneResults:
                 scene = sceneResult["scene"]
                 suggestion = sceneResult["suggestion"]
                 # 根据scene和suggetion设置后续操作。
                 # do something

文本反垃圾结果反馈

如果您认为文本检测的结果与您的期望不符,您可以通过文本反垃圾结果反馈接口纠正算法的检测结果。

系统会将您反馈的结果添加到对应的检测文本库,在您下次提交相似的内容进行检测时,以您通过反馈接口校正后的结果作为检测结果。具体接口说明请参见文本反垃圾结果反馈API文档

接口 描述 支持的Region
TextFeedbackRequest 提交文本反垃圾检测结果的反馈,以人工反馈的检测结果纠正算法检测结果。
  • cn-shanghai
  • cn-beijing
  • cn-shenzhen
  • ap-southeast-1
  • us-west-1
示例代码
#coding=utf-8
# 以下代码将调用文本检测反馈接口。
from aliyunsdkcore import client
from aliyunsdkcore.profile import region_provider
from aliyunsdkgreen.request.v20180509 import TextFeedbackRequest
from aliyunsdkgreenextension.request.extension import HttpContentHelper

# 请使用您自己的AccessKey信息。
clt = client.AcsClient("yourAccessKeyId", "yourAccessKeySecret","cn-shanghai")
region_provider.modify_point('Green', 'cn-shanghai', 'green.cn-shanghai.aliyuncs.com')
# 每次请求时需要新建request,请勿复用request对象。
request = TextFeedbackRequest.TextFeedbackRequest()
request.set_accept_format('JSON')

# taskId表示需要反馈的检测任务ID,label表示您期望的对应文本的检测结果。
request.set_content(HttpContentHelper.toValue({"taskId": "txt6z3Na17XbrD4P7QdJzYbk1-1q4seJ", "label": "normal"}))
response = clt.do_action_with_exception(request)
print(response)