Response<List<String[]>> response = new Response<>();
// 引擎方式校验
// 在此对知识内容标签进行打标
try {
//测试时使用
// String stringTemp = knowledgeCheckRequest.getExtensionQuestionList().get(0);
if (!StringUtils.isEmpty(knowledgeCheckRequest.getAnswerList())
&& !StringUtils.isEmpty(knowledgeCheckRequest.getAnswerList().get(0))) {
logger.info("=============knowledge content extract start============");
// 存放结果集
List<String[]> result = new ArrayList<>();
// 前台限制为空的时候不发送请求
// 1、知识内容抽取 在返回的结果中生成扩展知识的id,以区分哪个扩展知识的标签是重复的
List<String> tagList = tag(knowledgeCheckRequest).getData();
for (String tagItem : tagList) {
if (!StringUtils.isEmpty(tagItem)) {
// 遍历每一个进行校验
for(int m = 0; m < tagItem.length(); m++){
// 打标结果为空,自动舍弃
if(StringUtils.isEmpty(tagList.get(m))){
continue;
}
// String[] tagArray = stringTemp.split(" ");测试时使用
logger.info("=============知识内容校验开始============");
// 1、切词
String[] tagArray = tagList.get(m).split(" ");
// 2、比对逻辑
//disorderCompareTag(tagArray, tagList, result, m);
// 3、处理结果:标准:如果tagArray是空返回有重复结果
// handleDisorderCompareTagResult(result, tagList, m, tagArray);
if(StringUtils.isEmpty(tagArray)){
logger.info("=============标签全部相同============");
String[] arrayTemp = {tagList.get(m),"true"};// 没有相同的
result.add(arrayTemp);
// return;
}else {
for (String tag : tagArray) {
if(!StringUtils.isEmpty(tag)){
logger.info("=============标签部分相同============");
String[] arrayTemp = {tagList.get(m),"false"};// 不为空证明结果没有与现有的标签重复
result.add(arrayTemp);
break;
}
}
logger.info("=============标签全部相同============");
String[] arrayTemp = {tagList.get(m),"true"};
result.add(arrayTemp);
// return;
}
continue;
}
// 结束遍历打标结果list,设置结果
logger.info("=============知识内容校验结束============");
response = Response.Success(knowledgeCheckRequest.getRequestId());
response.setInfo("");
response.setData(result);
}
}
} else if (!StringUtils.isEmpty(knowledgeCheckRequest.getExtensionQuestionList())
&& !StringUtils.isEmpty(knowledgeCheckRequest.getExtensionQuestionList().get(0))) {
// 存放结果集
List<String[]> result = new ArrayList<>();
// 2、扩展知识打标
List<String> tagList = tag(knowledgeCheckRequest).getData();
for (String tagItem : tagList) {
if (!StringUtils.isEmpty(tagList)) {
for(int m = 0; m < tagItem.length(); m++) {// 只有一条数据
// 遍历每一个进行校验
// 打标结果为空,提示错误
if (StringUtils.isEmpty(tagList.get(m))) {
response = Response.Success(knowledgeCheckRequest.getRequestId());// 因为要显示错误信息,需要返回成功结果
response.setInfo("打标结果为空");
response.setData(null);
break;
}
// String[] tagArray = stringTemp.split(" ");测试时使用
logger.info("============扩展知识校验开始============");
// 1、切词
String[] tagArray = tagList.get(m).split(" ");
// 2、比对逻辑
//disorderCompareTag(tagArray, tagList, result, m);
// 3、处理结果:标准:如果tagArray是空返回有重复结果
handleDisorderCompareTagResult(result, tagList, m, tagArray);
}
// 结束遍历打标结果list,设置结果
logger.info("============扩展知识校验结束============");
response = Response.Success(knowledgeCheckRequest.getRequestId());
response.setInfo("");
response.setData(result);
}
}
}
logger.info("=============既不是知识内容抽取,又不是扩展知识打标============");
response = Response.Fail(knowledgeCheckRequest.getRequestId());// 失败,页面什么都不做,说明传过来的参数有问题(知识标题或扩展知识标题为空)
response.setInfo("既不是知识内容抽取,又不是扩展知识打标");
response.setData(null);
}catch (Exception e){
e.printStackTrace();
}
return response;
Response<List<String[]>> response = new Response<>();
// 引擎方式校验
// 在此对知识内容标签进行打标
try {
//测试时使用
// String stringTemp = knowledgeCheckRequest.getExtensionQuestionList().get(0);
if (!StringUtils.isEmpty(knowledgeCheckRequest.getAnswerList())
&& !StringUtils.isEmpty(knowledgeCheckRequest.getAnswerList().get())) {
logger.info("=============knowledge content extract start============");
// 存放结果集
List<String[]> result = new ArrayList<>();
// 前台限制为空的时候不发送请求
// 1、知识内容抽取 在返回的结果中生成扩展知识的id,以区分哪个扩展知识的标签是重复的
List<String> tagList = tag(knowledgeCheckRequest).getData();
for (String tagItem : tagList) {
if (!StringUtils.isEmpty(tagItem)) {
// 遍历每一个进行校验
for(int m = ; m < tagItem.length(); m++){
// 打标结果为空,自动舍弃
if(StringUtils.isEmpty(tagList.get(m))){
continue;
}
// String[] tagArray = stringTemp.split(" ");测试时使用
logger.info("=============知识内容校验开始============");
// 1、切词
String[] tagArray = tagList.get(m).split(" ");
// 2、比对逻辑
//disorderCompareTag(tagArray, tagList, result, m);
// 3、处理结果:标准:如果tagArray是空返回有重复结果
// handleDisorderCompareTagResult(result, tagList, m, tagArray);
if(StringUtils.isEmpty(tagArray)){
logger.info("=============标签全部相同============");
String[] arrayTemp = {tagList.get(m),"true"};// 没有相同的
result.add(arrayTemp);
// return;
}else {
for (String tag : tagArray) {
if(!StringUtils.isEmpty(tag)){
logger.info("=============标签部分相同============");
String[] arrayTemp = {tagList.get(m),"false"};// 不为空证明结果没有与现有的标签重复
result.add(arrayTemp);
break;
}
}
logger.info("=============标签全部相同============");
String[] arrayTemp = {tagList.get(m),"true"};
result.add(arrayTemp);
// return;
}
continue;
}
// 结束遍历打标结果list,设置结果
logger.info("=============知识内容校验结束============");
response = Response.Success(knowledgeCheckRequest.getRequestId());
response.setInfo("");
response.setData(result);
}
}
} else if (!StringUtils.isEmpty(knowledgeCheckRequest.getExtensionQuestionList())
&& !StringUtils.isEmpty(knowledgeCheckRequest.getExtensionQuestionList().get())) {
// 存放结果集
List<String[]> result = new ArrayList<>();
// 2、扩展知识打标
List<String> tagList = tag(knowledgeCheckRequest).getData();
for (String tagItem : tagList) {
if (!StringUtils.isEmpty(tagList)) {
for(int m = ; m < tagItem.length(); m++) {// 只有一条数据
// 遍历每一个进行校验
// 打标结果为空,提示错误
if (StringUtils.isEmpty(tagList.get(m))) {
response = Response.Success(knowledgeCheckRequest.getRequestId());// 因为要显示错误信息,需要返回成功结果
response.setInfo("打标结果为空");
response.setData(null);
break;
}
// String[] tagArray = stringTemp.split(" ");测试时使用
logger.info("============扩展知识校验开始============");
// 1、切词
String[] tagArray = tagList.get(m).split(" ");
// 2、比对逻辑
//disorderCompareTag(tagArray, tagList, result, m);
// 3、处理结果:标准:如果tagArray是空返回有重复结果
handleDisorderCompareTagResult(result, tagList, m, tagArray);
}
// 结束遍历打标结果list,设置结果
logger.info("============扩展知识校验结束============");
response = Response.Success(knowledgeCheckRequest.getRequestId());
response.setInfo("");
response.setData(result);
}
}
}
logger.info("=============既不是知识内容抽取,又不是扩展知识打标============");
response = Response.Fail(knowledgeCheckRequest.getRequestId());// 失败,页面什么都不做,说明传过来的参数有问题(知识标题或扩展知识标题为空)
response.setInfo("既不是知识内容抽取,又不是扩展知识打标");
response.setData(null);
}catch (Exception e){
e.printStackTrace();
}
return response;

对String中固定符号隔开的每项做无序不重复监测的更多相关文章

  1. Android String.xml中的符号总结

    <b></b>加粗字体 <i></i> 斜体字体 <u></u> 给字体加下划线 \n 换行 \u0020表示空格 \u2026 ...

  2. [转帖]Linux命令中特殊符号

    Linux命令中特殊符号 转自:http://blog.chinaunix.net/uid-16946891-id-5088144.html   在shell中常用的特殊符号罗列如下:# ; ;; . ...

  3. (转)linux 中特殊符号用法详解

    linux 中特殊符号用法详解 原文:https://www.cnblogs.com/lidabo/p/4323979.html # 井号 (comments)#管理员  $普通用户 脚本中 #!/b ...

  4. C#中的@符号用法

    C#中的@符号其实有很多的用法,我们来看看@有什么神奇之处. 1.限定字符串 用 @ 符号加在字符串前面表示其中的转义字符“不”被处理. 如果我们写一个文件的路径,例如"D:/文本文件&qu ...

  5. C++string中有关字符串内容修改和替换的函数浅析

    1.assign() 原型: //string (1) basic_string& assign (const basic_string& str); //substring (2) ...

  6. C#中的@符号

      C# 中的 @ 符号 C# 中的 @ 符号其实有很多的用法,我们来看看 @ 有什么神奇之处. 1. 限定字符串 用 @ 符号加在字符串前面表示其中的转义字符 “ 不 ” 被处理. 如果我们写一个文 ...

  7. 关于Java中语句符号及格式的理解

    关于Java中语句符号及格式的理解 这篇文章是撰写的第一篇文章,在此作一下博主是一名在读的工科研究生,种种原因,研二开始决定转行从事程序员工作.开始的自学之路并不算非常顺畅,也走了一点弯路,但一直都坚 ...

  8. $ -----JavaScript 中美元符号 $ 的作用

    JavaScript 中美元符号 $ 是什么 1.首先可以用来表示变量,比如变量 var s='asdsd'或var $s='asdasd'; 2.在正则表达式中,它可以匹配结尾:/sa$/.test ...

  9. String中的“equal方法”和“==”

    二话不说,先来说下重写的事情: 在Java中,String .Math.还有Integer.Double....等这些封装类重写了Object中的equals()方法,让它不再比较其对象在内存中的地址 ...

随机推荐

  1. ASP.NET MVC Web API 学习笔记---Web API概述及程序示例

    1. Web API简单说明 近来很多大型的平台都公开了Web API.比如百度地图 Web API,做过地图相关的人都熟悉.公开服务这种方式可以使它易于与各种各样的设备和客户端平台集成功能,以及通过 ...

  2. 电子商务(电销)平台中订单模块(Order)数据库设计明细(转)

    以下是自己在电子商务系统设计中的订单模块的数据库设计经验总结,而今发表出来一起分享,如有不当,欢迎跟帖讨论~ 订单表 (order)|-- 自动编号(order_id, 自增长主键)|-- 订单单号( ...

  3. Halcon 彩色图片通道分割处理

    1.RGB通道:R红色,G绿色,B蓝色:R.G.B各占一个字节,取值范围在0—255:可代表的颜色数256*256*256==2^24 黑色区域是:R=G=B=0;   白色区域是:R=G=B=255 ...

  4. quartz与spring boot-最简模式

    多年前使用过quartz,今天又需要再用,而且是在spring boot框架下.很神奇,spring也是十年前用过的. 这里仅记录下完成的最快速和简单的操作,高级的使用以后有空弄明白了再写: 1.增加 ...

  5. Oracle分析函数-first_value()和last_value()

    first_value()和last_value()字面意思已经很直观了,取首尾记录值.例:查询部门最早发生销售记录日期和最近发生的销售记录日期 select dept_id ,sale_date , ...

  6. 使用docker安装tomcat服务

    1. 拉取官方tomcat镜像 docker pull tomcat 2. 创建tomcat容器目录 [root@WSyHRQ171356 /]# mkdir /tomcat/test 3. 创建测试 ...

  7. Flutter & Dart 安装在window系统

    一.系统环境 flutter最低要求 1,windows7 SP1 64位版本以上,我的系统就是windows 7 sp1 64bit 2,git for windows ,没有安装的需要到这里下载  ...

  8. [转帖]Loading Data into HAWQ

    Loading Data into HAWQ Leave a reply Loading data into the database is required to start using it bu ...

  9. python学习笔记(五)

    面向对象方法 元组的二义性:不明确参数代表的含义 circle=(2,4,6) def distance_from_origin(x,y): return "返回x,y坐标" de ...

  10. 《转》Logistic回归 多分类问题的推广算法--Softmax回归

    转自http://ufldl.stanford.edu/wiki/index.php/Softmax%E5%9B%9E%E5%BD%92 简介 在本节中,我们介绍Softmax回归模型,该模型是log ...