本文介绍了如何使用.NET SDK管理自定义文本库,以满足文本反垃圾检测场景的个性化需求。
功能描述
根据文本类型的不同,文本库分为关键词文本库和相似文本文本库;根据管控目的不同,文本库分为白名单、黑名单、疑似名单。关于参数的详细信息,请参见自定义文本库API文档。
您需要使用内容安全的API接入地址,调用本SDK接口。关于API接入地址的信息,请参见接入地址(Endpoint)。
前提条件
查询文本库列表
查询关键词文本库列表
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);
}
}
}
}
文档内容是否对您有帮助?