Стандартизация ФИО
API разбирает ФИО на фамилию, имя, отчество. Определяет пол, исправляет регистр, обрабатывает сокращения. Точность 95%+, время ответа <50ms.
Вход
"иванов сергей петрович"Результат
{
"surname": "Иванов",
"name": "Сергей",
"patronymic": "Петрович",
"gender": "male",
"confidence": 0.98
}Проблема
В базах данных ФИО хранятся как попало:
- «Иванов И.И.» — инициалы вместо полных имён
- «ИВАНОВ ИВАН» — регистр капсом
- «иванов иван иванович» — нижний регистр
- «Сергей Иванов» — имя перед фамилией
- «Ivanov Sergey» — транслитерация
Это создаёт дубли в CRM, ошибки в документах, проблемы с поиском. По нашим данным, до 15% записей в типичной базе содержат ошибки в ФИО.
Попробуйте сами
Что делает API
- ✓Разбирает ФИО на компоненты (фамилия, имя, отчество)
- ✓Определяет пол по имени и отчеству
- ✓Нормализует регистр: иванов сергей → Иванов Сергей
- ✓Восстанавливает порядок: Сергей Иванов → Иванов Сергей
- ✓Раскрывает сокращения: Иванов С.П. → Иванов С* П*
- ✓Возвращает код качества (QC) для оценки результата
В планах (TODO)
- ○Исправление опечаток: Иавнов → Иванов
- ○Склонение по падежам: Иванову Сергею Петровичу
- ○Транслитерация: Ivanov Sergey → Иванов Сергей
- ○Подсказки при вводе
Как работает
В основе — NER-модель на базе RuBERT, обученная на миллионах примеров российских ФИО.
- Токенизация входной строки
- NER-разметка: определение, где фамилия, имя, отчество
- Нормализация: приведение к стандартному регистру
- Определение пола по отчеству и имени
- Расчёт confidence на основе модели и справочников
Справочники имён (~50K) и фамилий (~100K) используются для валидации результатов.
Возможности
Разбор на компоненты
Фамилия, имя, отчество — отдельные поля
Определение пола
male/female/unknown по отчеству и имени
Исправление регистра
ИВАНОВ → Иванов, иванов → Иванов
Обработка сокращений
С.П. → Сергей Петрович (если контекст позволяет)
Работа с латиницей
Sergey Ivanov → Сергей Иванов
Confidence score
0.0–1.0 для каждого результата
Batch-обработка
До 100 записей в одном запросе
Альтернативы
Несколько вариантов при неоднозначности
Примеры кода
curl
curl -X POST https://api.humandata.ru/v1/clean \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"query": "иванов сергей петрович"}'Python
import requests
response = requests.post(
"https://api.humandata.ru/v1/clean",
headers={"Authorization": "Bearer YOUR_API_KEY"},
json={"query": "иванов сергей петрович"}
)
result = response.json()
print(result["surname"]) # ИвановJavaScript
const response = await fetch("https://api.humandata.ru/v1/clean", {
method: "POST",
headers: {
"Authorization": "Bearer YOUR_API_KEY",
"Content-Type": "application/json"
},
body: JSON.stringify({ query: "иванов сергей петрович" })
});
const result = await response.json();
console.log(result.surname); // ИвановКейсы использования
Частые вопросы
Какая точность разбора?
95%+ на тестовой выборке из реальных российских ФИО. Для стандартных форматов (Фамилия Имя Отчество) точность выше 99%.
Что если ФИО написано в нестандартном порядке?
Модель определяет компоненты по контексту, а не по позиции. «Сергей Иванов» и «Иванов Сергей» дадут одинаковый результат.
Поддерживаются ли иностранные имена?
Основной фокус — российские ФИО. Для иностранных имён confidence будет ниже, но базовый разбор работает.
Как обрабатываются двойные фамилии?
Двойные фамилии через дефис (Петров-Водкин) распознаются корректно. Фамилия возвращается целиком.
Попробуйте бесплатно
1000 запросов в месяц — без оплаты. Достаточно для тестирования и небольших проектов.