测试用接口

segment2.0
zhanglb 2 years ago
parent 5420ee843f
commit 27627014b6

@ -28,6 +28,11 @@ import java.util.List;
@RequestMapping("/ocr/RuleTest")
public interface OcrRuleTestApi {
@GetMapping("/start/{id}")
void start (@PathVariable(value = "id") String id);
/**
*
*

@ -1,6 +1,7 @@
package com.docus.server.entity.segmentation;
import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@ -22,5 +23,6 @@ public class OcrSpecialResult {
@ApiModelProperty(value = "命中占比")
private Double rate;
@ApiModelProperty(value = "结束规则")
private String endJson;
}

@ -7,6 +7,7 @@ import com.docus.server.dto.segmentation.ocrruletest.AddOcrRuleTestDTO;
import com.docus.server.dto.segmentation.ocrruletest.DeleteOcrRuleTestDTO;
import com.docus.server.dto.segmentation.ocrruletest.EditOcrRuleTestDTO;
import com.docus.server.service.IOcrRuleTestService;
import com.docus.server.service.handler.StartOcrTestHandler;
import com.docus.server.vo.segmentation.ocrruletest.OcrRuleTestVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
@ -26,6 +27,15 @@ import java.util.List;
public class OcrRuleTestController implements OcrRuleTestApi {
@Resource
private IOcrRuleTestService iOcrRuleTestService;
@Resource
private StartOcrTestHandler startOcrTestHandler;
@ApiOperation("开始分类ocr")
@Override
public void start(String id) {
startOcrTestHandler.startOcr(id);
}
/**
*
@ -84,6 +94,7 @@ public class OcrRuleTestController implements OcrRuleTestApi {
iOcrRuleTestService.edit(editOcrRuleTestDTO);
}
@ApiOperation("批量更新规则")
@Override
public void deleteAndAdd(List<EditOcrRuleTestDTO> editOcrRuleTestDTOList) {
iOcrRuleTestService.deleteAndAdd(editOcrRuleTestDTOList);

@ -66,6 +66,8 @@ public class StartOcrTestHandler {
fileInfoTest.setAssortId(ocrSpecialResult.getAssortId());
fileInfoTest.setAssortName(ocrSpecialResult.getAssortName());
fileInfoTest.setRuleId(ocrSpecialResult.getRuleId());
fileInfoTest.setHitKey(ocrSpecialResult.getHitKey());
fileInfoTest.setRate(ocrSpecialResult.getRate());
isSpecialFile = true;
lastSpecialResul = ocrSpecialResult;
@ -77,6 +79,8 @@ public class StartOcrTestHandler {
fileInfoTest.setAssortId(ocrRuleResult.getAssortId());
fileInfoTest.setAssortName(ocrRuleResult.getAssortName());
fileInfoTest.setRuleId(ocrRuleResult.getRuleId());
fileInfoTest.setHitKey(ocrRuleResult.getHitKey());
fileInfoTest.setRate(ocrRuleResult.getRate());
}
}
//更新数据库表

@ -68,6 +68,8 @@ public class OcrRuleTestServiceImpl implements IOcrRuleTestService {
OcrRuleResult ocrRuleResult = new OcrRuleResult();
ocrRuleResult.setRuleId(ocrRuleTest.getId());
ocrRuleResult.setAssortId(assortId);
ocrRuleResult.setHitKey(keyWord);
ocrRuleResult.setRate(rate);
return ocrRuleResult;
}
}
@ -77,6 +79,8 @@ public class OcrRuleTestServiceImpl implements IOcrRuleTestService {
OcrRuleResult ocrRuleResult = new OcrRuleResult();
ocrRuleResult.setRuleId(ocrRuleTest.getId());
ocrRuleResult.setAssortId(assortId);
ocrRuleResult.setHitKey(keyWord);
ocrRuleResult.setRate(rate);
return ocrRuleResult;
}
}

@ -78,16 +78,26 @@ public class OcrSpecialRuleTestServiceImpl implements IOcrSpecialRuleTestService
@Override
public boolean handleSpecialRuleEnd(OcrSpecialResult result, List<String> ocrTextList) {
//获取结束条件列表
List<OcrSpecialRuleJson> ocrSpecialRuleJsons = Func.parseJsonArray(result.getEndJson(), OcrSpecialRuleJson.class);
//判断得分占比
for (OcrSpecialRuleJson ocrSpecialRuleJson : ocrSpecialRuleJsons) {
double score = ocrSpecialRuleJson.getScore();
String[] keyWordList = ocrSpecialRuleJson.getKeyWord().split("#");
for (String ocrText : ocrTextList) {
for (int i = 0; i < keyWordList.length; i++) {
String keyWord = keyWordList[i];
if (ocrText.contains(keyWord)){
double rate = keyWord.length() / (double)ocrText.length() * 100;
//判断是否命中
if (rate>=score) {
//返回结束
return true;
}
}
}
}
}
//默认返回没结束
return false;
}

Loading…
Cancel
Save