RED-5139: Bugfix if false positives are added, for rule added entries

This commit is contained in:
Philipp Schramm 2022-09-26 10:51:31 +02:00
parent 4e96718ce3
commit 0c95bf3bbc
2 changed files with 2 additions and 18 deletions

View File

@ -1005,12 +1005,6 @@ public class Section {
private Set<Entity> findEntities(String value, String asType, boolean caseInsensitive, boolean redacted, private Set<Entity> findEntities(String value, String asType, boolean caseInsensitive, boolean redacted,
int ruleNumber, String reason, String legalBasis, Engine engine, int ruleNumber, String reason, String legalBasis, Engine engine,
boolean asRecommendation) { boolean asRecommendation) {
return findEntities(value, asType, caseInsensitive, redacted, true, ruleNumber, reason, legalBasis, engine, asRecommendation);
}
private Set<Entity> findEntities(String value, String asType, boolean caseInsensitive, boolean redacted, boolean excludeFalsePositives,
int ruleNumber, String reason, String legalBasis, Engine engine,
boolean asRecommendation) {
String text = caseInsensitive ? searchText.toLowerCase() : searchText; String text = caseInsensitive ? searchText.toLowerCase() : searchText;
Set<Entity> found = EntitySearchUtils.findEntities(text, new SearchImplementation(value, caseInsensitive), dictionary.getType(asType), new FindEntityDetails(asType, headline, sectionNumber, false, false, engine, asRecommendation ? EntityType.RECOMMENDATION : EntityType.ENTITY)); Set<Entity> found = EntitySearchUtils.findEntities(text, new SearchImplementation(value, caseInsensitive), dictionary.getType(asType), new FindEntityDetails(asType, headline, sectionNumber, false, false, engine, asRecommendation ? EntityType.RECOMMENDATION : EntityType.ENTITY));
@ -1025,11 +1019,8 @@ public class Section {
var cleared = EntitySearchUtils.clearAndFindPositions(found, searchableText, dictionary, manualRedactions); var cleared = EntitySearchUtils.clearAndFindPositions(found, searchableText, dictionary, manualRedactions);
if (excludeFalsePositives) { return cleared.stream().filter(f -> !f.isFalsePositive()).collect(Collectors.toSet());
return cleared.stream().filter(f -> !f.isFalsePositive()).collect(Collectors.toSet());
}
return cleared;
} }
@ -1070,7 +1061,7 @@ public class Section {
} else { } else {
String word = value.toString(); String word = value.toString();
Set<Entity> found = findEntities(word.trim(), type, false, redact, false, ruleNumber, reason, legalBasis, Engine.RULE, false); Set<Entity> found = findEntities(word.trim(), type, false, redact, ruleNumber, reason, legalBasis, Engine.RULE, false);
for (Entity entity: found) {// Should be found for (Entity entity: found) {// Should be found
entity.setTargetSequences(value.getTextBlocks() entity.setTargetSequences(value.getTextBlocks()
@ -1079,10 +1070,6 @@ public class Section {
.flatMap(Collection::stream) .flatMap(Collection::stream)
.collect(Collectors.toList())); // Make sure no other cells with same content are highlighted .collect(Collectors.toList())); // Make sure no other cells with same content are highlighted
if (entity.isFalsePositive()) {
entity.setFalsePositive(true);
entity.setRedaction(false);
}
} }
EntitySearchUtils.clearAndFindPositions(found, searchableText, dictionary, manualRedactions); EntitySearchUtils.clearAndFindPositions(found, searchableText, dictionary, manualRedactions);

View File

@ -254,9 +254,6 @@ public class EntitySearchUtils {
existing.setRedactionReason(found.getRedactionReason()); existing.setRedactionReason(found.getRedactionReason());
existing.setFalsePositive(found.isFalsePositive()); existing.setFalsePositive(found.isFalsePositive());
if (found.isFalsePositive()) {
existing.setRedaction(false);
}
if (existing.getEntityType().equals(EntityType.RECOMMENDATION) && found.getEntityType().equals(EntityType.ENTITY) if (existing.getEntityType().equals(EntityType.RECOMMENDATION) && found.getEntityType().equals(EntityType.ENTITY)
|| existing.getEntityType().equals(EntityType.ENTITY) && found.getEntityType().equals(EntityType.RECOMMENDATION)) { || existing.getEntityType().equals(EntityType.ENTITY) && found.getEntityType().equals(EntityType.RECOMMENDATION)) {
existing.setEntityType(EntityType.ENTITY); existing.setEntityType(EntityType.ENTITY);