本文介绍了使用内容检测API Java SDK管理自定义文本库的示例代码。您可以使用Java SDK自定义文本库并管理文本库中的文本内容,满足文本反垃圾检测场景的个性化需求。根据文本类型的不同,文本库分为关键词文本库和相似文本文本库;根据管控目的不同,文本库分为白名单、黑名单、疑似名单。
准备工作
在进行具体的服务调用之前,请参见以下步骤,完成准备工作:
- 创建阿里云AccessKeyId和AccessKeySecret。具体请参见创建AccessKey。
- 安装Java依赖。具体请参见安装Java依赖。
- 下载并在项目工程中引入Extension.Uploader工具类。
获取文本库列表
- 获取关键词文本库列表
DescribeKeywordLibRequest describeKeywordLibRequest = new DescribeKeywordLibRequest(); describeKeywordLibRequest.setServiceModule("open_api"); try { //该方法将返回所有文本库,包括文本反垃圾的关键词文本库、文本反垃圾的相似文本文本库、图片广告的关键词文本库、语音反垃圾的关键词文本库 DescribeKeywordLibResponse describeKeywordLibResponse = client.getAcsResponse(describeKeywordLibRequest); System.out.println(JSON.toJSONString(describeKeywordLibResponse)); //过滤出文本反垃圾场景配置的文本库 List<DescribeKeywordLibResponse.KeywordLib> allLibs = describeKeywordLibResponse.getKeywordLibList(); List<DescribeKeywordLibResponse.KeywordLib> textAntispamKeywordLibs = new ArrayList<DescribeKeywordLibResponse.KeywordLib>(); for (DescribeKeywordLibResponse.KeywordLib keywordLib : allLibs) { String LibType = keywordLib.getLibType(); String resourceType = keywordLib.getResourceType(); String source = keywordLib.getSource(); //获取文本反垃圾自定义的关键词文本库 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); } } System.out.println(JSON.toJSONString(textAntispamKeywordLibs)); } catch (ClientException e) { e.printStackTrace(); }
- 获取相似文本文本库列表(包含自定义和系统回流的相似文本文本库)
DescribeKeywordLibRequest describeKeywordLibRequest = new DescribeKeywordLibRequest(); describeKeywordLibRequest.setServiceModule("open_api"); try { //该方法将返回所有文本库,包括文本反垃圾的关键词文本库、文本反垃圾的相似文本文本库、图片广告的关键词文本库、语音反垃圾的关键词文本库 DescribeKeywordLibResponse describeKeywordLibResponse = client.getAcsResponse(describeKeywordLibRequest); System.out.println(JSON.toJSONString(describeKeywordLibResponse)); //过滤出相似文本文本库 List<DescribeKeywordLibResponse.KeywordLib> allLibs = describeKeywordLibResponse.getKeywordLibList(); List<DescribeKeywordLibResponse.KeywordLib> similarTextLibs = new ArrayList<DescribeKeywordLibResponse.KeywordLib>(); for (DescribeKeywordLibResponse.KeywordLib keywordLib : allLibs) { String LibType = keywordLib.getLibType(); String resourceType = keywordLib.getResourceType(); String source = keywordLib.getSource(); //获取文本反垃圾自定义的相似文本文本库 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); } } System.out.println(JSON.toJSONString(similarTextLibs)); } catch (ClientException e) { e.printStackTrace(); }
创建文本库
- 创建关键词文本库
CreateKeywordLibRequest createKeywordLibRequest = new CreateKeywordLibRequest(); createKeywordLibRequest.setServiceModule("open_api"); createKeywordLibRequest.setName("测试关键词文本库"); //设置为文本反垃圾场景使用 createKeywordLibRequest.setResourceType("TEXT"); //设置类型为关键词 createKeywordLibRequest.setLibType("textKeyword"); //设置创建黑库 createKeywordLibRequest.setCategory("BLACK"); try { CreateKeywordLibResponse describeKeywordLibResponse = client.getAcsResponse(createKeywordLibRequest); System.out.println(JSON.toJSONString(describeKeywordLibResponse)); } catch (ClientException e) { e.printStackTrace(); }
- 创建相似文本文本库
CreateKeywordLibRequest createKeywordLibRequest = new CreateKeywordLibRequest(); createKeywordLibRequest.setServiceModule("open_api"); createKeywordLibRequest.setName("测试相似文本文本库"); //设置为文本反垃圾场景使用 createKeywordLibRequest.setResourceType("TEXT"); //设置类型为相似文本 createKeywordLibRequest.setLibType("similarText"); //相似文本文本库支持创建黑名单库、白名单、疑似名单 createKeywordLibRequest.setCategory("BLACK"); try { CreateKeywordLibResponse describeKeywordLibResponse = client.getAcsResponse(createKeywordLibRequest); System.out.println(JSON.toJSONString(describeKeywordLibResponse)); } catch (ClientException e) { e.printStackTrace(); }
修改文本库
更新文本库库名以及修改文本库所适用的bizType。
UpdateKeywordLibRequest updateKeywordLibRequest = new UpdateKeywordLibRequest();
//设置要操作的文本库id
updateKeywordLibRequest.setId(2693);
//设置新的文本库名称
updateKeywordLibRequest.setName("测试修改名称");
//设置新的bizType
updateKeywordLibRequest.setBizTypes(JSON.toJSONString(Arrays.asList("comment", "title")));
try {
UpdateKeywordLibResponse updateKeywordLibResponse = client.getAcsResponse(updateKeywordLibRequest);
System.out.println(JSON.toJSONString(updateKeywordLibResponse));
} catch (ClientException e) {
e.printStackTrace();
}
删除文本库
注意 删除文本库也将删除文本库下的文本。系统回流的文本库不允许删除。
DeleteKeywordLibRequest deleteKeywordLibRequest = new DeleteKeywordLibRequest();
//设置要删除的文本库id
deleteKeywordLibRequest.setId(3353);
try {
DeleteKeywordLibResponse deleteKeywordLibResponse = client.getAcsResponse(deleteKeywordLibRequest);
System.out.println(JSON.toJSONString(deleteKeywordLibResponse));
} catch (ClientException e) {
e.printStackTrace();
}
查找文本
默认分页获取所有文本。如果设置了Keyword字段,将模糊查找包含该字段值的文本。
DescribeKeywordRequest describeKeywordRequest = new DescribeKeywordRequest();
//要查询的文本库id
describeKeywordRequest.setKeywordLibId(2693);
describeKeywordRequest.setPageSize(10);
describeKeywordRequest.setCurrentPage(1);
//可选,用于模糊查
describeKeywordRequest.setKeyword("你");
try {
DescribeKeywordResponse describeKeywordResponse = client.getAcsResponse(describeKeywordRequest);
System.out.println(JSON.toJSONString(describeKeywordResponse));
} catch (ClientException e) {
e.printStackTrace();
}
添加文本
CreateKeywordRequest createKeywordRequest = new CreateKeywordRequest();
//设置文本库id
createKeywordRequest.setKeywordLibId(2693);
//要添加的文本
createKeywordRequest.setKeywords(JSON.toJSONString(Arrays.asList("你好吗", "棒棒哒")));
try {
CreateKeywordResponse createKeywordResponse = client.getAcsResponse(createKeywordRequest);
System.out.println(JSON.toJSONString(createKeywordResponse));
} catch (ClientException e) {
e.printStackTrace();
}
删除文本
DeleteKeywordRequest deleteKeywordRequest = new DeleteKeywordRequest();
//设置文本id
deleteKeywordRequest.setKeywordLibId(String.valueOf(2693));
//要删除的文本id
deleteKeywordRequest.setIds(JSON.toJSONString(Arrays.asList(1, 2)));
try {
DeleteKeywordResponse deleteKeywordResponse = client.getAcsResponse(deleteKeywordRequest);
System.out.println(JSON.toJSONString(deleteKeywordResponse));
} catch (ClientException e) {
e.printStackTrace();
}
在文档使用中是否遇到以下问题
更多建议
匿名提交