Instructions to use alrosait/spacy_ru_core_news_lg_pii with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- spaCy
How to use alrosait/spacy_ru_core_news_lg_pii with spaCy:
!pip install https://huggingface.co/alrosait/spacy_ru_core_news_lg_pii/resolve/main/spacy_ru_core_news_lg_pii-any-py3-none-any.whl # Using spacy.load(). import spacy nlp = spacy.load("spacy_ru_core_news_lg_pii") # Importing as module. import spacy_ru_core_news_lg_pii nlp = spacy_ru_core_news_lg_pii.load() - Notebooks
- Google Colab
- Kaggle
metadata
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
с заменой NER-головы на двухклассовую (NAME / ADDRESS).
Входит в состав проекта PIIDetector — гибридного детектора персональных данных для русского языка на базе Microsoft Presidio.
Использование
pip install spacy>=3.8.0,<3.9.0 pymorphy3>=1.0.0
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 (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 | Взяли русскоязычные примеры, использовали только сущности NAME и ADDRESS |
| AlexKly/Detailed-NER-Dataset-RU | BIOLU-аннотированный русский NER, метки объединены в NAME и ADDRESS |
| 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
- Бенчмарк: hivetrace/pii-bench