Я ищу библиотеку или базу данных, которые могут дать предположения о том, является ли человек мужчиной или женщиной, на основе его или ее имени или прозвища. Что-то типа
john => "M",
mary => "F",
alex => "A", #ambiguous
Я ищу что-то, что поддерживает имена, отличные от английских (например, японские, индийские и т. Д.).
Прежде чем я получу еще один ответ вроде «вы собираетесь обидеть людей, предполагая их пол / пол», позвольте мне пояснить, мое приложение ни с кем не взаимодействует. Он ни в коем случае не отправляет электронные письма и не связывается с кем-либо. Нет пользователей, которых можно спросить. Во многих случаях человек, о котором идет речь, мертв, и единственная информация, которая у меня есть, - это имя, дата рождения и дата смерти. Причина, по которой я хочу знать пол человека, состоит в том, чтобы сделать грамматику вывода более приятной и помочь в возможных поисках, которые могут появиться позже.
источник
Ответы:
Пол имени - это то, что в общем случае нельзя вывести программно. Вам нужна база данных имен.
Вот бесплатная база данных имен от Бюро переписи населения США .РЕДАКТИРОВАТЬ : ссылка на имя 2010 мертва, но в комментариях есть рабочие ссылки и библиотеки.
источник
gender.c - это программа C с открытым исходным кодом , которая хорошо справляется со своей задачей. Он содержит данные о 44568 именах со всего мира. Имеется хорошая документация и описание формата файла (в основном простой текст), поэтому его несложно будет прочитать из вашего собственного приложения.
Вот что говорит автор:
Программа рассчитывает вероятность того, что имя мужское или женское. Это может быть сделано только с именем в качестве ввода или с именем и страной происхождения, что дает значительно лучшие результаты.
Вы можете скачать его на сайте немецкого компьютерного журнала c't 40 000 Namen . Статья на немецком языке, но не волнуйтесь, вся документация на английском языке. Вот прямая ftp-ссылка 0717-182.zip, если статья вам неинтересна. ZIP-файл содержит исходный код, исполняемый файл Windows, базу данных и документацию.
источник
«Я говорю тебе, жизнь парню по имени« Сью »нелегка».
... Так зачем усложнять? Если вам нужно знать пол, просто спросите ... В противном случае не беспокойтесь об этом.
источник
Я создал бесплатный API, который дает вероятностное предположение о поле на основе имени. Вместо того, чтобы использовать любой из вышеупомянутых подходов, я вместо этого использую огромный набор данных профилей из социальных сетей, чтобы предоставить вероятностное предположение вместе с фактором уверенности. Он также поддерживает дополнительную фильтрацию по идентификаторам страны или языка. С каждым днем становится лучше, поскольку в набор данных добавляется больше профилей.
Бесплатное использование на http://genderize.io
ОДНА вещь, которую вы должны рассмотреть, - это использовать инструмент, который учитывает демографические данные, так как соглашения об именах будут в значительной степени зависеть от этого.
пример
источник
Вот два необычных подхода, которые могут даже не работать и, скорее всего, не будут работать в массовом порядке без нарушения условий лицензии:
Используйте API Facebook (о котором я практически ничего не знаю, возможно, это даже невозможно), чтобы выполнить два поиска: один для мужчин-пользователей FB с этим именем, а второй - для женщин. Используйте два числа, чтобы определить вероятность пола.
Гораздо более свободный, но более масштабируемый, используйте API Google и найдите имя плюс местоимения, зависящие от пола, и сравните числа. Например, при поиске по запросу «Ричард его» (не как фраза) было получено 592 000 000 результатов, а по запросу «Ричард его» - только 179 000 000.
источник
Учитывая ваши заявленные ограничения, ваш лучший вариант - перефразировать все, что вы пишете, так, чтобы оно было гендерно нейтральным, если вы не знаете, какой пол они хотят называть в каждом случае.
Если вы пишете на английском , помните, что единственное число «они» грамматически нормально как гендерно-нейтральное местоимение третьего лица единственного числа.
Хороший пример - название этого вопроса. В настоящее время:
Было бы менее неудобно, если бы написали:
источник
Также плохая практика полагать, что пользователи должны быть мужчинами или женщинами. Есть небольшое, но значительное количество "интерсекс" людей, большинство из которых искренне устали от того, что у них нет
квадрата для отметки ... bignose: интересны с точки зрения "исключительности". Я не понимал, что у него такая долгая история.
источник
Это не сервис, а небольшое приложение с базой данных:
http://www.codeproject.com/KB/cpp/genderizer.aspx
И этот инструмент на немецком языке:
http://www.faq-o-matic.net/2011/06/01/zu-einem-vornamen-das-geschlecht-finden/
И еще один в VB:
http://www.vbarchiv.net/tipps/tipp_1925-geschlecht-anhand-des-vornamens-ermitteln.html
Я думаю, что в сочетании с некоторыми списками «Наиболее часто используемые имена в 2011 году» вы сможете создать что-то приличное.
источник
Пакет Python SexMachine сделает это за вас. При любом имени возвращается мужское, женское или унисекс-имя. Он основан на данных из программы Gender.c Йорга Майкла.
источник
Единственное, что вы получите, пытаясь автоматизировать, - это кучка недовольных пользователей. Из данных переписи:
все имена подходят как для мужчин, так и для женщин. Если девушку зовут Роберт, и все, включая вашу программу, продолжают называть ее мужчиной, она будет в ярости.
источник
Хотя базы данных, вероятно, являются наиболее практичным решением, если вы хотите немного повеселиться, возможно, вы могли бы попробовать написать нейронную сеть (или использовать библиотеку нейронной сети), которая принимает имя и выводит один из этих 3 вариантов (F, M, A ).
Вы можете обучить его, используя наборы данных, которые существуют в базах данных, предложенных другими ответами, а также с любыми другими данными, которые у вас есть.
Это решение позволит вам обрабатывать имена, ранее не классифицированные специально, а также работать с разными языками. Возможно, вы захотите передать язык (если вы его знаете) как вход в нейронную сеть.
Я не знаю, могу ли я сказать, что нейронные сети (или любое другое машинное обучение) хорошо справятся с категоризацией.
источник
Это зависит от культуры / региона: возьмите Андреа, итальянцы - это только мужское имя, Швеция - женское имя, а Андреас - мужское; Шон неоднозначно говорит по-английски. Если у языка есть склонение, например, латинский или русский, последние буквы изменятся в соответствии с грамматическими правилами,
Еще один источник неоднозначности - фамилии, идентичные личным именам.
На мой взгляд, решить вообще невозможно.
источник
Идея явно не будет работать на большинстве языков.
Однако, если бы вы могли сказать национальность заранее, вам повезло больше. В большинстве славянских языков (например, русском, польском, болгарском) можно смело предположить, что все фамилии, оканчивающиеся на -va -cha -ska (-a в основном женские), а -v -ch -shi - мужские.
На самом деле, любая фамилия имеет женскую и мужскую форму в зависимости от окончания. Однако имена, используемые в других странах (например, в США), могут использовать только мужской род.
То же самое можно сказать и о именах (-a -ya женского рода), но это не на 100% верно.
Но в целом вы вряд ли получите достаточно точную библиотеку.
источник
Я не использовал ее, но у IBM есть библиотека Global Name Analytics (за определенную цену!), Которая кажется довольно всеобъемлющей.
источник
Каталог Z (на vettrasoft.com) имеет функцию языка C, работает примерно так:
он управляется базой данных, таблица имеет что-то вроде 10000+ имен, я думаю, но вам нужно загрузить и установить каталог z (включает в себя множество других топовых элементов, таких как страны, географические достопримечательности, аэропорты, штаты, коды городов, почтовые индексы и т. вместе с функциями и объектами C ++ для доступа к данным). Однако имена очень англоязычные. Таблица находится в стадии разработки и постепенно обновляется.
источник
Карты имени и пола могут работать, но в мультикультурных странах это больше похоже на догадки. Я могу привести вам один пример: Мариан по-польски - типичное мужское имя, тогда как то же имя в Великобритании - женское. В эпоху иммиграции людей со всего мира я не уверен, что такая база данных будет очень точной. Удачи!
источник
Некоторые культуры носят унисекс-имена - например, моя. Что вы делаете тогда? Я думаю, что ответ ясен и прост - не думайте, что вы можете оскорбить. Просто спросите, нужно ли это, иначе гендерная нейтральность.
источник
Ну, больше нет. IBM запатентовала эту идею некоторое время назад.
Так что, если вы ищете какой-либо уровень гибкости (что-то кроме списка имен), вам придется либо (ахать!) Спросить пользователя, либо просто заплатить IBM за права :)
В любом случае такое автоопределение раздражает многих людей с неоднозначными именами или даже просто родителей. Давайте не будем усложнять им задачу.
источник
Это не бесплатно, но это хорошая библиотека, которую я использовал раньше:
http://www.softwarecompany.com/dotnet/netgender.htm
источник
Интересно, что вы говорите, что у вас есть дата рождения. Это могло помочь. Я видел базы данных историй популярности имен.
В фильме «Всплеск» (1984) было забавно, что персонаж Дэррила Ханны выбрал имя «Мэдисон» по указателю на Мэдисон-авеню, потому что, очевидно, «Мэдисон» - не девичье имя.
24 года спустя Мэдисон - четвертое по популярности имя для девочек!
История названий от правительства. (Посмотрите на печальный упадок Мэри за последние 100 лет.)
Когда я писал в Белый дом в детстве, Ричард Никсон (или, возможно, секретарь) ответил мне несколькими фотографиями исторического места, адресованными «мисс Ретт Андерсон». "Мисс Ретт?" Это даже не имеет смысла! Можем ли мы ДЕЙСТВИТЕЛЬНО не отличить Ретта Кларка Гейбла (с усами, в «Унесенных ветром»!) И Скарлетт Вивиан Ли? Я никогда ему не прощу, несмотря на заверения Нила Янга, что «даже у Ричарда Никсона есть душа».
источник
Я почти уверен, что такой сервис не может существовать с приемлемым уровнем точности. Вот проблемы, которые я считаю непреодолимыми:
источник
Посетите http://genderchecker.com/
источник
Вы можете взглянуть на мой проект определения пола на Python https://github.com/muatik/genderizer
Он пытается определить пол авторов по их именам и / или образцу текста (например, твитов).
И он также поддерживает mongodb, memcached для повышения производительности.
источник
На самом деле это не проблема программирования - все сводится к созданию таблицы вероятностей.
AFAIK нет общедоступных баз данных в дистиллированной форме. Вы можете построить это на основе данных переписи или купить данные у кого-нибудь.
Например, это тот, кто продает таблицу вероятностей для Канады .
источник
ИМХО, вообще плохая идея определять пол по имени человека. Многие имена являются интерсексуальными (доброе дело, это хоть слово ?? :-), а также они могут быть одного пола в одной культуре и другого пола в другой.
Несколько глупых примеров, всего несколько, которые пришли в голову (из моей части мира, CE)
Ваня - женщина, в восточных странах отсюда, в основном мужчина,
Алекс - интерсекс (сокращение от Сандра, женщина, и Сандро, мужчина)
Робин - в западных культурах может быть обоими
В некоторых частях света пол человека можно определить, посмотрев, как заканчивается его имя. Например, Мария, Сандра, Ивана, Петра, Сара, Люция, Ана - вы можете видеть, что большинство этих женских имен оканчиваются на «ja» или «ra». Есть и другие примеры.
Тем не менее, я думаю, что лучше просто попросить пользователя о сексе.
источник
Получил это из обсуждения хакерских новостей об этом
источник
Я не знаю такой услуги. Однако, возможно, вы сможете найти данные, которые ищете. Правительство США публикует данные о распространенности имен и поле человека, к которому они прикреплены. У Управления социального обеспечения есть такая страница , и перепись тоже может, но я не нашел времени, чтобы посмотреть. Возможно, правительства других стран делают аналогичные вещи.
источник
Однако я не знаю такой службы ..
В некоторых странах (например, в Германии) имя, которое может быть дано человеку, ограничено законом - возможно, есть какие-то публикации по этому поводу, которые можно было бы собрать (но я не знаю ни одного в данный момент).
источник
Я бы сделал хак, который берет имя и ищет его по API facebook. Затем смотрит на получившихся пользователей и подсчитывает, сколько из них женщин или мужчин. Затем вы можете вернуть процент. Уже не так непреодолимо. :)
источник
Просто спросите людей, и если они вежливы, они поставят вам свои «М» или «П», а если нет, то поставьте им «пятерку».
источник