Сравнение онлайн-сервисов склонения имен
Появилась потребность определять пол клиентов в базе и автоматически склонять ФИО для интернет-магазина. Специфика магазина — подарки и доставка цветов с поздравлениями.
Магазин принимает информацию о пользователях через форму быстрого заказа. Есть и обычная корзина, но многие пользуются именно быстрым заказом — там можно заполнить только телефон и сразу же перейти к оплате. Клиенты пользуются возможностью и часто вообще не указывают имя. Делать поля для ФИО обязательными бессмысленно — вписывать мусор вместо данных не запретить. Также как не запретить неправильно писать собственное имя.
Между тем правильное обращение к клиенту необходимо, иначе возможны казусы:
Сейчас сотрудники магазина уточняют данные доисторическим способом: клиент делает заказ, приходит СМС с подтверждением и способом доставки. А затем звонит оператор, чтобы подтвердить заказ и заодно уточнить пол и ФИО, после чего вносит данные в CRM.
Но вообще на дворе 2016 год, и это не круто:
- операторы — всего лишь человеки и периодически фейлят. Если имя изначально не указано, легко путают цветы для Вали с цветами для Вари;
- в телефонном разговоре сотрудники переспрашивают имена по буквам, чем неимоверно бесят людей;
- для поздравлений имена в открытках и подписях к цветам иногда склоняются, и это не всегда тривиальная задача (пример — Артема Лученка написали как «Лученока»).
Ручной метод — долго, дорого и не как у Тёмы Лебедева. В идеале хочется все автоматизировать и избавиться от человеческого фактора. И задалбывать человека звонками только по пограничным случаям, где точно не разберется даже человек (нейронная сеть может нарисовать картину лучше Ван Гога, но никогда не угадает пол Саши Пархоменко).
Что хотелось:
- определить пол пользователей в базе для сегментации — чтобы готовить рекламные предложения по подаркам на гендерные праздники для клиентов;
- проверить правильность написания имен;
- автоматически склонять имена для умной генерации открыток, поздравлений, подписей к доставленным цветам;
- качественно, бесплатно и вчера недорого и без ошибок.
Поисследовав предметную область, я пошел изучать Хабр и интернеты в поисках вменяемого готового решения. Чтобы и пол определило, и просклоняло, и объединило в себе 2 этих фишки (в идеале). Возможно, мой обзор кому-то будет полезен.
К исследованию решил подойти обстоятельно и взял выборку от простых до сложных имен. Вооружился грамотой.ру и своей фантазией.
В результате получился простой тест на имена:
- простые русские ФИО в разных комбинациях (Маша Цветкова, Антон Сергеевич Журавлев);
- пограничные случаи, где пол неочевиден даже для человека (Валя Дрозденко);
- двойные фамилии (Демут-Малиновский);
- несклоняемые женские имена и фамилии (Раисат Магомедова, Анна Друзь);
- женские имена на -ль (Адель, Айгуль). В них есть подвох — нет единого правила, как склонять такие имена;
- классное мужское имя Жалиль, которое внезапно встретилось в базе несколько раз;
- русские нестандартные: Ремесло.
А вот нетривиальные случаи, про которые мало кто знает:
- склонение фамилии без потери гласной: Иван Плетень — Ивана Плетеня;
- кейс с потерей гласной в фамилиях на -онок/-енок: Василий Лученок — Василия Лученка;
- отчества с оглы/кызы (Магомедова Гюльчатай Абдурахман кызы).
Всего нашел 2 библиотеки и 3 сервиса, которые вызвали доверие.
Библиотека NameCaseLib
Плюсы
- работает с русскими и украинскими именами.
Минусы
Исходя из описания API, определение пола — это не основной функционал, а добавочная фишка. Сервису можно переслать параметром пол пользователя, и это влияет на дальнейшую логику работы с именами.
Библиотека:
- не знает, кто такой Жалиль;
- пограничный кейс «Саша Пархоменко» уверенно определила как женщину;
- «Раисат» определила как мужчину;
- сложный случай «Иван Плетень» просклоняла как «Ивана Плетеого».
- «Бонч-Бруевич» в украинском — имя, а в русском почему-то считается отчеством. Криминал, честно говоря.
А судя по тому, что на сайте стоит 2011 год, поддержку библиотеки давно прекратили.
Библиотека Петрович
Плюсы:
- реализована на нескольких ЯП, в том числе на JS и Ruby;
- неплохо склоняет простые кейсы, если им проставить пол.
Минусы:
- пол не определяет;
- склоняет женские имена как мужские (Айгуль — Айгуля);
- не смогла прожевать сложное ФИО «Алиев Руслан Гейдар оглы». Приставку к отчеству библиотека молчаливо обрезала;
- некорректно просклоняла двойные фамилии (например, Гресь-Янковский → Гресю-Янковскому).
Не понравилось.
Gender.Wim.Agency
«валера; female». Nuff said.
AHunter.ru
Плюсы:
- есть REST API;
- не только определяет и склоняет имя, но и работает с адресами;
- пытается определять этнос по фамилии, и весьма неплохо;
- подсказывает варианты прямо в форме ввода: одной строкой и несколько полей (отдельно фамилия, имя, отчество);
- хорошо работает определение пола и склонение на простых и средних кейсах. Дружит с Жалилем и Юдифью.
Минусы:
- Сашу Пархоменко посчитал мужчиной, та же ситуация для всех пограничных кейсов. То есть все сомнительные случаи станут мужчинами, и это неправильно. Нельзя однозначно считать пограничный случай мужчиной или женщиной, нужно предупредить человека о том, что робот запутался и страдает;
- мужская интерпретация Саши Пархоменко считается славянским именем, а женская — индоевропейским. Заставило задуматься о точности алгоритмов;
- в форме подсказок попадаются несочетаемые сочетания: «Алиса Васильев», «Николай Владимирова». Неизвестно, чего ждать в дальнейшем, раз проскакивают такие откровенные опечатки в простых случаях;
- в автокомплите по отдельным полям данные не всегда сочетаются по полу. По закону Мёрфи пользователь обязательно ошибется там, где можно ошибиться.
Саша Пархоменко напрягла, решил поискать еще варианты.
DaData.ru
Плюсы:
- есть API с нормальной документацией и примерами;
- отлично склоняет имена, справилась почти со всеми случаями;
- если пол не определен, API уведомляет об этом отдельным значением. Саша Пархоменко наконец-то не мужчина и не женщина;
- на форму заказа можно поставить JS-плагин и определять пол для всех новых клиентов.
Минусы:
- если сервис не знает фамилию — не склоняет, просто определяет пол;
- автокомплит ФИО бесплатный, но обработка через АПИ — платная.
Морфер
Плюсы:
- склоняет все, что можно склонить: имена, города, словосочетания, числительные, даты;
- отдает данные через веб-сервис, есть отдельные библиотеки, модули для Excel, интеграция с Mailchimp;
- склоняет действительно круто и простые, и сложные, и суперсложные кейсы. Не путается в -оглы/-кызы, в двойных фамилиях, в библейских именах;
- бесплатной функциональности хватает для нормального склонения (1000 запросов в сутки).
Минусы:
- не умеет определять пол в пограничных случаях (Саша Пархоменко по умолчанию считается мужчиной);
- не указана стоимость библиотеки, возникает ощущение, что с меня хотят заработать побольше бабла.
Особенность — не склоняет женские имена на -ль (Айгуль). Это не ошибка, один из возможных вариантов (по правилам такие имена можно либо склонять, либо нет).
Сервис меня очень впечатлил в плане склонений. Легко справился с простыми и сложными случаями.
Но Саша Пархоменко огорчен (а).
Самыми достойными сервисами показались Морфер и DaData. На склонении показали себя почти одинаково за исключением имен вроде Айгуль — видимо, у создателей разная философия. Мне показалось, что Морфер — эдакий робот Бендер, гнет все что гнется и делает это очень круто. Дадата — что-то вроде Валли, умеет меньше, но делает более заботливо. С удовольствием рекомендую оба сервиса.
Какой сервис я выбрал — не скажу. Считаю, что для каждой задачи свой инструмент, и надеюсь, что обзор поможет понять, кому что подходит.
Если кто-то знает хорошие аналогичные сервисы и гуглит лучше меня, буду очень рад комментариям и советам.
Комментарии (1)
2 августа 2016 в 14:02
0↑
↓
С Владиславом хорошо : –)