对String中固定符号隔开的每项做无序不重复监测
2017-04-05 14:05 小诩 阅读(240) 评论(0) 编辑 收藏 举报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(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;