From 11164219c50e5f74b00b6343b96d978079651f13 Mon Sep 17 00:00:00 2001 From: deiflaender Date: Tue, 29 Sep 2020 14:21:30 +0200 Subject: [PATCH 1/2] RED-264: Avoid phantom cells, by merging line till rounded value of biggest char height/width --- .../server/parsing/PDFLinesTextStripper.java | 20 ++++++++++++------ .../server/parsing/model/ParsedElements.java | 4 ++-- .../segmentation/PdfSegmentationService.java | 20 ++++++++++++------ .../service/RulingCleaningService.java | 4 ++-- .../v1/server/RedactionIntegrationTest.java | 5 ++--- .../files/Minimal Examples/Phantom Cells.pdf | Bin 0 -> 92715 bytes 6 files changed, 33 insertions(+), 20 deletions(-) create mode 100644 redaction-service-v1/redaction-service-server-v1/src/test/resources/files/Minimal Examples/Phantom Cells.pdf diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/parsing/PDFLinesTextStripper.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/parsing/PDFLinesTextStripper.java index ed69fecd..d6d7e102 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/parsing/PDFLinesTextStripper.java +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/parsing/PDFLinesTextStripper.java @@ -44,10 +44,10 @@ import lombok.extern.slf4j.Slf4j; public class PDFLinesTextStripper extends PDFTextStripper { @Getter - private float minCharWidth = Float.MAX_VALUE; + private int maxCharWidths; @Getter - private float minCharHeight = Float.MAX_VALUE; + private int maxCharHeight; @Getter private final List textPositionSequences = new ArrayList<>(); @@ -201,8 +201,16 @@ public class PDFLinesTextStripper extends PDFTextStripper { int startIndex = 0; for (int i = 0; i <= textPositions.size() - 1; i++) { - minCharWidth = Math.min(minCharWidth, textPositions.get(i).getWidthDirAdj()); - minCharHeight = Math.min(minCharHeight, textPositions.get(i).getHeightDir()); + + int charHeight = (int) textPositions.get(i).getHeightDir(); + if(charHeight > maxCharHeight){ + maxCharHeight = charHeight; + } + + int charWidth = (int) textPositions.get(i).getWidthDirAdj(); + if(charWidth > maxCharWidths){ + maxCharWidths = charWidth; + } if (i == 0 && textPositions.get(i).getUnicode().equals(" ")) { startIndex++; @@ -241,8 +249,8 @@ public class PDFLinesTextStripper extends PDFTextStripper { @Override public String getText(PDDocument doc) throws IOException { - minCharWidth = Float.MAX_VALUE; - minCharHeight = Float.MAX_VALUE; + maxCharWidths = 0; + maxCharWidths = 0; textPositionSequences.clear(); rulings.clear(); graphicsPath.clear(); diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/parsing/model/ParsedElements.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/parsing/model/ParsedElements.java index 5fc5717f..28983e69 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/parsing/model/ParsedElements.java +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/parsing/model/ParsedElements.java @@ -17,6 +17,6 @@ public class ParsedElements { private boolean landscape; private boolean rotated; - private float minCharWidth; - private float minCharHeight; + private float maxCharWidth; + private float maxCharHeight; } diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/segmentation/PdfSegmentationService.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/segmentation/PdfSegmentationService.java index 9caff395..8106d5eb 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/segmentation/PdfSegmentationService.java +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/segmentation/PdfSegmentationService.java @@ -21,7 +21,6 @@ import com.iqser.red.service.redaction.v1.server.tableextraction.model.AbstractT import com.iqser.red.service.redaction.v1.server.tableextraction.model.CleanRulings; import com.iqser.red.service.redaction.v1.server.tableextraction.service.RulingCleaningService; import com.iqser.red.service.redaction.v1.server.tableextraction.service.TableExtractionService; -import com.iqser.red.service.redaction.v1.server.tableextraction.utils.Utils; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -37,6 +36,7 @@ public class PdfSegmentationService { private final ClassificationService classificationService; private final SectionsBuilderService sectionsBuilderService; + public Document parseDocument(PDDocument pdDocument) throws IOException { Document document = new Document(); @@ -56,19 +56,21 @@ public class PdfSegmentationService { int rotation = pdPage.getRotation(); boolean isRotated = rotation != 0 && rotation != 360; - ParsedElements parsedElements = ParsedElements - .builder() + + ParsedElements parsedElements = ParsedElements.builder() .rulings(stripper.getRulings()) .sequences(stripper.getTextPositionSequences()) - .minCharWidth(Utils.round(stripper.getMinCharWidth(), 2)) - .minCharHeight(Utils.round(stripper.getMinCharHeight(), 2)) + .maxCharWidth(stripper.getMaxCharWidths()) + .maxCharHeight(stripper.getMaxCharWidths()) .landscape(isLandscape) .rotated(isRotated) .build(); - CleanRulings cleanRulings = rulingCleaningService.getCleanRulings(parsedElements.getRulings(), parsedElements.getMinCharWidth(), parsedElements.getMinCharHeight()); + CleanRulings cleanRulings = rulingCleaningService.getCleanRulings(parsedElements.getRulings(), parsedElements + .getMaxCharWidth(), parsedElements.getMaxCharHeight()); - Page page = blockificationService.blockify(parsedElements.getSequences(), cleanRulings.getHorizontal(), cleanRulings.getVertical()); + Page page = blockificationService.blockify(parsedElements.getSequences(), cleanRulings.getHorizontal(), cleanRulings + .getVertical()); page.setRotation(rotation); tableExtractionService.extractTables(cleanRulings, page); @@ -91,7 +93,10 @@ public class PdfSegmentationService { } + + private void increaseDocumentStatistics(Page page, Document document) { + if (!page.isLandscape()) { document.getFontSizeCounter().addAll(page.getFontSizeCounter().getCountPerValue()); } @@ -100,6 +105,7 @@ public class PdfSegmentationService { document.getFontStyleCounter().addAll(page.getFontStyleCounter().getCountPerValue()); } + private void buildPageStatistics(Page page) { // Collect all statistics for the page, except from blocks inside tables, as tables will always be added to BodyTextFrame. diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/tableextraction/service/RulingCleaningService.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/tableextraction/service/RulingCleaningService.java index 1dbe435d..facef878 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/tableextraction/service/RulingCleaningService.java +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/tableextraction/service/RulingCleaningService.java @@ -18,9 +18,9 @@ import com.iqser.red.service.redaction.v1.server.tableextraction.utils.Utils; @Service public class RulingCleaningService { - public CleanRulings getCleanRulings(List rulings, float minCharWidth, float minCharHeight){ + public CleanRulings getCleanRulings(List rulings, float avgCharWidth, float avgCharHeight){ if (!rulings.isEmpty()) { - snapPoints(rulings, minCharWidth , minCharHeight); + snapPoints(rulings, avgCharWidth , avgCharHeight); } List vrs = new ArrayList<>(); diff --git a/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/RedactionIntegrationTest.java b/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/RedactionIntegrationTest.java index 6879382d..a1adb27d 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/RedactionIntegrationTest.java +++ b/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/RedactionIntegrationTest.java @@ -269,7 +269,7 @@ public class RedactionIntegrationTest { System.out.println("redactionTest"); long start = System.currentTimeMillis(); - ClassPathResource pdfFileResource = new ClassPathResource("files/new/Thiabendazole DAR Addendum for ED_April_2020.pdf"); + ClassPathResource pdfFileResource = new ClassPathResource("files/Fludioxonil/50 Fludioxonil_RAR_01_Volume_1_2018-02-21.pdf"); RedactionRequest request = RedactionRequest.builder() .document(IOUtils.toByteArray(pdfFileResource.getInputStream())) @@ -388,8 +388,7 @@ public class RedactionIntegrationTest { public void htmlTablesTest() throws IOException { System.out.println("htmlTablesTest"); - ClassPathResource pdfFileResource = new ClassPathResource("files/Fludioxonil/51 " + - "Fludioxonil_RAR_02_Volume_2_2018-02-21.pdf"); + ClassPathResource pdfFileResource = new ClassPathResource("files/Metolachlor/S-Metolachlor_RAR_02_Volume_2_2018-09-06.pdf"); RedactionRequest request = RedactionRequest.builder() .document(IOUtils.toByteArray(pdfFileResource.getInputStream())) diff --git a/redaction-service-v1/redaction-service-server-v1/src/test/resources/files/Minimal Examples/Phantom Cells.pdf b/redaction-service-v1/redaction-service-server-v1/src/test/resources/files/Minimal Examples/Phantom Cells.pdf new file mode 100644 index 0000000000000000000000000000000000000000..441a6af5fbbee2ac8ec3e8752544204420130301 GIT binary patch literal 92715 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 z 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 TMZrKAl!BC-TR}^ag7kj?q5tS- literal 0 HcmV?d00001 From e1adcfb02c4c7d46140884b3d38f8daf1e1aae92 Mon Sep 17 00:00:00 2001 From: deiflaender Date: Tue, 29 Sep 2020 14:54:35 +0200 Subject: [PATCH 2/2] Added missing unittest --- .../service/RulingCleaningService.java | 4 ++-- .../v1/server/RedactionIntegrationTest.java | 22 +++++++++++++++++++ 2 files changed, 24 insertions(+), 2 deletions(-) diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/tableextraction/service/RulingCleaningService.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/tableextraction/service/RulingCleaningService.java index facef878..1d3d81f2 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/tableextraction/service/RulingCleaningService.java +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/tableextraction/service/RulingCleaningService.java @@ -18,9 +18,9 @@ import com.iqser.red.service.redaction.v1.server.tableextraction.utils.Utils; @Service public class RulingCleaningService { - public CleanRulings getCleanRulings(List rulings, float avgCharWidth, float avgCharHeight){ + public CleanRulings getCleanRulings(List rulings, float maxCharWidth, float maxCharHeight){ if (!rulings.isEmpty()) { - snapPoints(rulings, avgCharWidth , avgCharHeight); + snapPoints(rulings, maxCharWidth , maxCharHeight); } List vrs = new ArrayList<>(); diff --git a/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/RedactionIntegrationTest.java b/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/RedactionIntegrationTest.java index a1adb27d..4a6a3491 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/RedactionIntegrationTest.java +++ b/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/RedactionIntegrationTest.java @@ -1,5 +1,6 @@ package com.iqser.red.service.redaction.v1.server; +import static org.assertj.core.api.Assertions.assertThat; import static org.mockito.Mockito.when; import static org.springframework.boot.test.context.SpringBootTest.WebEnvironment.DEFINED_PORT; @@ -421,6 +422,27 @@ public class RedactionIntegrationTest { } + @Test + public void phantomCellsDocumentTest() throws IOException { + + ClassPathResource pdfFileResource = new ClassPathResource("files/Minimal Examples/Phantom Cells.pdf"); + + RedactionRequest request = RedactionRequest.builder() + .document(IOUtils.toByteArray(pdfFileResource.getInputStream())) + .build(); + request.setFlatRedaction(false); + + RedactionResult result = redactionController.redact(request); + + result.getRedactionLog().getRedactionLogEntry().forEach(entry -> { + if(!entry.isHint()){ + assertThat(entry.getReason()).isEqualTo("Not redacted because row is not a vertebrate study"); + } + }); + } + + + private static String loadFromClassPath(String path) { URL resource = ResourceLoader.class.getClassLoader().getResource(path);