Privacy-Preserving Record Linkage (PPRL) enables the identification and matching of records across disparate databases without exposing personally identifiable information, addressing critical privacy requirements in healthcare research, fraud detection, and population studies. While the field has produced numerous PPRL methods and tools over the past two decades, ranging from hash-based approaches to secure multi-party computation and Bloom filter encoding, the literature lacks a systematic experimental comparison across standardized benchmarks and comprehensive evaluation criteria. This paper presents the first large-scale experimental analysis of PPRL techniques, introducing a novel taxonomy organized around the complete end-to-end PPRL workflow: preprocessing, encoding, blocking, matching, and result evaluation. We systematically evaluate multiple methods from the literature for each pipeline step, representing the first work to apply existing record linkage optimization techniques to the PPRL context. Our experimental framework assesses PPRL performance across diverse datasets using comprehensive metrics including effectiveness (precision, recall, F-measure), time efficiency, scalability, and memory consumption. The results reveal critical trade-offs between privacy protection, linkage accuracy, and computational performance, providing practitioners with evidence-based guidance for selecting appropriate PPRL configurations. Our findings highlight opportunities for hybrid approaches that balance these competing objectives and identify promising directions for future research in privacy-preserving data integration.
This repository contains the source code, datasets, and experimental outputs corresponding to the evaluations presented in our paper.
scripts/: Contains all Python scripts required to reproduce the experimental results.scripts/results/: The primary scripts used to generate the main evaluations in the paper.random_*.py: Scripts dedicated to running random configuration experiments.
scripts/data_manipulation/: Contains scripts and corresponding outputs analyzing how Locality Sensitive Hashing (LSH) performance varies across different random seed values.
results/: Stores the raw output data and metrics generated by the scripts. Specifically,results/random_configurations/houses the outputs generated by the random_ prefixed scripts.data/: Contains the datasets required for the experiments. Our evaluations specifically utilize the Clean-Clean Entity Resolution (CCER) datasets D2, D3, D4, D8, D9, and D10, located underdata/ccer/.
To ensure reproducible results, we recommend using Conda to manage your virtual environment. This project relies on Python 3.10+.
Run the following commands in your terminal to create the environment, activate it, and install the required library:
conda create -n ea-env python=3.10 -c conda-forge -y
conda activate ea-env
pip install privjedai