Top AI Repos — open-source AI, indexed and scored
Top AI Repos tracks AI repositories on GitHub and answers two different questions about each one: is it moving right now, and would you bet a product on it.
Top AI Repos tracks AI repositories on GitHub and answers two different questions about each one: is it moving right now, and would you bet a product on it.
This package features data-science related tasks for developing new recognizers for Presidio. It is used for the evaluation of the entire system, as well as for evaluating specific PII recognizers or PII detection models.
| Date | Stars |
|---|---|
| 2026-07-24 | 299 |
| 2026-07-25 | 300 |
| 2026-07-28 | 300 |
| 2026-07-30 | 300 |
| 2026-08-08 | 299 |
| 2026-08-16 | 301 |
| 2026-08-19 | 303 |
| 2026-08-22 | 303 |
| 2026-08-25 | 304 |
| 2026-08-28 | 304 |
| 2026-09-01 | 305 |
| 2026-09-03 | 307 |
| 2026-09-10 | 307 |
| 2026-09-12 | 308 |
| 2026-09-13 | 309 |
| 2026-09-14 | 309 |
| 2026-09-20 | 309 |
Today
— stars today
This week
— stars this week
This month
+6 stars this month
Momentum
15.0
growth rate 0.00%/day
# Presidio-research
This package provides evaluation and data-science capabilities for
[Presidio](https://github.com/data-privacy-stack/presidio) and PII detection models in general.
It also includes a fake data generator that creates synthetic sentences based on templates and fake PII.
## Who should use it?
- Anyone interested in **developing or evaluating PII detection models**, an existing Presidio instance or a Presidio PII recognizer.
- Anyone interested in **generating new data based on previous datasets or sentence templates** (e.g., to increase the coverage of entity values) for Named Entity Recognition models.
## Getting started
### Using notebooks
The easiest way to get started is by reviewing the notebooks.
- [Notebook 1](notebooks/1_Generate_data.ipynb): Shows how to use the PII data generator.
- [Notebook 2](notebooks/2_PII_EDA.ipynb): Shows a simple analysis of the PII dataset.
- [Notebook 3](notebooks/3_Split_by_pattern_number.ipynb): Provides tools to split the dataset into train/test/validation sets while avoiding leakage due to the same pattern appearing in multiple folds (only applicable for synthetically generated data).
- [Notebook 4](notebooks/4_Evaluate_Presidio_Analyzer.ipynb): Shows how to use the evaluation tools to evaluate how well Presidio detects PII. Note that this is using the vanilla Presidio, and the results aren't very accurate.
- [Notebook 5](notebooks/5_Evaluate_Custom_Presidio_Analyzer.ipynb): Shows how one can configure Presidio to detect PII much more accurately, and boost the f score in ~30%.
- [Notebook 6](notebooks/6_Interactive_Entity_Mapping.ipynb): Explains the entity mapping process, which is crucial when evaluating multiple models each returning a different set of entities.
### Installation
#### From PyPI
``` sh
pip install presidio-evaluator
python -m spacy download en_core_web_sm # for tokenization
python -m spacy download en_core_web_lg # for NER
```
#### From source
To install the package:
1. Clone the repo
2. Install all dependencies:
``` sh
# Install uv if not already installed
pip install uv
# Install package + dev dependencies
uv sync --extra dev
# Download the spaCy pipeline used for tokenization
uv run python -m spacy download en_core_web_sm
# To use the default Presidio configuration, a spaCy model is required:
uv run python -m spacy download en_core_web_lg
# Verify installation
uv run pytest
```
Note that some dependencies (such as Flair and Stanza) are no longer supported. Use Presidio Analyzer directly to add custom NER models.
## What's in this package?
1. **Fake data generator** for PII recognizers and NER models
2. **Data representation layer** for data generation, modeling and analysis
3. **Model/Recognizer evaluation** for Presidio Analyzer and custom Presidio recognizers
5. Helper functions for **results analysis**
## 1. Data generation
See the [Data Generation docs](docs/data_generation.md) for more details.
The data generation process takes a file with templates, e.g. `My name is {{name}}`.
Then, it creates new synthetic sentences by sampling templates and PII values.
Furthermore, it tokenizes the data, creates tags (either IO/BIO/BILUO) and spans for the newly created samples.
- For information on data generation/augmentation, see the [Data Generation docs](docs/data_generation.md).
- For an example for running the generation process, see [this notebook](notebooks/1_Generate_data.ipynb).
- For an understanding of the underlying fake PII data used, see this [exploratory data analysis notebook](notebooks/2_PII_EDA.ipynb).
Once data is generated, it could be split into train/test/validation sets
while ensuring that each template only exists in one set.
See [this notebook for more details](notebooks/3_Split_by_pattern_number.ipynb).
## 2. Data representation
In order to standardize the process,
we use specific data objects that hold all theExcerpt of 6,912 characters
Read on GitHubWould you bet a product on this? Bounded 0–100 and slow moving.
matched fp:b8064a8aa770fecc, topic:nlp, topic:natural-language-processing, topic:named-entity-recognition