本文介绍了内容检测API Java SDK提供的文本反垃圾关键词词库和相似文本库管理接口。您可以通过这些接口自定义文本反垃圾场景的关键词和相似文本,以满足个性化自定义需求。

准备工作

在进行具体的服务调用之前,请参考以下步骤,完成准备工作:
  1. 创建阿里云AccessKeyId和AccessKeySecret。具体请参考创建AccessKey
  2. 安装Java依赖。具体请参考安装Java依赖

关键词词库

参考以下代码示例:
  • 获取文本反垃圾关键词库列表
    说明 以下代码用于获取文本反垃圾关键词列表。
    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();
            }
  • 创建文本反垃圾关键词库
    说明 以下代码用于创建文本反垃圾关键词库。
    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();
            }
  • 修改文本反垃圾关键词库
    说明 以下代码用于更新关键词库库名,以及修改词库所适用的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参数,将按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();
            }

相似文本库

参考以下代码示例:
  • 获取文本反垃圾相似文本库列表
    说明 以下代码用于获取相似文本库列表,可以获取到的您自定义的相似文本库和系统回流的相似文本库。
    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("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();
            updateKeywordLibRequest.setId(2693);
            updateKeywordLibRequest.setName("测试修改名称");
            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();
            }