File size: 5,174 Bytes
f496f54 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 |
{
"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 <a href='vscode-notebook-cell:/c%3A/WORK/GIT/cpy1/responsible-ai-privacy/responsible-ai-privacy/src/privacy/service/service.ipynb#W0sZmlsZQ%3D%3D?line=1'>2</a>\u001b[0m \u001b[39mimport\u001b[39;00m \u001b[39mre\u001b[39;00m\n\u001b[0;32m <a href='vscode-notebook-cell:/c%3A/WORK/GIT/cpy1/responsible-ai-privacy/responsible-ai-privacy/src/privacy/service/service.ipynb#W0sZmlsZQ%3D%3D?line=2'>3</a>\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 <a href='vscode-notebook-cell:/c%3A/WORK/GIT/cpy1/responsible-ai-privacy/responsible-ai-privacy/src/privacy/service/service.ipynb#W0sZmlsZQ%3D%3D?line=3'>4</a>\u001b[0m OperatorResult,\n\u001b[0;32m <a href='vscode-notebook-cell:/c%3A/WORK/GIT/cpy1/responsible-ai-privacy/responsible-ai-privacy/src/privacy/service/service.ipynb#W0sZmlsZQ%3D%3D?line=4'>5</a>\u001b[0m OperatorConfig)\n\u001b[1;32m----> <a href='vscode-notebook-cell:/c%3A/WORK/GIT/cpy1/responsible-ai-privacy/responsible-ai-privacy/src/privacy/service/service.ipynb#W0sZmlsZQ%3D%3D?line=5'>6</a>\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 [email protected]\"\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
}
|