文本反垃圾检测

本文介绍了如何使用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

# 注意:此处实例化的client尽可能重复使用,提升检测性能。避免重复建立连接。
# 常见获取环境变量方式:
# 获取RAM用户AccessKey ID:os.environ['ALIBABA_CLOUD_ACCESS_KEY_ID']
# 获取RAM用户AccessKey Secret:os.environ['ALIBABA_CLOUD_ACCESS_KEY_SECRET']
clt = client.AcsClient("建议从环境变量中获取RAM用户AccessKey ID", "建议从环境变量中获取RAM用户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和suggestion设置后续操作。

文本反垃圾结果反馈

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

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

接口

描述

支持的地域

TextFeedbackRequest

提交文本反垃圾检测结果的反馈,以人工反馈的检测结果纠正算法检测结果。

  • 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 TextFeedbackRequest
import json

# 注意:此处实例化的client尽可能重复使用,提升检测性能。避免重复建立连接。
# 常见获取环境变量方式:
# 获取RAM用户AccessKey ID:os.environ['ALIBABA_CLOUD_ACCESS_KEY_ID']
# 获取RAM用户AccessKey Secret:os.environ['ALIBABA_CLOUD_ACCESS_KEY_SECRET']
clt = client.AcsClient("建议从环境变量中获取RAM用户AccessKey ID", "建议从环境变量中获取RAM用户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)
    result = json.loads(response)
    if 200 == result["code"]:
        print("response success.")
except Exception as err:
    print(err)