全部产品
Search
文档中心

内容安全:文本反垃圾检测

更新时间:Jul 31, 2023

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

功能描述

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

一次请求可以检测多条文本,也可以检测单条文本。按实际检测的文本条数进行计费,请参见开通与收费

前提条件

已安装Go依赖。关于安装Go依赖的具体操作,请参见安装Go依赖

说明

请一定按照安装Go依赖页面中的版本安装,否则会导致调用失败。

文本内容检测

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

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

接口

描述

支持的Region

TextScanRequest

提交文本反垃圾检测任务,检测场景参数请传递antispam(scenes=antispam)。

  • cn-shanghai:华东2(上海)

  • cn-beijing:华北2(北京)

  • cn-shenzhen:华南1(深圳)

  • ap-southeast-1:新加坡

示例代码

package main

import (
   "encoding/json"
   "fmt"
   "github.com/aliyun/alibaba-cloud-sdk-go/services/green"
   "strconv"
)

func main() {
   /**
    * 注意:此处实例化的client尽可能重复使用,提升检测性能。避免重复建立连接。
    * 常见获取环境变量方式:
    *     获取RAM用户AccessKey ID:os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_ID")
    *     获取RAM用户AccessKey Secret:os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET")
    */
   client, _err := green.NewClientWithAccessKey(
        "cn-shanghai", 
        "建议从环境变量中获取RAM用户AccessKey ID", 
        "建议从环境变量中获取RAM用户AccessKey Secret")
   if _err != nil {
      fmt.Println(_err.Error())
      return
   }
   task := map[string]interface{}{"content": "待检测文本内容"}
  // scenes:检测场景,唯一取值:antispam。
   content, _ := json.Marshal(
      map[string]interface{}{
         "scenes": [...]string{"antispam"},
         "tasks":  [...]map[string]interface{}{task},
      },
   )

   textScanRequest := green.CreateTextScanRequest()
   textScanRequest.SetContent(content)
   textScanResponse, err := client.TextScan(textScanRequest)
   if err != nil {
      fmt.Println(err.Error())
      return
   }
   if textScanResponse.GetHttpStatus() != 200 {
      fmt.Println("response not success. status:" + strconv.Itoa(textScanResponse.GetHttpStatus()))
   }
   fmt.Println(textScanResponse.GetHttpContentString())
}

文本反垃圾结果反馈

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

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

接口

描述

支持的地域

TextFeedbackRequest

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

  • cn-shanghai:华东2(上海)

  • cn-beijing:华北2(北京)

  • cn-shenzhen:华南1(深圳)

  • ap-southeast-1:新加坡

示例代码

package main

import (
   "encoding/json"
   "fmt"
   "github.com/aliyun/alibaba-cloud-sdk-go/services/green"
   "strconv"
)

func main() {
   /**
    * 注意:此处实例化的client尽可能重复使用,提升检测性能。避免重复建立连接。
    * 常见获取环境变量方式:
    *     获取RAM用户AccessKey ID:os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_ID")
    *     获取RAM用户AccessKey Secret:os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET")
    */
   client, _err := green.NewClientWithAccessKey(
        "cn-shanghai", 
        "建议从环境变量中获取RAM用户AccessKey ID", 
        "建议从环境变量中获取RAM用户AccessKey Secret")
   if _err != nil {
      fmt.Println(_err.Error())
      return
   }
  // label:反馈的分类,与具体的scene对应。
   content, _ := json.Marshal(
      map[string]interface{}{
         "taskId": "文本检测任务ID", "content": "文本内容", "label": "spam",
      },
   )

   request := green.CreateTextFeedbackRequest()
   request.SetContent(content)
   response, err := client.TextFeedback(request)
   if err != nil {
      fmt.Println(err.Error())
      return
   }
   if response.GetHttpStatus() != 200 {
      fmt.Println("response not success. status:" + strconv.Itoa(response.GetHttpStatus()))
   }
   fmt.Println(response.GetHttpContentString())
}