Найдите пол по имени

Asked
Viewd6827

8

Недавно я столкнулся с странным, но интересным вопросом.Вопросы следующие: Необходимо написать программу, которая может выдавать пол в качестве вывода на основе имени. Пример: INPUT -> John Майкл Бритни ВЫХОД -> мужчина мужской женский

Итак, вот что я ожидал.Я много пытался решить, но действительно не смог его взломать. Я буду очень благодарен этому сайту за предоставленную мне возможность поделиться этим вопросом.

На самом деле это задается на соревнованиях по программированию как задача флаера, поэтому я подумал, что это можно запрограммировать.

  • Где вы нашли этот вопрос.Вы можете сослаться на сайт?Мой вариант - сохранить имя в базе данных и сопоставить их.

    sathish06 ноября 2009, 05:20
  • похоже на http://stackoverflow.com/questions/818203/does-anyone-know-of-a-good-library-for-mapping-a-persons-name-to-his-or-her-sex

    Omnipresent06 ноября 2009, 05:23
  • В наши дни парни меняют пол, не меняя имени.Так что это несколько сложно.: D

    Rakesh Juyal06 ноября 2009, 05:21
  • http://www.genderchecker.com/

    Xinus06 ноября 2009, 05:25

8 ответов

1

Посетите WolframAlpha.com.У них есть API веб-сервисов, но это немного дорого ...

http://products.wolframalpha.com/api/pricing.html

0

Обычно имена, заканчивающиеся на a, e, i, o, u, являются женскими именами.Они могут быть неточными по сравнению со статистикой использования API, но их легко реализовать.

2

Статистический подход работает очень хорошо, в зависимости от страны точность составляет 95% или 99% + за некоторыми исключениями (китайские имена, корейские имена).

Познакомьтесь с API GendRE http://namsor.com/api

Он автоматически распознает культуру, стоящую за именем, чтобы применить соответствующий словарь (например, Андреа Россини - мужчина, Андреа Паркер - женщина и т. д.)

9

Вы не можете сделать это алгоритмически: вам нужна база данных, чтобы делать это статистически. Этот вопрос SO указывает на множество таких доступных ресурсов.Поймите, у вас будет много, МНОГО заблуждений - например, корейские Ким (мужчины) или североевропейцы (женщины) могут очень рассердиться на такие вещи ;-).

  • +1 - попытка угадать пол по имени - плохая идея, потому что это может вызвать оскорбление, если вы ошиблись.

    Stephen C06 ноября 2009, 05:37
  • В субботу вечером в прямом эфире раньше был беглый набросок о людях, пытающихся угадать пол человека по имени «Пэт».Есть много других имен, которые можно применить к любому полу, например «Лесли» или «Джеки».

    Bob Murphy06 ноября 2009, 05:45
  • Даже если вы не можете быть на 100% точными, он может быть полезен для других вещей, таких как аналитика, где вам не обязательно быть полностью правым.

    Что касается таких имен, как Ким, которые во многом полагаются на демографические данные, используйте инструмент, который учитывает это: api.genderize.io?name=kim и api.genderize.io?name=kim&country_id=dk

    Stromgren07 апреля 2014, 13:39
  • Да, и даже для имен, которые статистически хорошо связаны с полом, всегда будет достаточно исключений, чтобы вызвать проблемы - дочь Дунсбери по имени «Алекс», у меня есть дорогой (мужчина) друг, его (ирландская) мать по имени «Шеннон»»,« Андреа »- это в основном женщина в некоторых культурах (например, в Германии), но в Италии - преимущественно мужчина и т. Д.

    Alex Martelli06 ноября 2009, 06:22
  • Не забывайте о мужчинах из Северной Европы.ahem

    Pekka14 апреля 2010, 06:46
6

Я тоже тратил время на решение этой проблемы.Мой первый подход заключался в использовании списков одобренных имен, у нас есть такие в Дании, откуда я родом, но я быстро понял, что есть только в нескольких странах.Кроме того, я получал отзывы о том, что вероятностное предположение будет намного более функциональным, а также что нужно иметь возможность фильтровать по идентификатору страны или языка.Затем я перестроил, используя вместо этого наборы данных пользователей из социальных сетей, что на самом деле работает довольно хорошо.

Вы можете проверить это на http://genderize.io

Простой пример:

 http://api.genderize.io?name=kim
{"name":"kim","gender":"female","probability":"0.91","count":687}

http://api.genderize.io?name=kim&country_id=dk
{"name":"kim","gender":"male","probability":"1.00","count":17,"country_id":"dk"}
 
2

Как насчет взаимодействия человека с компьютером в качестве третьей подсказки?

У вас может быть карта кликов, например http://css-tricks.com/ tracking-clicks-building-a-clickmap-with-php-and-jquery /

На основании того, где нажимает пользователь, вы можете определить разумную статистику соотношения мужчин и женщин.Это будет использоваться, когда в базе данных есть неизвестное

Вот Википедия по теме "Gender_HCI":

"Большие дисплеи помогли уменьшить гендерный разрыв в навигации по виртуальным среды.С меньшими дисплеями кобели были лучше, чем женские.С большими дисплеями улучшились показатели самок и производительность мужчин не была отрицательной затронуты. "

Так что сделайте небольшой прямоугольник и укажите время, необходимое для его нажатия....?

  • действительно креативное и нестандартное мышление!

    Ali Saeed23 февраля 2017, 17:43
3

Не сдавайтесь.

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

Дело в том, что вам нужна третья переменная для корреляции.Что-то вроде страны происхождения, этнической принадлежности и т. Д. Еще больше сузит ваши шансы.Вам действительно нужна третья "подсказка" ...

1

Я делал это раньше - это легко и хорошо работает в 90% случаев, когда применяется к правильному сценарию.

Вам нужно откуда-то получить базу данных имен и обычного пола.В таком случае поиск в базе данных становится тривиальным.

Некоторые имена (например, Энди) обычно связаны с любым полом.Значит, вам понадобится как минимум три гендерных значения - мужской / женский / неизвестный.

  • Но я не думаю, что возможно охватить все имена в мире.Логично, что другого пути нет.

    Ramesh06 ноября 2009, 05:21