Estoy buscando una biblioteca o base de datos que pueda proporcionar conjeturas sobre si una persona es hombre o mujer según su nombre o apodo. Algo como
john => "M",
mary => "F",
alex => "A", #ambiguous
Estoy buscando algo que admita nombres que no sean nombres en inglés (como japonés, indio, etc.).
Antes de obtener otra respuesta como "vas a ofender a las personas asumiendo su sexo / género", déjame ser claro, mi aplicación no interactúa con nadie. No envía correos electrónicos ni se comunica con nadie de ninguna manera. No hay usuarios para preguntar. En muchos casos, la persona en cuestión está muerta y la única información que tengo es el nombre, la fecha de nacimiento y la fecha de fallecimiento. La razón por la que quiero saber el sexo del individuo es para hacer que la gramática del resultado sea más agradable y ayudar en las posibles búsquedas que puedan surgir más tarde.
fuente
Respuestas:
El género de un nombre es algo que no se puede inferir programáticamente en el caso general. Necesita una base de datos de nombres.
Aquí hay una base de datos de nombres gratuita de la Oficina del Censo de EE . UU .EDITAR : El enlace para el nombre de 2010 está muerto, pero hay enlaces que funcionan y bibliotecas en los comentarios.
fuente
gender.c es un programa C de código abierto que hace un buen trabajo. Viene con datos de 44568 nombres de todo el mundo. Hay buena documentación y una descripción del formato del archivo (básicamente texto plano) por lo que no debería ser difícil leerlo desde su propia aplicación.
Esto es lo que dice el autor:
El programa calcula una probabilidad de que el nombre sea masculino o femenino. Puede hacerlo con el nombre como entrada solo o con el nombre y el país de origen, lo que da resultados significativamente mejores.
Puede descargarlo del sitio web de la revista informática alemana c't 40 000 Namen . El artículo está en alemán, pero no se preocupe, toda la documentación está en inglés. Aquí está el enlace ftp directo 0717-182.zip si no está interesado en el artículo. El archivo zip contiene el código fuente, un ejecutable de Windows, la base de datos y la documentación.
fuente
"Te lo digo, la vida no es fácil para un chico llamado 'Sue'".
... Entonces, ¿por qué hacerlo más difícil? Si necesitas saber el sexo, pregunta ... De lo contrario, no te preocupes.
fuente
Creé una API gratuita que ofrece una suposición probabilística sobre el género según el nombre. En lugar de utilizar cualquiera de los enfoques mencionados anteriormente, utilizo un enorme conjunto de datos de perfiles de redes sociales para proporcionar una suposición probabilística junto con un factor de certeza. También admite el filtrado opcional a través de identificaciones de país o idioma. Está mejorando día a día a medida que se agregan más perfiles al conjunto de datos.
Es de uso gratuito en http://genderize.io
UNA cosa que debe considerar es utilizar una herramienta que tenga en cuenta la demografía, ya que las convenciones de nomenclatura dependerán en gran medida de esto.
Ejemplo
fuente
Aquí hay dos enfoques extraños que pueden ni siquiera funcionar, y probablemente no funcionarían en masa sin violar los términos de una licencia:
Use la API de Facebook (de la que no sé prácticamente nada, puede que ni siquiera sea posible) para realizar dos búsquedas: una para usuarios masculinos de FB con ese nombre y otra para mujeres. Usa los dos números para decidir la probabilidad de género.
Mucho más flexible pero más escalable, use la API de Google y busque el nombre más los pronombres específicos de género, y compare los números. Por ejemplo, hay 592.000.000 de resultados para la búsqueda de "Richard su" (no como una frase), pero sólo 179.000.000 de "Richard ella".
fuente
Dadas las limitaciones establecidas, su mejor opción es reformular lo que sea que esté escribiendo para que sea neutral en cuanto al género, a menos que sepa de qué género quieren que se les llame en cada caso.
Si escribe en inglés , recuerde que el singular "ellos" es gramaticalmente correcto como pronombre de tercera persona del singular de género neutro.
Un buen ejemplo es el título de esta pregunta. Como está actualmente:
Eso sería menos incómodo si estuviera escrito:
fuente
También es una mala práctica suponer que los usuarios deben ser hombres o mujeres. Hay un número pequeño pero significativo de personas "intersexuales", la mayoría de las cuales están harta de no tener una casilla para marcar ...
bignose: interesante en el "singular ellos". No me di cuenta de que tenía una historia tan larga.
fuente
No es un servicio, sino una pequeña aplicación con una base de datos:
http://www.codeproject.com/KB/cpp/genderizer.aspx
Y esta herramienta está en alemán:
http://www.faq-o-matic.net/2011/06/01/zu-einem-vornamen-das-geschlecht-finden/
Y otro en VB:
http://www.vbarchiv.net/tipps/tipp_1925-geschlecht-anhand-des-vornamens-ermitteln.html
Creo que en combinación con algunas listas de "Nombres más usados en 2011", debería poder construir algo decente.
fuente
El paquete de Python SexMachine lo hará por ti. Dado cualquier nombre, devuelve si es masculino, femenino o unisex. Se basa en los datos del programa gender.c de Jorg Michael.
fuente
Lo único que obtendrá al intentar automatizarlo es un grupo de usuarios descontentos. De esos datos del censo:
son todos nombres que funcionan tanto para hombres como para mujeres. Si el nombre de una chica es Robert y todos, incluido tu software, siguen llamándola hombre, estaría bastante enojada.
fuente
Aunque las bases de datos son probablemente la solución más práctica, si quieres divertirte un poco tal vez podrías intentar escribir una red neuronal (o usar una biblioteca de redes neuronales) que tome el nombre y genere una de esas 3 opciones (F, M, A ).
Puede entrenarlo utilizando los conjuntos de datos que existen en las bases de datos sugeridas por otras respuestas, así como con cualquier otro dato que tenga.
Esta solución le permitiría manejar nombres que no se hayan categorizado específicamente anteriormente y también manejar diferentes idiomas. Es posible que también desee pasar el idioma (si lo conoce) como una entrada a la red neuronal.
Sin embargo, no sé si puedo decir que las redes neuronales (o cualquier otro aprendizaje automático) harían un buen trabajo al categorizar.
fuente
Es dependiente de la cultura / región: por ejemplo, Andrea, porque los italianos es solo masculino, porque Suecia es un nombre femenino, mientras que Andreas es para hombres; Shawn es ambiguo en inglés. Si un idioma tiene declinación, como el latín o el ruso, las letras finales cambiarán de acuerdo con las reglas gramaticales,
Otra fuente de ambigüedades son los apellidos idénticos a los nombres personales.
En mi opinión, es imposible de resolver en general.
fuente
Claramente, la idea no funcionará en la mayoría de los idiomas.
Sin embargo, si pudiera decir la nacionalidad de antemano, podría tener más suerte. En la mayoría de los idiomas eslavos (por ejemplo, ruso, polaco, búlgaro) se puede asumir con seguridad que todos los apellidos que terminan con -va -cha -ska (-a en general son femeninos) mientras que -v -ch -shi son masculinos.
De hecho, cualquier apellido tiene forma femenina y masculina según el final. Sin embargo, los mismos nombres utilizados en otros países (por ejemplo, EE. UU.) Pueden usar solo la forma masculina.
Lo mismo podría decirse de los nombres de pila (-a -ya son femeninos) pero no es 100% exacto.
Pero, en general, difícilmente obtendría una biblioteca lo suficientemente precisa.
fuente
No lo he usado, pero IBM tiene una biblioteca de Global Name Analytics (¡por un precio!) Que parece bastante completa.
fuente
El directorio Z (en vettrasoft.com) tiene una función de lenguaje C, funciona así:
está basada en la base de datos, la tabla tiene algo así como más de 10,000 nombres, creo, pero necesita descargar e instalar el directorio z (incluye muchos otros elementos topo como países, puntos de referencia geográficos, aeropuertos, estados, códigos de área, códigos postales, etc. junto con funciones y objetos de c ++ para acceder a los datos). Sin embargo, los nombres están muy orientados al idioma inglés. La tabla es un trabajo en progreso y se actualiza gradualmente.
fuente
Los mapas de nombres y género pueden funcionar, pero en países multiculturales es más como adivinar. Les puedo dar un ejemplo: Marian en polaco es un nombre masculino típico, mientras que el mismo nombre en Gran Bretaña es un nombre femenino. En la era de las personas que inmigran por todo el mundo, no estoy seguro de que esa base de datos sea muy precisa. ¡Buena suerte!
fuente
Algunas culturas tienen nombres unisex, como el mío. ¿Que haces entonces? Creo que la respuesta es simple, no asuma que podría ofender. Solo pregunte si es necesario, de lo contrario neutralidad de género.
fuente
Bueno, ya no. IBM patentó esa idea hace un tiempo.
Entonces, si está buscando cualquier nivel de flexibilidad (algo que no sea una lista de nombres), tendrá que (¡jadeo!) Preguntarle al usuario, o simplemente pagarle a IBM por los derechos :)
En cualquier caso, tal autodetección es molesta para muchas personas que tienen nombres ambiguos en cuanto al género, o incluso simplemente padres malos. No hagamos esto más difícil para ellos.
fuente
No es gratis, pero esta es una buena biblioteca que he usado antes:
http://www.softwarecompany.com/dotnet/netgender.htm
fuente
Es interesante que diga que tiene fecha de nacimiento. Eso podría ayudar. He visto bases de datos de historias de popularidad de nombres.
En la película Splash (1984), era gracioso que el personaje de Darryl Hannah eligiera el nombre "Madison" de un letrero de la calle Madison Avenue, porque obviamente "Madison" no es un nombre de niña.
¡24 años después, Madison es el cuarto nombre más popular para niñas bebés!
Nombre del historial del gobierno. (Vea el triste declive de Mary en los últimos 100 años).
Cuando escribí a la Casa Blanca cuando era niño, Richard Nixon (o, tal vez un secretario) me respondió con algunas fotos del lugar histórico, dirigidas a "Miss Rhett Anderson". "¿Señorita Rhett?" ¡Ni siquiera tiene sentido! ¿Realmente no podemos notar la diferencia entre el Rhett de Clark Gable (con bigote, en Lo que el viento se llevó!) Y Scarlett de Vivian Lee? Nunca lo perdonaré, a pesar de que Neil Young asegura que "incluso Richard Nixon tiene alma".
fuente
Estoy bastante seguro de que ningún servicio de este tipo podría existir con un nivel aceptable de precisión. Estos son los problemas que creo que son insuperables:
fuente
Visite http://genderchecker.com/
fuente
Puedes echar un vistazo a mi proyecto de detección de género de Python https://github.com/muatik/genderizer
Intenta detectar el género de los autores buscando sus nombres y / o texto de muestra (por ejemplo, tweets) de ellos.
Y también es compatible con mongodb, memcached para rendimiento.
fuente
Esto no es realmente un problema de programación, se trata de obtener una tabla de probabilidad.
AFAIK no hay bases de datos públicas en formas destiladas. Puede construir esto a partir de datos del censo o comprar los datos de alguien.
Por ejemplo, se trata de alguien que vende la tabla de probabilidades para Canadá .
fuente
En mi humilde opinión, en general es una mala idea determinar el sexo a partir del nombre de un individuo. Muchos nombres son intersexuales (Dios mío, ¿es esto incluso una palabra? :-), y también pueden ser de un sexo en una cultura y otro en otra.
Algunos ejemplos estúpidos, solo algunos que me vinieron a la mente (de mi parte del mundo, CE)
Vanja - mujer, en los países del este de aquí, en su mayoría hombre
Alex - intersex (abreviatura de Sandra, mujer, y Sandro, hombre)
Robin - en las culturas occidentales, puede ser ambos
En algunas partes del mundo, el sexo de una persona se puede determinar observando cómo termina el nombre. Por ejemplo, Marija, Sandra, Ivana, Petra, Sara, Lucija, Ana, puedes ver que la mayoría de estos nombres femeninos terminan en "ja" o "ra". También hay otros ejemplos.
Aún así, creo que es mejor pedirle sexo al usuario.
fuente
Obtuve esto de la discusión de noticias de hackers sobre esto
fuente
No conozco tal servicio. Sin embargo, quizás pueda encontrar los datos que busca. El gobierno de los Estados Unidos publica datos sobre la prevalencia de nombres y el género de la persona a la que están vinculados. La Administración del Seguro Social tiene una página así , y el censo también puede, pero no me he tomado el tiempo de buscar. Quizás otros gobiernos del mundo hagan cosas similares.
fuente
Sin embargo, no conozco tal servicio.
En algunos países (por ejemplo, alemania) el nombre que se le puede dar a una persona está limitado por la ley; tal vez haya algunas publicaciones sobre ese tema, que podrían cosecharse (pero no conozco ninguna en este momento).
fuente
Lo que haría es hacer un truco que tome el nombre y lo busque en la api de Facebook. Luego, observa los usuarios resultantes y cuenta cuántos de ellos son mujeres o hombres. Luego puede devolver un porcentaje. Ya no es tan insuperable. :)
fuente
Pregúntele a la gente, y si son amables le darán sus 'M's o' F's, y si no lo son, entonces les darán una 'A'.
fuente