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

功能描述

文本反垃圾接口目前仅支持同步检测。关于参数的详细说明,请参见文本同步检测

一次请求可以检测多条文本,也可以检测单条文本。按实际检测的文本条数进行计费,请参见计费方式概述

前提条件

提交文本反垃圾检测任务

在使用文本反垃圾检测之前,您需要先提交文本内容检测任务,如果您认为文本检测的结果与您的期望不符,可以通过文本反垃圾结果反馈接口纠正算法的检测结果。文本垃圾检测支持自定义关键词,例如,添加一些竞品关键词等。如果被检测的文本中包含您添加的关键词,算法会返回suggestion为block。

您可以前往内容安全控制台添加关键词,也可以通过API接口添加关键词。

接口 描述 支持的Region
TextScanRequest 提交文本反垃圾检测任务,检测场景参数请传递antispam(scenes=antispam)。
  • cn-shanghai:华东2(上海)
  • cn-beijing:华北2(北京)
  • cn-shenzhen:华南1(深圳)
  • ap-southeast-1:新加坡
示例代码
# coding=utf-8
# 以下代码用于调用文本检测接口。
from aliyunsdkcore import client
from aliyunsdkcore.profile import region_provider
from aliyunsdkgreen.request.v20180509 import TextScanRequest
import json
import uuid
import datetime

# 请使用您的AccessKey信息,支持修改配置文件或直接明文替换。
clt = client.AcsClient("您的AccessKey ID", "您的AccessKey Secret",'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(bytearray(json.dumps({"tasks": [task1], "scenes": ["antispam"]}), "utf-8"))
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设置后续操作。

文本反垃圾结果反馈

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

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

接口 描述 支持的Region
TextFeedbackRequest 提交文本反垃圾检测结果的反馈,以人工反馈的检测结果纠正算法检测结果。
  • cn-shanghai
  • cn-beijing
  • cn-shenzhen
  • ap-southeast-1
示例代码
# coding=utf-8

from aliyunsdkcore import client
from aliyunsdkcore.profile import region_provider
from aliyunsdkgreen.request.v20180509 import TextFeedbackRequest
import json

# 请使用您的AccessKey信息。
clt = client.AcsClient("您的AccessKey ID", "您的AccessKey Secret", 'cn-shanghai')
region_provider.modify_point('Green', 'cn-shanghai', 'green.cn-shanghai.aliyuncs.com')
request = TextFeedbackRequest.TextFeedbackRequest()
request.set_accept_format('JSON')

request.set_content(
    json.dumps({"dataId": "检测数据ID", "taskId": "文本审核任务ID",
                "content": "文本内容", "label": "spam", "note": "备注信息"}))

try:
    response = clt.do_action_with_exception(request)
    print response
except Exception, err:
    print err.__str__()