Страницы

Поиск по вопросам

вторник, 28 января 2020 г.

Определение пола

#текст


Хочу как в ВК сделать автоматическое определение пола, но не могу понять как это
реализовать. Допустим, если ставить женский пол по окончанию имени(а и я), но есть
ведь имена: Любовь и другие + есть и мужские имена: Никита, Илья. Подскажите, пожалуйста,
что использовать для реализации идеи? 
    


Ответы

Ответ 1



Проще спросить. Не зря же все сайты спрашивают пол, вместо определения. Как ни крути, а универсального алгоритма нет. Можно, конечно, попробовать словарём, исключениями, анализировать сообщения на предмет определения пола автора (последнее, кстати, точно будет работать, но реализовать сложно), но везде есть вероятность ошибки. Плюс - некоторые вообще муть пишут типа ♥ ღКсюня♥ ღ ღВивенскаяღ (реальный ник выдрал из ВК), по ней точно ничего не определишь.

Ответ 2



Тривиальными средствами вроде проверки окончаний вы эту задачу вряд ли решите по вполне понятным причинам. Возможно, имеет смысл сделать словарь возможных имен - если речь идет о более-менее традиционных русских именах, то это может помочь - как правило в русском языке мужские и женские имена не пересекаются - возможно, я что-то забыл, но я не помню в русском языке ни одного имени, звучащего одинаково для мужчин и для женщин(за исключением уменьшительных форм типа Саша или Женя). С другой стороны, это тоже не панацея. Во-первых, подобный словарь должен быть достаточно большим (причем 95% его содержимого не будет использоваться вообще, либо будет, но редко. Скажем, вряд ли среди ваших пользователей будет много Никандров или Ратиборов) Во-вторых, если в вашей системе возможны уменьшительные имена, то довольно сложно сказать, является ли условный(ая) Саша мальчиком или девочкой. В-третьих, с иностранными именами тоже далеко не все гладко - скажем, в английском не редкость, что одно и то же имя может принадлежать мужчине или женщине. А уж если брать восточные имена (китайские например или хотя бы армянские), то там и вовсе черт ногу сломит. В-четвертых, ничто не мешает пользователю вместо имени ввести вообще что попало, или какой-то ник. Тут в некоторых случаях даже человеческий мозг будет бессилен. Хотя, с другой стороны, если в вашей системе не предполагается наличие пользователей из Кореи, и в сумеете их убедить писать исключительно имена, а не ники, то с более-менее успешно это может сработать (но все же не стоит забывать что и в этом случае никто ничего не гарантирует) Можно также попробовать анализировать не тоьлко имя, но и фамилию - женские фамилии часто заканчиваются на "а", но тут никакие словари не помогут - если имена еще как-то можно перечислить, то фамилии могут быть вообще какие угодно. Кроме того, есть куча несклоняемых фамилий типа Дуся Гвоздь или какой-нибудь Петя Иванчук, но все же анализ имени и фамилии одновременно может отсеять некоторые непонятности. А вот с отчествами все значительно проще - в подавляющем большинстве случаев мужское отчество заканчивается на "вич", а женское на "вна". С другой стороны, отчества может и не быть вовсе, если человек иностранец, либо его не всегда указывают при регистрации. А мораль этой истории такова: для определения пола используйте галки "М" и "Ж"

Ответ 3



Можно сделать несколько критериев, например как вы уже сказали по окончанию (на ь мужских имен мало, но есть - Олесь), плюс еще добавить словарь исключений (типа Никита, Илья). Можно просто словарь (русских имен не так уж много). Если иностранные имена, то тут все сложнее, так как иногда и человек по имени определить пол не сможет, не говоря уж об алгоритме.

Комментариев нет:

Отправить комментарий