From 07b854dd7ae247b916aef4d2adbb82f33bba7be8 Mon Sep 17 00:00:00 2001 From: Andy <113193438+andrewcmsft@users.noreply.github.com> Date: Mon, 30 Jan 2023 13:46:36 +0000 Subject: [PATCH] Adding a sample for identifying PII in a PDF (#1023) --- docs/samples/index.md | 1 + .../python/example_pdf_annotation.ipynb | 253 ++++++++++++++++++ docs/samples/python/index.md | 14 +- docs/samples/python/sample_data/sample.pdf | Bin 0 -> 61154 bytes 4 files changed, 262 insertions(+), 6 deletions(-) create mode 100644 docs/samples/python/example_pdf_annotation.ipynb create mode 100644 docs/samples/python/sample_data/sample.pdf diff --git a/docs/samples/index.md b/docs/samples/index.md index 55503f344..cc77a6003 100644 --- a/docs/samples/index.md +++ b/docs/samples/index.md @@ -16,6 +16,7 @@ | Usage | Python | [Using Transformers as an external PII model](python/transformers_recognizer/index.md) | | Usage | Python Notebook | [Anonymizing known values](python/Anonymizing%20known%20values.ipynb) | Usage | Python Notebook | [Redacting text PII from DICOM images](python/example_dicom_image_redactor.ipynb) +| Usage | Python Notebook | [Annotating PII in a PDF](python/example_pdf_annotation.ipynb) | Usage | REST API (postman) | [Presidio as a REST endpoint](docker/index.md) | | Deployment | App Service | [Presidio with App Service](deployments/app-service/index.md) | | Deployment | Kubernetes | [Presidio with Kubernetes](deployments/k8s/index.md) | diff --git a/docs/samples/python/example_pdf_annotation.ipynb b/docs/samples/python/example_pdf_annotation.ipynb new file mode 100644 index 000000000..69d1fe3b7 --- /dev/null +++ b/docs/samples/python/example_pdf_annotation.ipynb @@ -0,0 +1,253 @@ +{ + "cells": [ + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Annotating PII in a PDF\n", + "\n", + "This sample takes a PDF as an input, extracts the text, identifies PII using Presidio and annotates the PII using highlight annotations.\n", + "\n", + "## Prerequisites\n", + "Before getting started, make sure the following packages are installed. For detailed documentation, see the [installation docs](https://microsoft.github.io/presidio/installation).\n", + "\n", + "Install from PyPI:\n", + "```bash\n", + "pip install presidio_analyzer\n", + "pip install presidio_anonymizer\n", + "python -m spacy download en_core_web_lg\n", + "pip install pdfminer.six\n", + "pip install pikepdf\n", + "```" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# For Presidio\n", + "from presidio_analyzer import AnalyzerEngine, PatternRecognizer\n", + "from presidio_anonymizer import AnonymizerEngine\n", + "from presidio_anonymizer.entities import OperatorConfig\n", + "\n", + "# For console output\n", + "from pprint import pprint\n", + "\n", + "# For extracting text\n", + "from pdfminer.high_level import extract_text, extract_pages\n", + "from pdfminer.layout import LTTextContainer, LTChar, LTTextLine\n", + "\n", + "# For updating the PDF\n", + "from pikepdf import Pdf, AttachedFileSpec, Name, Dictionary, Array" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Analyze the text in the PDF\n", + "\n", + "To extract the text from the PDF, we use the pdf miner library. We extract the text from the PDF at the text container level. This is roughly equivalent to a paragraph. \n", + "\n", + "We then use Presidio Analyzer to identify the PII and it's location in the text.\n", + "\n", + "The Presidio analyzer is using pre-defined entity recognizers, and offers the option to create custom recognizers.\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "analyzer = AnalyzerEngine()\n", + "\n", + "analyzed_character_sets = []\n", + "\n", + "for page_layout in extract_pages(\"./sample_data/sample.pdf\"):\n", + " for text_container in page_layout:\n", + " if isinstance(text_container, LTTextContainer):\n", + "\n", + " # The element is a LTTextContainer, containing a paragraph of text.\n", + " text_to_anonymize = text_container.get_text()\n", + "\n", + " # Analyze the text using the analyzer engine\n", + " analyzer_results = analyzer.analyze(text=text_to_anonymize, language='en')\n", + " \n", + " if text_to_anonymize.isspace() == False:\n", + " print(text_to_anonymize)\n", + " print(analyzer_results)\n", + "\n", + " characters = list([])\n", + "\n", + " # Grab the characters from the PDF\n", + " for text_line in filter(lambda t: isinstance(t, LTTextLine), text_container):\n", + " for character in filter(lambda t: isinstance(t, LTChar), text_line):\n", + " characters.append(character)\n", + "\n", + "\n", + " # Slice out the characters that match the analyzer results.\n", + " for result in analyzer_results:\n", + " start = result.start\n", + " end = result.end\n", + " analyzed_character_sets.append({\"characters\": characters[start:end], \"result\": result})" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Create phrase bounding boxes\n", + "\n", + "The next task is to take the character data, and inflate it into full phrase bounding boxes.\n", + "\n", + "For example, for an email address, we'll turn the bounding boxes for each character in the email address into one single bounding box." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Combine the bounding boxes into a single bounding box.\n", + "def combine_rect(rectA, rectB):\n", + " a, b = rectA, rectB\n", + " startX = min( a[0], b[0] )\n", + " startY = min( a[1], b[1] )\n", + " endX = max( a[2], b[2] )\n", + " endY = max( a[3], b[3] )\n", + " return (startX, startY, endX, endY)\n", + "\n", + "analyzed_bounding_boxes = []\n", + "\n", + "# For each character set, combine the bounding boxes into a single bounding box.\n", + "for analyzed_character_set in analyzed_character_sets:\n", + " completeBoundingBox = analyzed_character_set[\"characters\"][0].bbox\n", + " \n", + " for character in analyzed_character_set[\"characters\"]:\n", + " completeBoundingBox = combine_rect(completeBoundingBox, character.bbox)\n", + " \n", + " analyzed_bounding_boxes.append({\"boundingBox\": completeBoundingBox, \"result\": analyzed_character_set[\"result\"]})" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Add highlight annotations\n", + "\n", + "We finally iterate through all the analyzed bounding boxes and create highlight annotations for all of them." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "pdf = Pdf.open(\"./sample_data/sample.pdf\")\n", + "\n", + "annotations = []\n", + "\n", + "# Create a highlight annotation for each bounding box.\n", + "for analyzed_bounding_box in analyzed_bounding_boxes:\n", + "\n", + " boundingBox = analyzed_bounding_box[\"boundingBox\"]\n", + "\n", + " # Create the annotation. \n", + " # We could also create a redaction annotation if the ongoing workflows supports them.\n", + " highlight = Dictionary(\n", + " Type=Name.Annot,\n", + " Subtype=Name.Highlight,\n", + " QuadPoints=[boundingBox[0], boundingBox[3],\n", + " boundingBox[2], boundingBox[3],\n", + " boundingBox[0], boundingBox[1],\n", + " boundingBox[2], boundingBox[1]],\n", + " Rect=[boundingBox[0], boundingBox[1], boundingBox[2], boundingBox[3]],\n", + " C=[1, 0, 0],\n", + " CA=0.5,\n", + " T=analyzed_bounding_box[\"result\"].entity_type,\n", + " )\n", + " \n", + " annotations.append(highlight)\n", + "\n", + "# Add the annotations to the PDF.\n", + "pdf.pages[0].Annots = pdf.make_indirect(annotations)\n", + "\n", + "# And save.\n", + "pdf.save(\"./sample_data/sample_annotated.pdf\")" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Result\n", + "\n", + "The output from the samples above creates a new PDF. This contains the original content, with text highlight annotations where the PII has been found.\n", + "\n", + "Each text annotation contains the name of the entity found.\n", + "\n", + "## Note\n", + "\n", + "Before relying on this methodology to detect or markup PII from a PDF, please be aware of the following:\n", + "\n", + "### Text extraction\n", + "\n", + "We purposely use a different library specifically for extracting text from the PDF. This is because text extraction is hard to get right, and it's worth using a library specifically developed with the purpose in mind.\n", + "\n", + "For more details, see:\n", + "\n", + "[https://pdfminersix.readthedocs.io/en/latest/topic/converting_pdf_to_text.html](https://pdfminersix.readthedocs.io/en/latest/topic/converting_pdf_to_text.html)\n", + "\n", + "That said, even with a purpose built library, there may be occasions where PII is present and visible in a PDF, but it is not detected by the sample code.\n", + "\n", + "This includes, but is not limited to:\n", + "\n", + "- Text that cannot be reliable extracted to be analyzed. (e.g. incorrect spacing, wrong reading order)\n", + "- Text present in previous iterations of the PDF which is hidden from text extraction. (See incremental editing)\n", + "- Text present in images. (requires OCRing)\n", + "- Text present in annotations." + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": ".venv", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.7" + }, + "metadata": { + "interpreter": { + "hash": "1baa965d5efe3ac65b79dfc60c0d706280b1da80fedb7760faf2759126c4f253" + } + }, + "vscode": { + "interpreter": { + "hash": "32dc7f589eabbfcc8721d5e42a136d6d28d1f0d89a4194393b25e6e4360e3a4e" + } + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/docs/samples/python/index.md b/docs/samples/python/index.md index 3046379dd..3f93a4cc8 100644 --- a/docs/samples/python/index.md +++ b/docs/samples/python/index.md @@ -11,9 +11,11 @@ Presidio service can be used as python packages inside python scripts 3. [Remote Recognizer](https://github.com/microsoft/presidio/blob/main/docs/samples/python/example_remote_recognizer.py) 4. [Azure Text Analytics Integration](text_analytics/index.md) 5. [Anonymizing known values](Anonymizing%20known%20values.ipynb) -6. [Custom Anonymizer with lambda expression](example_custom_lambda_anonymizer.py) -7. [Running Presidio on structured / semi-structured data in batch](batch_processing.ipynb) -8. [Getting the detected text value using a custom operator](getting_entity_values.ipynb) -9. [Creating a simple demo website](streamlit/index.md) -10. [Using Flair as an external PII model](flair_recognizer.py) -11. [Using Transformers as an external PII model](transformers_recognizer.py) +6. [Redacting text PII from DICOM images](example_dicom_image_redactor.ipynb) +7. [Annotating PII in a PDF](example_pdf_annotation.ipynb) +8. [Custom Anonymizer with lambda expression](example_custom_lambda_anonymizer.py) +9. [Running Presidio on structured / semi-structured data in batch](batch_processing.ipynb) +10. [Getting the detected text value using a custom operator](getting_entity_values.ipynb) +11. [Creating a simple demo website](streamlit/index.md) +12. [Using Flair as an external PII model](flair_recognizer.py) +13. [Using Transformers as an external PII model](transformers_recognizer.py) diff --git a/docs/samples/python/sample_data/sample.pdf b/docs/samples/python/sample_data/sample.pdf new file mode 100644 index 0000000000000000000000000000000000000000..00f20ba1c1b17c4e83f3d001db4b7b95606c19f0 GIT binary patch literal 61154 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