本文介紹了如何使用Python SDK文本反垃圾介面,識別文本中涉及色情、暴恐、涉政等內容。
功能描述
文本反垃圾介面目前僅支援同步檢測。關於參數的詳細說明,請參見文本同步檢測。
一次請求可以檢測多條文本,也可以檢測單條文本。按實際檢測的文本條數進行計費,請參見計費概述。
前提條件
安裝Python依賴。關於安裝Python依賴的具體操作,請參見安裝Python依賴。
說明請一定按照安裝Python依賴頁面中的版本安裝,否則會導致調用失敗。
下載並在專案工程中引入Extension.Uploader工具類。
提交文本反垃圾檢測任務
在使用文本反垃圾檢測之前,您需要先提交常值內容檢測任務,如果您認為文本檢測的結果與您的期望不符,可以通過文本反垃圾結果反饋介面糾正演算法的檢測結果。文本垃圾檢測支援自訂關鍵詞,例如,添加一些競品關鍵詞等。如果被檢測的文本中包含您添加的關鍵詞,演算法會返回suggestion為block。
您可以前往Alibaba Content Security Service控制台添加關鍵詞,也可以通過API介面添加關鍵詞。
介面 | 描述 | 支援的Region |
TextScanRequest | 提交文本反垃圾檢測任務,檢測情境參數請傳遞antispam(scenes=antispam)。 |
|
範例程式碼
# 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 | 提交文本反垃圾檢測結果的反饋,以人工反饋的檢測結果糾正演算法檢測結果。 |
|
範例程式碼
# 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)