--- language: - ru license: mit tags: - spacy - token-classification - ner - pii - russian - named-entity-recognition base_model: - explosion-ai/spacy-ru_core_news_lg model-index: - name: spacy_ru_core_news_lg_pii results: - task: type: token-classification name: Named Entity Recognition dataset: name: hivetrace/pii-bench type: hivetrace/pii-bench metrics: - type: f1 value: 0.944 name: NAME F1 - type: f1 value: 0.824 name: ADDRESS F1 --- # spacy_ru_core_news_lg_pii spaCy NER-модель для детекции имён (ФИО) и адресов в русскоязычных текстах. Дообучена на основе [`ru_core_news_lg`](https://spacy.io/models/ru#ru_core_news_lg) с заменой NER-головы на двухклассовую (NAME / ADDRESS). Входит в состав проекта [PIIDetector](https://github.com/dbashkirov/pii_detection) — гибридного детектора персональных данных для русского языка на базе Microsoft Presidio. ## Использование ```bash pip install spacy>=3.8.0,<3.9.0 pymorphy3>=1.0.0 ``` ```python import spacy nlp = spacy.load("alrosait/spacy_ru_core_news_lg_pii") doc = nlp("Иван Петров, г. Москва, ул. Ленина 5") for ent in doc.ents: print(ent.text, ent.label_) # Иван Петров NAME # г. Москва, ул. Ленина 5 ADDRESS ``` ## Поддерживаемые сущности | Метка | Описание | |-----------|-------------------------------------------------------------| | `NAME` | ФИО: полное, сокращённое, с инициалами, в различных падежах | | `ADDRESS` | Почтовые адреса: город, улица, дом, квартира | ## Метрики Оценка на [hivetrace/pii-bench](https://huggingface.co/datasets/hivetrace/pii-bench) (1 810 примеров, exact match): | Сущность | Precision | Recall | F1 | |-----------|-----------|--------|-----------| | NAME | 0.968 | 0.921 | **0.944** | | ADDRESS | 0.824 | 0.824 | **0.824** | ## Архитектура - **Базовая модель**: `ru_core_news_lg` (tok2vec + 300-мерные векторы) - **Pipeline**: `tok2vec` → `ner` (senter отключён для инференса) - **Tok2Vec**: MultiHashEmbed (width=96) + MaxoutWindowEncoder (depth=4, window=1) - **NER**: TransitionBasedParser.v2 (hidden=64, state_type=ner) - **Язык**: ru, spaCy ≥ 3.8.0 ## Обучающие данные Модель обучена на объединённом датасете из трёх источников: | Источник | Описание | |--------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------| | [scanpatch/pii-ner-corpus-synthetic-controlled](https://huggingface.co/datasets/scanpatch/pii-ner-corpus-synthetic-controlled) | Взяли русскоязычные примеры, использовали только сущности NAME и ADDRESS | | [AlexKly/Detailed-NER-Dataset-RU](https://huggingface.co/datasets/AlexKly/Detailed-NER-Dataset-RU) | BIOLU-аннотированный русский NER, метки объединены в NAME и ADDRESS | | [alrosait/pii-synthetic-ru](https://huggingface.co/datasets/alrosait/pii-synthetic-ru) | Собственный синтетический датасет (4 500 примеров, 13 доменов) | **Итоговый размер:** 13 052 train / 1 451 dev документов; 11 460 / 1 264 сущностей (NAME: 6 298 / 694, ADDRESS: 5 162 / 570). ## Связанные ресурсы - **Датасет**: [alrosait/pii-synthetic-ru](https://huggingface.co/datasets/alrosait/pii-synthetic-ru) - **Бенчмарк**: [hivetrace/pii-bench](https://huggingface.co/datasets/hivetrace/pii-bench)