diff --git a/docus-segmentation/src/main/java/com/docus/server/service/impl/OcrRuleServiceImpl.java b/docus-segmentation/src/main/java/com/docus/server/service/impl/OcrRuleServiceImpl.java index 2477de9..a3cf1fd 100644 --- a/docus-segmentation/src/main/java/com/docus/server/service/impl/OcrRuleServiceImpl.java +++ b/docus-segmentation/src/main/java/com/docus/server/service/impl/OcrRuleServiceImpl.java @@ -130,17 +130,9 @@ public class OcrRuleServiceImpl implements IOcrRuleService { score = ocrRuleSecondJson.getMatchRatio(); for (int j = 0; j < keyWordList.length; j++) { keyWord = keyWordList[j]; - if (ocrText.contains(keyWord)) { - rate = keyWord.length() / (double) ocrText.length() * 100; - //判断是否命中 - if (rate >= score) { - ocrRuleResult.setRuleId(ocrRule.getId()); - ocrRuleResult.setAssortId(assortId); - ocrRuleResult.setAssortName(assortName); - ocrRuleResult.setHitKey(keyWord); - ocrRuleResult.setRate(rate); + for (String ocrContent : ocrTextList) { + if (handleOcrText(assortId, assortName, score, keyWord, ocrRuleResult, ocrContent, ocrRule.getId())) return ocrRuleResult; - } } } } @@ -156,6 +148,23 @@ public class OcrRuleServiceImpl implements IOcrRuleService { return null; } + static boolean handleOcrText(String assortId, String assortName, double score, String keyWord, OcrRuleResult ocrRuleResult, String ocrContent, Long id ) { + double rate; + if (ocrContent.contains(keyWord)) { + rate = keyWord.length() / (double) ocrContent.length() * 100; + //判断是否命中 + if (rate >= score) { + ocrRuleResult.setRuleId(id); + ocrRuleResult.setAssortId(assortId); + ocrRuleResult.setAssortName(assortName); + ocrRuleResult.setHitKey(keyWord); + ocrRuleResult.setRate(rate); + return true; + } + } + return false; + } + /** * 新增 * diff --git a/docus-segmentation/src/main/java/com/docus/server/service/impl/OcrRuleTestServiceImpl.java b/docus-segmentation/src/main/java/com/docus/server/service/impl/OcrRuleTestServiceImpl.java index b4c20dc..d2c8700 100644 --- a/docus-segmentation/src/main/java/com/docus/server/service/impl/OcrRuleTestServiceImpl.java +++ b/docus-segmentation/src/main/java/com/docus/server/service/impl/OcrRuleTestServiceImpl.java @@ -83,17 +83,9 @@ public class OcrRuleTestServiceImpl implements IOcrRuleTestService { score = ocrRuleSecondJson.getMatchRatio(); for (int j = 0; j < keyWordList.length; j++) { keyWord = keyWordList[j]; - if (ocrText.contains(keyWord)) { - rate = keyWord.length() / (double) ocrText.length() * 100; - //判断是否命中 - if (rate >= score) { - ocrRuleResult.setRuleId(ocrRuleTest.getId()); - ocrRuleResult.setAssortId(assortId); - ocrRuleResult.setAssortName(assortName); - ocrRuleResult.setHitKey(keyWord); - ocrRuleResult.setRate(rate); + for (String ocrContent : ocrTextList) { + if (OcrRuleServiceImpl.handleOcrText(assortId, assortName, score, keyWord, ocrRuleResult, ocrContent, ocrRuleTest.getId())) return ocrRuleResult; - } } } }