Merge branch 'RED-8402' into 'master'
RED-8402: hotfix for fixing exception caused by layout parser changes Closes RED-8402 See merge request redactmanager/redaction-service!376
This commit is contained in:
commit
1af74c3f2e
@ -12,7 +12,8 @@ import com.iqser.red.service.redaction.v1.server.client.model.NerEntitiesModel;
|
|||||||
import com.iqser.red.service.redaction.v1.server.model.NerEntities;
|
import com.iqser.red.service.redaction.v1.server.model.NerEntities;
|
||||||
import com.iqser.red.service.redaction.v1.server.model.document.TextRange;
|
import com.iqser.red.service.redaction.v1.server.model.document.TextRange;
|
||||||
import com.iqser.red.service.redaction.v1.server.model.document.nodes.Document;
|
import com.iqser.red.service.redaction.v1.server.model.document.nodes.Document;
|
||||||
import com.iqser.red.service.redaction.v1.server.model.document.nodes.Section;
|
import com.iqser.red.service.redaction.v1.server.model.document.nodes.NodeType;
|
||||||
|
import com.iqser.red.service.redaction.v1.server.model.document.nodes.SemanticNode;
|
||||||
import com.iqser.red.service.redaction.v1.server.model.document.textblock.TextBlock;
|
import com.iqser.red.service.redaction.v1.server.model.document.textblock.TextBlock;
|
||||||
|
|
||||||
import lombok.AccessLevel;
|
import lombok.AccessLevel;
|
||||||
@ -43,7 +44,7 @@ public class NerEntitiesAdapter {
|
|||||||
*/
|
*/
|
||||||
public NerEntities toNerEntities(NerEntitiesModel nerEntitiesModel, Document document) {
|
public NerEntities toNerEntities(NerEntitiesModel nerEntitiesModel, Document document) {
|
||||||
|
|
||||||
return new NerEntities(addOffsetsAndFlatten(getStringStartOffsetsForMainSections(document),
|
return new NerEntities(addOffsetsAndFlatten(getStringStartOffsetsForMainSectionsHeadersFooters(document),
|
||||||
nerEntitiesModel).map(nerEntityModel -> new NerEntities.NerEntity(nerEntityModel.getValue(),
|
nerEntitiesModel).map(nerEntityModel -> new NerEntities.NerEntity(nerEntityModel.getValue(),
|
||||||
new TextRange(nerEntityModel.getStartOffset(),
|
new TextRange(nerEntityModel.getStartOffset(),
|
||||||
nerEntityModel.getEndOffset()),
|
nerEntityModel.getEndOffset()),
|
||||||
@ -160,11 +161,11 @@ public class NerEntitiesAdapter {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private static Stream<EntityRecognitionEntity> addOffsetsAndFlatten(List<Integer> stringOffsetsForMainSections, NerEntitiesModel nerEntitiesModel) {
|
private static Stream<EntityRecognitionEntity> addOffsetsAndFlatten(List<Integer> stringOffsetsForMainSectionsHeadersFooters, NerEntitiesModel nerEntitiesModel) {
|
||||||
|
|
||||||
nerEntitiesModel.getData()
|
nerEntitiesModel.getData()
|
||||||
.forEach((sectionNumber, listOfNerEntities) -> listOfNerEntities.forEach(entityRecognitionEntity -> {
|
.forEach((sectionNumber, listOfNerEntities) -> listOfNerEntities.forEach(entityRecognitionEntity -> {
|
||||||
int newStartOffset = entityRecognitionEntity.getStartOffset() + stringOffsetsForMainSections.get(sectionNumber);
|
int newStartOffset = entityRecognitionEntity.getStartOffset() + stringOffsetsForMainSectionsHeadersFooters.get(sectionNumber);
|
||||||
entityRecognitionEntity.setStartOffset(newStartOffset);
|
entityRecognitionEntity.setStartOffset(newStartOffset);
|
||||||
entityRecognitionEntity.setEndOffset(newStartOffset + entityRecognitionEntity.getValue().length());
|
entityRecognitionEntity.setEndOffset(newStartOffset + entityRecognitionEntity.getValue().length());
|
||||||
}));
|
}));
|
||||||
@ -174,11 +175,11 @@ public class NerEntitiesAdapter {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private static List<Integer> getStringStartOffsetsForMainSections(Document document) {
|
private static List<Integer> getStringStartOffsetsForMainSectionsHeadersFooters(Document document) {
|
||||||
|
|
||||||
return document.getMainSections()
|
return document.streamChildren()
|
||||||
.stream()
|
.filter(child -> (child.getType().equals(NodeType.FOOTER) ||child.getType().equals(NodeType.HEADER) ||child.getType().equals(NodeType.SECTION)))
|
||||||
.map(Section::getTextBlock)
|
.map(SemanticNode::getTextBlock)
|
||||||
.map(TextBlock::getTextRange)
|
.map(TextBlock::getTextRange)
|
||||||
.map(TextRange::start)
|
.map(TextRange::start)
|
||||||
.toList();
|
.toList();
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user