{ "cells": [ { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "ename": "ModuleNotFoundError", "evalue": "No module named 'privacy'", "output_type": "error", "traceback": [ "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[1;31mModuleNotFoundError\u001b[0m Traceback (most recent call last)", "\u001b[1;32mc:\\WORK\\GIT\\cpy1\\responsible-ai-privacy\\responsible-ai-privacy\\src\\privacy\\service\\service.ipynb Cell 1\u001b[0m line \u001b[0;36m6\n\u001b[0;32m 2\u001b[0m \u001b[39mimport\u001b[39;00m \u001b[39mre\u001b[39;00m\n\u001b[0;32m 3\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mpresidio_anonymizer\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mentities\u001b[39;00m \u001b[39mimport\u001b[39;00m (RecognizerResult,\n\u001b[0;32m 4\u001b[0m OperatorResult,\n\u001b[0;32m 5\u001b[0m OperatorConfig)\n\u001b[1;32m----> 6\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mservice\u001b[39;00m \u001b[39mimport\u001b[39;00m PrivacyService\n", "File \u001b[1;32mc:\\WORK\\GIT\\cpy1\\responsible-ai-privacy\\responsible-ai-privacy\\src\\privacy\\service\\service.py:13\u001b[0m\n\u001b[0;32m 11\u001b[0m \u001b[39mimport\u001b[39;00m \u001b[39mrequests\u001b[39;00m\n\u001b[0;32m 12\u001b[0m \u001b[39mimport\u001b[39;00m \u001b[39mpandas\u001b[39;00m \u001b[39mas\u001b[39;00m \u001b[39mpd\u001b[39;00m\n\u001b[1;32m---> 13\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mprivacy\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mservice\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39measy\u001b[39;00m \u001b[39mimport\u001b[39;00m EasyOCR\n\u001b[0;32m 14\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mprivacy\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mdao\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mTelemetryFlagDb\u001b[39;00m \u001b[39mimport\u001b[39;00m TelemetryFlag\n\u001b[0;32m 15\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mprivacy\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mmappers\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mmappers\u001b[39;00m \u001b[39mimport\u001b[39;00m \u001b[39m*\u001b[39m\n", "\u001b[1;31mModuleNotFoundError\u001b[0m: No module named 'privacy'" ] } ], "source": [ "import numpy as np\n", "import re\n", "from presidio_anonymizer.entities import (RecognizerResult,\n", " OperatorResult,\n", " OperatorConfig)\n", "from service import PrivacyService" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "from presidio_anonymizer import AnonymizerEngine\n", "\n", "# Initialize the anonymizer engine\n", "anonymizer = AnonymizerEngine()\n", "\n", "# Define the text containing PII\n", "text = \"My email is john.doe@example.com\"\n", "\n", "# Apply differential privacy to the PII value\n", "epsilon = 0.1 # Privacy parameter for differential privacy\n", "sensitivity = 1 # Sensitivity of the PII value\n", "delta = 1e-6 # Privacy parameter for differential privacy\n", "\n", "# Calculate the noise to be added\n", "scale = sensitivity / epsilon\n", "laplace_noise = np.random.laplace(loc=0, scale=scale)\n", "\n", "# Add the noise to the PII value\n", "noisy_value = 1234567890 + laplace_noise\n", "results = PrivacyService.__analyze(text=text)\n", "# Anonymize the noisy value using Presidio\n", "anonymized_text = anonymizer.anonymize(\n", " text,\n", " analyzer_results=results,\n", " operators=\n", " {\"Email\": OperatorConfig({\"type\": \"replace\", \"value\": str(noisy_value)})}\n", " ,\n", ")\n", "\n", "# Print the anonymized text\n", "print(anonymized_text)" ] } ], "metadata": { "kernelspec": { "display_name": "myenv", "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.10.11" }, "orig_nbformat": 4 }, "nbformat": 4, "nbformat_minor": 2 }