全部產品
Search
文件中心

Content Moderation:文本反垃圾檢測

更新時間:Jul 06, 2024

本文介紹了如何使用Python SDK文本反垃圾介面,識別文本中涉及色情、暴恐、涉政等內容。

功能描述

文本反垃圾介面目前僅支援同步檢測。關於參數的詳細說明,請參見文本同步檢測

一次請求可以檢測多條文本,也可以檢測單條文本。按實際檢測的文本條數進行計費,請參見計費概述

前提條件

提交文本反垃圾檢測任務

在使用文本反垃圾檢測之前,您需要先提交常值內容檢測任務,如果您認為文本檢測的結果與您的期望不符,可以通過文本反垃圾結果反饋介面糾正演算法的檢測結果。文本垃圾檢測支援自訂關鍵詞,例如,添加一些競品關鍵詞等。如果被檢測的文本中包含您添加的關鍵詞,演算法會返回suggestion為block。

您可以前往Alibaba Content Security Service控制台添加關鍵詞,也可以通過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)