本文由簡體中文內容自動轉碼而成。阿里雲不保證此自動轉碼的準確性、完整性及時效性。本文内容請以簡體中文版本為準。

自訂文本庫

更新時間:2024-07-06 00:05

本文介紹了如何使用.NET SDK管理自訂文本庫,以滿足文本反垃圾檢測情境的個人化需求。

功能描述

根據文本類型的不同,文本庫分為關鍵詞文本庫和相似文本文本庫;根據管控目的不同,文本庫分為白名單、黑名單、疑似名單。關於參數的詳細資料,請參見自訂文本庫API文檔

您需要使用Alibaba Content Security Service的API接入地址,調用本SDK介面。關於API接入地址的資訊,請參見接入地址(Endpoint)

前提條件

已安裝.NET依賴。關於安裝.NET依賴的具體操作,請參見安裝.NET依賴

說明

請一定按照安裝.NET依賴頁面中的版本安裝,否則會導致調用失敗。

查詢文本庫列表

  • 查詢關鍵詞文本庫列表

    using System;
    using Newtonsoft.Json;
    using Aliyun.Acs.Core;
    using Aliyun.Acs.Core.Profile;
    using Aliyun.Acs.Green.Model.V20170823;
    using System.Collections.Generic;
    
    namespace csharp_sdk_sample
    {
        class Program
        {
            static void Main(string[] args)
            {
                /**
                 * 常見擷取環境變數方式:
                 *     擷取RAM使用者AccessKey ID:Environment.GetEnvironmentVariable("ALIBABA_CLOUD_ACCESS_KEY_ID");
                 *     擷取RAM使用者AccessKey Secret:Environment.GetEnvironmentVariable("ALIBABA_CLOUD_ACCESS_KEY_SECRET");
                 */
                DefaultProfile profile = DefaultProfile.GetProfile(
                        "cn-shanghai",
                        "建議從環境變數中擷取RAM使用者AccessKey ID",
                        "建議從環境變數中擷取RAM使用者AccessKey Secret");
                DefaultAcsClient client = new DefaultAcsClient(profile);
    
                DescribeKeywordLibRequest request = new DescribeKeywordLibRequest();
                request.ServiceModule = "open_api";
                try
                {
                    DescribeKeywordLibResponse response = client.GetAcsResponse(request);
                    Console.WriteLine(System.Text.Encoding.Default.GetString(response.HttpResponse.Content));
                    // 過濾出文本反垃圾情境配置的文本庫。
                    List<DescribeKeywordLibResponse.DescribeKeywordLib_KeywordLib> allLibs = response.KeywordLibList;
                    List<DescribeKeywordLibResponse.DescribeKeywordLib_KeywordLib> textAntispamKeywordLibs = new List<DescribeKeywordLibResponse.DescribeKeywordLib_KeywordLib>();
                    foreach (DescribeKeywordLibResponse.DescribeKeywordLib_KeywordLib keywordLib in allLibs)
                    {
                        string LibType = keywordLib.LibType;
                        string resourceType = keywordLib.ResourceType;
                        string source = keywordLib.Source;
                        // 擷取文本反垃圾自訂的關鍵詞文本庫。
                        if ("textKeyword".Equals(LibType) && "TEXT".Equals(resourceType) && "MANUAL".Equals(source))
                        {
                            textAntispamKeywordLibs.Add(keywordLib);
                        }
                        // 擷取文本反垃圾迴流的關鍵詞文本庫。
                        if ("textKeyword".Equals(LibType) && "TEXT".Equals(resourceType) && "FEEDBACK".Equals(source))
                        {
                            textAntispamKeywordLibs.Add(keywordLib);
                        }
                    }
                    Console.WriteLine(JsonConvert.SerializeObject(textAntispamKeywordLibs));
                }
                catch (Exception ex)
                {
                    Console.WriteLine("Failed with error info: {0}", ex.Message);
                }
            }
        }
    }
  • 查詢相似文本庫列表(包含自訂和系統迴流的相似文本庫)

    using System;
    using Newtonsoft.Json;
    using Aliyun.Acs.Core;
    using Aliyun.Acs.Core.Profile;
    using Aliyun.Acs.Green.Model.V20170823;
    using System.Collections.Generic;
    
    namespace csharp_sdk_sample
    {
        class Program
        {
            static void Main(string[] args)
            {
                /**
                 * 常見擷取環境變數方式:
                 *     擷取RAM使用者AccessKey ID:Environment.GetEnvironmentVariable("ALIBABA_CLOUD_ACCESS_KEY_ID");
                 *     擷取RAM使用者AccessKey Secret:Environment.GetEnvironmentVariable("ALIBABA_CLOUD_ACCESS_KEY_SECRET");
                 */
                DefaultProfile profile = DefaultProfile.GetProfile(
                        "cn-shanghai",
                        "建議從環境變數中擷取RAM使用者AccessKey ID",
                        "建議從環境變數中擷取RAM使用者AccessKey Secret");
                DefaultAcsClient client = new DefaultAcsClient(profile);
    
                DescribeKeywordLibRequest request = new DescribeKeywordLibRequest();
                request.ServiceModule = "open_api";
                try
                {
                    // 該方法將返回所有文本庫,包括文本反垃圾的關鍵詞文本庫、文本反垃圾的相似文本文本庫、圖片廣告的關鍵詞文本庫、語音反垃圾的關鍵詞文本庫。
                    DescribeKeywordLibResponse response = client.GetAcsResponse(request);
                    Console.WriteLine(System.Text.Encoding.Default.GetString(response.HttpResponse.Content));
    
                    // 過濾出相似文本文本庫。
                    List<DescribeKeywordLibResponse.DescribeKeywordLib_KeywordLib> allLibs = response.KeywordLibList;
                    List<DescribeKeywordLibResponse.DescribeKeywordLib_KeywordLib> similarTextLibs = new List<DescribeKeywordLibResponse.DescribeKeywordLib_KeywordLib>();
                    foreach (DescribeKeywordLibResponse.DescribeKeywordLib_KeywordLib keywordLib in allLibs)
                    {
                        String LibType = keywordLib.LibType;
                        String resourceType = keywordLib.ResourceType;
                        String source = keywordLib.Source;
                        // 擷取文本反垃圾自訂的相似文本文本庫。
                        if ("similarText".Equals(LibType) && "TEXT".Equals(resourceType) && "MANUAL".Equals(source))
                        {
                            similarTextLibs.Add(keywordLib);
                        }
    
                        // 擷取文本反垃圾迴流的相似文本文本庫。
                        if ("similarText".Equals(LibType) && "TEXT".Equals(resourceType) && "FEEDBACK".Equals(source))
                        {
                            similarTextLibs.Add(keywordLib);
                        }
                    }
    
                    Console.WriteLine(JsonConvert.SerializeObject(similarTextLibs));
                }
                catch (Exception ex)
                {
                    Console.WriteLine("Failed with error info: {0}", ex.Message);
                }
            }
        }
    }

建立文本庫

  • 建立關鍵詞文本庫

    using System;
    using Aliyun.Acs.Core;
    using Aliyun.Acs.Core.Profile;
    using Aliyun.Acs.Green.Model.V20170823;
    
    namespace csharp_sdk_sample
    {
        class Program
        {
            static void Main(string[] args)
            {
                /**
                 * 常見擷取環境變數方式:
                 *     擷取RAM使用者AccessKey ID:Environment.GetEnvironmentVariable("ALIBABA_CLOUD_ACCESS_KEY_ID");
                 *     擷取RAM使用者AccessKey Secret:Environment.GetEnvironmentVariable("ALIBABA_CLOUD_ACCESS_KEY_SECRET");
                 */
                DefaultProfile profile = DefaultProfile.GetProfile(
                        "cn-shanghai",
                        "建議從環境變數中擷取RAM使用者AccessKey ID",
                        "建議從環境變數中擷取RAM使用者AccessKey Secret");
                DefaultAcsClient client = new DefaultAcsClient(profile);
    
                CreateKeywordLibRequest createKeywordLibRequest = new CreateKeywordLibRequest();
                createKeywordLibRequest.ServiceModule = "open_api";
                createKeywordLibRequest.Name = "測試關鍵詞文本庫";
                // 設定為文本反垃圾情境使用。
                createKeywordLibRequest.ResourceType = "TEXT";
                // 設定類型為關鍵詞。
                createKeywordLibRequest.LibType = "textKeyword";
                // 設定建立黑庫。
                createKeywordLibRequest.Category = "BLACK";
                try
                {
                    CreateKeywordLibResponse describeKeywordLibResponse = client.GetAcsResponse(createKeywordLibRequest);
                    Console.WriteLine(System.Text.Encoding.Default.GetString(describeKeywordLibResponse.HttpResponse.Content));
                }
                catch (Exception ex)
                {
                    Console.WriteLine("Failed with error info: {0}", ex.Message);
                }
            }
        }
    }
  • 建立相似文本庫

    using System;
    using Aliyun.Acs.Core;
    using Aliyun.Acs.Core.Profile;
    using Aliyun.Acs.Green.Model.V20170823;
    
    namespace csharp_sdk_sample
    {
        class Program
        {
            static void Main(string[] args)
            {
                /**
                 * 常見擷取環境變數方式:
                 *     擷取RAM使用者AccessKey ID:Environment.GetEnvironmentVariable("ALIBABA_CLOUD_ACCESS_KEY_ID");
                 *     擷取RAM使用者AccessKey Secret:Environment.GetEnvironmentVariable("ALIBABA_CLOUD_ACCESS_KEY_SECRET");
                 */
                DefaultProfile profile = DefaultProfile.GetProfile(
                        "cn-shanghai",
                        "建議從環境變數中擷取RAM使用者AccessKey ID",
                        "建議從環境變數中擷取RAM使用者AccessKey Secret");
                DefaultAcsClient client = new DefaultAcsClient(profile);
    
                CreateKeywordLibRequest createKeywordLibRequest = new CreateKeywordLibRequest();
                createKeywordLibRequest.ServiceModule = "open_api";
                createKeywordLibRequest.Name = "測試相似文本文本庫";
                // 設定為文本反垃圾情境使用。
                createKeywordLibRequest.ResourceType = "TEXT";
                // 設定類型為相似文本。
                createKeywordLibRequest.LibType = "similarText";
                // 相似文本文本庫支援建立黑名單庫、白名單、疑似名單。
                createKeywordLibRequest.Category = "BLACK";
                try
                {
                    CreateKeywordLibResponse describeKeywordLibResponse = client.GetAcsResponse(createKeywordLibRequest);
                    Console.WriteLine(System.Text.Encoding.Default.GetString(describeKeywordLibResponse.HttpResponse.Content));
                }
                catch (Exception ex)
                {
                    Console.WriteLine("Failed with error info: {0}", ex.Message);
                }
            }
        }
    }

修改文本庫

更新文本庫庫名以及修改文本庫所適用的業務情境(BizType)。

using System;
using Newtonsoft.Json;
using Aliyun.Acs.Core;
using Aliyun.Acs.Core.Profile;
using Aliyun.Acs.Green.Model.V20170823;
using System.Collections.Generic;

namespace csharp_sdk_sample
{
    class Program
    {
        static void Main(string[] args)
        {
            /**
             * 常見擷取環境變數方式:
             *     擷取RAM使用者AccessKey ID:Environment.GetEnvironmentVariable("ALIBABA_CLOUD_ACCESS_KEY_ID");
             *     擷取RAM使用者AccessKey Secret:Environment.GetEnvironmentVariable("ALIBABA_CLOUD_ACCESS_KEY_SECRET");
             */
            DefaultProfile profile = DefaultProfile.GetProfile(
                    "cn-shanghai",
                    "建議從環境變數中擷取RAM使用者AccessKey ID",
                    "建議從環境變數中擷取RAM使用者AccessKey Secret");
            DefaultAcsClient client = new DefaultAcsClient(profile);

            UpdateKeywordLibRequest updateKeywordLibRequest = new UpdateKeywordLibRequest();
            // 設定要操作的文本庫ID。
            updateKeywordLibRequest.Id = 文本庫ID;
            // 設定新的文本庫名稱。
            updateKeywordLibRequest.Name = "測試修改名稱";
            // 設定新的BizType。
            updateKeywordLibRequest.BizTypes = JsonConvert.SerializeObject(new List<string> { "comment", "title" });
            try
            {
                UpdateKeywordLibResponse updateKeywordLibResponse = client.GetAcsResponse(updateKeywordLibRequest);
                Console.WriteLine(System.Text.Encoding.Default.GetString(updateKeywordLibResponse.HttpResponse.Content));
            }
            catch (Exception ex)
            {
                Console.WriteLine("Failed with error info: {0}", ex.Message);
            }
        }
    }
}

刪除文本庫

重要

刪除文本庫也將刪除文本庫下的文本。系統迴流的文本庫不允許刪除。

using System;
using Newtonsoft.Json;
using Aliyun.Acs.Core;
using Aliyun.Acs.Core.Profile;
using Aliyun.Acs.Green.Model.V20170823;
using System.Collections.Generic;

namespace csharp_sdk_sample
{
    class Program
    {
        static void Main(string[] args)
        {
            /**
             * 常見擷取環境變數方式:
             *     擷取RAM使用者AccessKey ID:Environment.GetEnvironmentVariable("ALIBABA_CLOUD_ACCESS_KEY_ID");
             *     擷取RAM使用者AccessKey Secret:Environment.GetEnvironmentVariable("ALIBABA_CLOUD_ACCESS_KEY_SECRET");
             */
            DefaultProfile profile = DefaultProfile.GetProfile(
                    "cn-shanghai",
                    "建議從環境變數中擷取RAM使用者AccessKey ID",
                    "建議從環境變數中擷取RAM使用者AccessKey Secret");
            DefaultAcsClient client = new DefaultAcsClient(profile);

            DeleteKeywordLibRequest deleteKeywordLibRequest = new DeleteKeywordLibRequest();
            // 設定要刪除的文本庫ID。
            deleteKeywordLibRequest.Id = 文本庫ID;

            try
            {
                DeleteKeywordLibResponse deleteKeywordLibResponse = client.GetAcsResponse(deleteKeywordLibRequest);
                Console.WriteLine(System.Text.Encoding.Default.GetString(deleteKeywordLibResponse.HttpResponse.Content));
            }
            catch (Exception ex)
            {
                Console.WriteLine("Failed with error info: {0}", ex.Message);
            }
        }
    }
}

尋找文本

預設分頁查詢所有文本。如果設定了Keyword欄位,將模糊尋找包含該欄位值的文本。

using System;
using Newtonsoft.Json;
using Aliyun.Acs.Core;
using Aliyun.Acs.Core.Profile;
using Aliyun.Acs.Green.Model.V20170823;
using System.Collections.Generic;

namespace csharp_sdk_sample
{
    class Program
    {
        static void Main(string[] args)
        {
            /**
             * 常見擷取環境變數方式:
             *     擷取RAM使用者AccessKey ID:Environment.GetEnvironmentVariable("ALIBABA_CLOUD_ACCESS_KEY_ID");
             *     擷取RAM使用者AccessKey Secret:Environment.GetEnvironmentVariable("ALIBABA_CLOUD_ACCESS_KEY_SECRET");
             */
            DefaultProfile profile = DefaultProfile.GetProfile(
                    "cn-shanghai",
                    "建議從環境變數中擷取RAM使用者AccessKey ID",
                    "建議從環境變數中擷取RAM使用者AccessKey Secret");
            DefaultAcsClient client = new DefaultAcsClient(profile);

            DescribeKeywordRequest describeKeywordRequest = new DescribeKeywordRequest();
            // 要查詢的文本庫ID。
            describeKeywordRequest.KeywordLibId = 文本庫ID;
            describeKeywordRequest.PageSize = 10;
            describeKeywordRequest.CurrentPage = 1;
            // 可選,用於模糊查。
            describeKeywordRequest.Keyword = "查詢文本";

            try
            {
                DescribeKeywordResponse describeKeywordResponse = client.GetAcsResponse(describeKeywordRequest);
                Console.WriteLine(System.Text.Encoding.Default.GetString(describeKeywordResponse.HttpResponse.Content));
            }
            catch (Exception ex)
            {
                Console.WriteLine("Failed with error info: {0}", ex.Message);
            }
        }
    }
}

添加文本

using System;
using Newtonsoft.Json;
using Aliyun.Acs.Core;
using Aliyun.Acs.Core.Profile;
using Aliyun.Acs.Green.Model.V20170823;
using System.Collections.Generic;

namespace csharp_sdk_sample
{
    class Program
    {
        static void Main(string[] args)
        {
            /**
             * 常見擷取環境變數方式:
             *     擷取RAM使用者AccessKey ID:Environment.GetEnvironmentVariable("ALIBABA_CLOUD_ACCESS_KEY_ID");
             *     擷取RAM使用者AccessKey Secret:Environment.GetEnvironmentVariable("ALIBABA_CLOUD_ACCESS_KEY_SECRET");
             */
            DefaultProfile profile = DefaultProfile.GetProfile(
                    "cn-shanghai",
                    "建議從環境變數中擷取RAM使用者AccessKey ID",
                    "建議從環境變數中擷取RAM使用者AccessKey Secret");
            DefaultAcsClient client = new DefaultAcsClient(profile);

            CreateKeywordRequest createKeywordRequest = new CreateKeywordRequest();
            // 設定文本庫ID。
            createKeywordRequest.KeywordLibId = 文本庫ID;
            // 要添加的文本。
            createKeywordRequest.Keywords = JsonConvert.SerializeObject(new List<string> { "文本_1", "文本_2" });
            try
            {
                CreateKeywordResponse createKeywordResponse = client.GetAcsResponse(createKeywordRequest);
                Console.WriteLine(System.Text.Encoding.Default.GetString(createKeywordResponse.HttpResponse.Content));
            }
            catch (Exception ex)
            {
                Console.WriteLine("Failed with error info: {0}", ex.Message);
            }
        }
    }
}

刪除文本

using System;
using Newtonsoft.Json;
using Aliyun.Acs.Core;
using Aliyun.Acs.Core.Profile;
using Aliyun.Acs.Green.Model.V20170823;
using System.Collections.Generic;

namespace csharp_sdk_sample
{
    class Program
    {
        static void Main(string[] args)
        {
            /**
             * 常見擷取環境變數方式:
             *     擷取RAM使用者AccessKey ID:Environment.GetEnvironmentVariable("ALIBABA_CLOUD_ACCESS_KEY_ID");
             *     擷取RAM使用者AccessKey Secret:Environment.GetEnvironmentVariable("ALIBABA_CLOUD_ACCESS_KEY_SECRET");
             */
            DefaultProfile profile = DefaultProfile.GetProfile(
                    "cn-shanghai",
                    "建議從環境變數中擷取RAM使用者AccessKey ID",
                    "建議從環境變數中擷取RAM使用者AccessKey Secret");
            DefaultAcsClient client = new DefaultAcsClient(profile);

            DeleteKeywordRequest deleteKeywordRequest = new DeleteKeywordRequest();
            // 設定文本庫ID。
            deleteKeywordRequest.KeywordLibId = "文本庫ID";
            // 要刪除的文本ID。
            deleteKeywordRequest.Ids = JsonConvert.SerializeObject(new List<int> { 文本ID_1, 文本ID_2 });

            try
            {
                DeleteKeywordResponse deleteKeywordResponse = client.GetAcsResponse(deleteKeywordRequest);
                Console.WriteLine(System.Text.Encoding.Default.GetString(deleteKeywordResponse.HttpResponse.Content));
            }
            catch (Exception ex)
            {
                Console.WriteLine("Failed with error info: {0}", ex.Message);
            }
        }
    }
}
  • 本頁導讀 (0, M)
  • 功能描述
  • 前提條件
  • 查詢文本庫列表
  • 建立文本庫
  • 修改文本庫
  • 刪除文本庫
  • 尋找文本
  • 添加文本
  • 刪除文本
文檔反饋
phone 聯絡我們

立即和Alibaba Cloud在線服務人員進行交談,獲取您想了解的產品信息以及最新折扣。

alicare alicarealicarealicare