В основе нашего алгоритма разбора ФИО лежит использование справочной информации и сотен эвристических правил, подобранных для быстрого и точного решения задачи распознавания и поиска наилучшего соответствия к исходным данным.

Тщательно собранная на протяжении нескольких лет коллекция из 50.000 фамилий и имён народов, населяющих Российскую Федерацию и соседние государства, позволяет осуществлять самый полный поиск ФИО.

Исходные данные могут быть заданы практически в любом формате: записанные слитно или раздельно, в порядке Ф-И-О, И-О-Ф или другом, с указанным полом или без него, в верхнем или нижнем регистре. Допускаются транслитерированные слова и любые знаки пунктуации.

Обработка ФИО включает:

  • получение записи из источника
  • предварительная обработка
  • поиск по справочникам с применением эвристических правил
  • определение фамилии, имени и отчества
  • исправление опечаток в имени и отчестве
  • раскрытие уменьшительных форм в полные формы
  • определение инициалов
  • восстановление или исправление пола
  • составление списка кодов разбора
  • вычисление статуса разбора
  • форматирование результирующего ФИО
  • сохранение полученного разбора

Примеры

Исходные данные фамилия имя отчество иниц. пол статус коды
Александров Сашка А. Александров Александр А. м REL INI NDEF_S EDIT_N NONE_M
Иванов Иван Иваныч Иванов Иван Иванович м REL NDEF_S EDIT_M
Петрова Петр Петрович Петрова Пётр Петрович н/д UNC AMBI_S EDIT_F

Коды разбора

  • Разбор точный OK
  • Отдельные части определены как мусор GRB
  • Отдельные части остались неразобранными NCOV
  • В исходных данных содержатся дубликаты DUP
  • В исходных данных найдены инициалы INI
  • Части имени следуют в порядке, отличном от порядока Ф-И-О NTYP
  • Фамилия не задана отдельным компонентом исходных данных NDEF_F
  • Имя не задано отдельным компонентом исходных данных NDEF_N
  • Отчество не задано отдельным компонентом исходных данных NDEF_M
  • Пол не задан в исходных данных NDEF_S
  • Фамилия была отредактирована по справочнику EDIT_F
  • Имя было отредактировано по справочнику EDIT_N
  • Отчество было отредактировано по справочнику EDIT_M
  • Фамилия была найдена по эвристикам HEUR_F
  • Имя было найдено по эвристикам HEUR_N
  • Отчество было найдено по эвристикам HEUR_M
  • Фамилия не найдена NONE_F
  • Имя не найдено NONE_N
  • Отчество не найдено NONE_M
  • Для фамилии есть несколько вариантов AMBI_F
  • Для имени есть несколько вариантов AMBI_N
  • Для отчества есть несколько вариантов AMBI_M
  • Пол не удалось определить однозначно AMBI_S

Статус

REL
Найден только один вариант разбора или же из нескольких найденных соответствий оставлено одно, значительно превосходящее другие по степени достоверности. Полученный результат разбора считается точным и достоверным.
UNC
Алгоритм разбора не совсем уверен в единственности или правильности полученного результата. Либо исходные данные не поддаются однозначному разбору, либо было найдено несколько одинаково хороших/плохих вариантов, из которых не удалось выбрать только один.