@tatarrr95

Как распознать Имя и Отчество из текста?

Делаю голосового ассистента, который просит пользователя
Назовите свое имя и отчество

Вроде казалось бы, легко обработать, но клиенты часто к ответу добавляют еще свою фамилию или фразу, например
Иванов Иван Иванович
Меня зовут Иванов Иван Иванович
или называют имя неофициально, например
Иванов Ваня


Мне надо понять, что во фразе есть имя и есть отчество и вытащить их соответственно. Речь я соответственно уже перевожу в текст и надо придумать как работать именно с текстом. Думал сделать через dialogflow , но как я понял у него плохо с русскими именами, а отчество он вообще не умеет понимать. Для регулярных выражений тяжело найти словарь имен с их разговорными версиями.
  • Вопрос задан
  • 1341 просмотр
Пригласить эксперта
Ответы на вопрос 6
@d-stream
Готовые решения - не подаю, но...
100% надежно - никак. Особенно с учетом языковых/культурных нюансов когда нет отчества, фамилия составная, отчество состоит из цепочки родовой линии и т.п.
Ответ написан
Комментировать
samodum
@samodum
Какой вопрос - такой и ответ
У меня есть такой сервис, но он для внутреннего пользования.
Допилю внешнее API, тогда поделюсь. А пока не могу.
Присылайте тестовые ФИО в комменты сюда, покажу ответы, буду отлаживать.

5d546026a0c7c215129656.png
Ответ написан
Комментировать
Adamos
@Adamos
Можно конкретно для вашего кейса искать закономерности вроде того, что отчество, если оно есть, никто не произнесет иначе, как после имени. И у русских оно обычно определяется по окончанию -вич/-вна. Ну, и по базе имен определяете, что может быть именем. А если не получилось - так, может, просто переспросить? У вас же интерактив ;)

А вне русских традиций логика имени-отчества вообще неприменима.
Ричард Мэтью Столлман в жизни не признается вам, что он вообще-то Данилыч.
А уж каким тазиком накроет ваши потуги любая хорватская сборная...
Ответ написан
Комментировать
@Kirill-Gorelov
С ума с IT
Или можно сделать так, как вариант.

Собираем по сайтам список всех имен и фамилий, которые только найдешь, кладешь их в БД.

Потом берешь свой текст и ищешь слова из текста к своей БД. Если нашел, значит это имя или фамилия. На счет отчеств, можно так же, но довольно сложно мне кажется.
Есть проблема, что в твоем тексте будет много слов и запросов к БД будет очень много, но тут тоже можно решить эту проблему.
Ответ написан
Комментировать
b0nn1e
@b0nn1e
Alcohol & Ruby on Rails
Открываем вики
Смотрим суфиксы отчества.
Делим все выражение на слова.
Слова которые заканчиваются на нужные суфиксы - отчество.
Слово которые перед - имя.
на 98% рабочий вариант)
Ответ написан
Комментировать
tsklab
@tsklab
Здесь отвечаю на вопросы.
Не возможно. Есть множество фамилий совпадающих с именами. Например, таблица музыкантов (30000) Performer_1.FirstName = Performer_2.LastName:
James	James	4200
Martin	Martin	3800
John	John	3136
Paul	Paul	2442
Thomas	Thomas	2340
Scott	Scott	2183
David	David	1918
Michael	Michael	1712
Lee	Lee	1400
George	George	1284
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы