Analyzing PII in datasets
The task requires creation of a tool that will detect whether new datasets uploaded to HDX contain any personally identifiable information - data that can be used on its own or with other information to identify, contact, or locate a single person, or to identify an individual in context.
The tool should then alert the HDX data manager whether any such data sets have been uploaded and also alert the data owner about this.
I decided to use the following tools for the above task:
-
Common Regular expressions: for extracting some types of 'PII' such as email addresses, phone numbers, street addresses, credit card numbers,
-
Stanford Named Entity Tagger: for extracting the locations, organizations and peoples names.
The analyzer opens the provided file, analyses it and returns a summary of the types of data that are in the provided dataset. With this information the data manager can easily classify the data.
Install from pypi using:
pip install piianalyzer
Requires the Stanford Named Entity Recognizer. It can be downloaded here: http://nlp.stanford.edu/software/CRF-NER.shtml
-
Command Line
manage analyze /path/to/your/file.csv
-
Python
from piianalyzer.analyzer import PiiAnalyzer filepath = '/path/to/your/file.csv' piianalyzer = PiiAnalyzer(filepath) analysis = piianalyzer.analysis()
Run tests using:
py.test
piianalyzer was written by Savio Abuga.