Автоматическое определение пола по имени

в 12:04, , рубрики: email, email-рассылка, библиотеки, определение пола

Автоматическое определение пола по имениПродолжая рассказывать о технологиях, которые используются в нашем сервисе email-маркетинга Pechkin-mail.ru, мы просто обязаны упомянуть об автоматическом определении пола подписчика по имени. Еще в 2007 году, разрабатывая сервис sms-рассылок, мы очень хотели реализовать возможность автоматического подставления окончаний в прилагательные “Уважаемый”, “Дорогой” и так далее. Обычно такая подстановка осуществляется на основании дополнительного поля в адресной базе клиента. Однако, как нам кажется, это полный отстой.
На это есть 3 причины:

  1. заставлять подписчика задавать свой пол глупо (чем больше полей в форме, тем ниже вероятность ее заполнения)
  2. определять вручную — долго, а значит дорого
  3. от ошибок человек не застрахован ровно так же, как и машина.

Но мы не лингвисты, поэтому реализовать такой модуль было бы слишком сложно для нас, да и функция “не первой необходимости”. Но недавно, работая над склонениями текстов бесконечных актов, договоров и прочих юридических документов, мы вспомнили об используемом нами уже 2 года сервисе Морфер. Это прекрасный лингвистический сервис, специализирующийся на русском языке и позволяющий склонять по падежам слова, целые предложения, числительные, а также получать текст из цифр. В общем, потрясающая разработка всего одного человека — Сергея Слепова.

Итак, открываем спустя некоторое время его сайт и обнаруживаем — есть удобный и простой модуль для PHP, который позволяет определять род существительного. Т.е. подставляя сочетания ФИО можно получить достаточно точное определение пола (мужской, женский). Супер! Реализация функции не заставила себя долго ждать. Все сделано в виде шаблонов в тексте рассылки.

С помощью хитрой конструкции склонения:

{Уважаем{ый|ая}}/{%ИМЯ% %ФАМИЛИЯ%}

В результате на выходе получится или “Уважаемый” или “Уважаемая”.

Содержимое конструкции может быть произвольным. Поясним на приведенном примере:

  • Уважаем — это “корень” склоняемого слова.
  • ый|ая — это возможные окончания по порядку {мужское|женское|средний род|множественное число}. В полном варианте может выглядеть так: “ый|ая|ое|ые”
  • %ИМЯ% %ФАМИЛИЯ% — это те теги из адресной базы, которые определяют выражение на базе которого будет определен пол. Можно задать просто %ИМЯ%, но тогда есть риск “потерять” часть двузначных имен вроде Саша, Вася, Валя и так далее.

Вот еще пример конструкции:

{Дорог{ой|ая}}/{%ИМЯ% %ФАМИЛИЯ%} %ИМЯ{клиент}%

=> в результате будет “Дорогой Иван” или “Дорогая Маргарита” или «Дорогой клиент» (если имя не задано)

Для тех, кто пользуется нашим онлайн-редактором, все еще проще:
image

Удобные ссылки в панели управления по нажатию на кнопку человечка справа вверху, которые вы видите на скриншоте выше.

Написать подобную обертку действительно не сложно. Производительность модуля поражает и позволяет использовать такое определение пола и автоподстановку шаблона “на лету” в процесс отправки рассылки без потери скорости.

А преимущества для наших клиентов очевидны:

  • Отсутствие необходимости просить подписчика задавать пол и хранить его в дополнительном поле в адресной базе
  • Не надо вручную определять пол ваших подписчиков по их именам
  • Точность определения даже выше ручной обработки (скрипт не устает на второй тысяче имен)

Поэтому, если у вас стоит задача “живой” работы с текстами, склонением различных слов и словосочетаний, работы с числительными — то библиотека Сергея вам в помощь! Огромное ему за нее спасибо!

P.S. У нашего сервиса эксклюзив на использование данной библиотеки в России. Будем рады, если данная функция станет действительно нужной и полезной для наших клиентов.

Автор: dsosnin

Источник


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js