90 votes

Quelqu'un sait-il d’une bonne bibliothèque pour cartographier une personne ' nom s à son sexe ?

Je suis à la recherche d'une bibliothèque ou une base de données qui peuvent fournir des estimations au sujet de savoir si une personne est un mâle ou une femelle en se basant sur son nom ou son surnom. Quelque chose comme

john => "M",
mary => "F",
alex => "A", #ambiguous

Je suis à la recherche de quelque chose qui prend en charge les noms d'autres que l'anglais des noms (tels que le Japonais, Indien, etc.).

Avant je obtenir une autre réponse du genre "vous allez à offenser les gens en supposant que leur sexe/genre" laissez-moi être clair, mon application ne pas interagir avec n'importe qui. Il n'envoie pas d'e-mails ou de contacter quelqu'un en tout cas. Il n'y a pas les utilisateurs à demander. Dans de nombreux cas, la personne en question est morte, et la seule information que j'ai est nom, date de naissance et date de décès. La raison pour laquelle je veux savoir le sexe de l'individu est de faire de la grammaire de la sortie plus agréable et à l'aide dans les recherches qui pourraient venir en dernier.

70voto

Ludwig Weinzierl Points 6461

sexe.c est un open source C du programme qui fait un bon travail. Il est livré avec des données pour 44568 d'abord les noms de tous les coins du monde. Il y a une bonne documentation et une description du format de fichier (essentiellement en texte brut) donc, il ne devrait pas être difficile à lire à partir de votre propre application.

Voici ce que l'auteur dit:

Quelques mots sur la qualité des données

Le dictionnaire des prénoms a été préparé avec le plus grand soin. Par exemple, le turc, Indien et le coréen noms dans ce dictionnaire ont tous été classés indépendamment par plusieurs locuteurs natifs. J'ai aussi pris un soin particulier à la liste que les noms qui peuvent actuellement être trouvé.

La leçon à tirer de cela?

Toute modification doit être faite avec beaucoup de prudence (et ils doivent également respecter le tri requis par l'algorithme de recherche). Par exemple, sachant que "Sascha" est un nom de garçon en Allemagne, l'auteur n'a jamais supposé l'anglais "Sasha" être une fille du nom. Sachant que "Jan" est un nom de garçon en Allemagne, je n'ai jamais supposé qu'il soit aussi un anglais forme abrégée de "Janet". Un autre point est le nom "Ares". C'est un nom de garçon dans L'allemagne, mais une fille du nom en Turquie.

Le programme calcule une probabilité pour que son nom ne soit mâle de la femelle. Il peut le faire avec le nom de l'entrée, seul ou avec le nom et le pays d'origine, ce qui donne des résultats nettement meilleurs.

Vous pouvez le télécharger à partir du site web de la german computer magazine c pas 40 000 Namen. L'article est en allemand, mais ne vous inquiétez pas, toute la documentation est en anglais. Voici le lien direct ftp 0717-182.zip si vous n'êtes pas intéressés dans l'article. Le Fichier zip contient le code source, un exécutable windows, la base de données et de la documentation.

66voto

Ayman Hourieh Points 39435

Le genre d’un nom est quelque chose qui ne peut être déduit par programme dans le cas général. Vous avez besoin d’une base de données de nom. <strike>Voici une base de données libre nom du US Census Bureau.</strike>

EDIT: le lien pour le nom de 2010 est mort, mais il y a des liens de travail et une bibliothèques dans les commentaires.

32voto

Shog9 Points 82052

« Je te dis, la vie n’est pas facile pour un garçon nommé « Sue ». »

... Alors, pourquoi rendre tout plus difficile ? Si vous avez besoin de savoir le sexe, il suffit de demander... Sinon, ne vous inquiétez pas à ce sujet.

28voto

Stromgren Points 410

J'ai construit une API gratuite qui donne un probabiliste de deviner le sexe d'un premier nom. Au lieu d'utiliser l'un de ces approches, j'utilise plutôt un vaste ensemble de données de profils de réseaux sociaux afin de fournir un probabiliste de deviner avec un facteur de certitude. Il supporte également l'option de filtrage par pays ou l'id de la langue. Il est de mieux en mieux de jour en jour comme de plus en plus les profils sont ajoutés à l'ensemble de données.

Il est libre d'utiliser à http://genderize.io

UNE chose que vous devriez considérer est l'utilisation d'un outil qui prend la démographie en compte, comme les conventions de nommage s'appuie fortement sur cette.

Exemple

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"}

22voto

richardtallent Points 17534

Voici deux excentriques à des approches qui ne peuvent pas travailler, et n'y aurait probablement pas de travail en masse, sans violer les termes d'une licence:

  1. Utiliser le Facebook de l'API (qui, je le sais pratiquement rien à ce sujet, il peut même ne pas être possible) pour effectuer deux recherches: l'une pour FB hommes les utilisateurs ayant ce prénom, et un pour les femmes. Utiliser les deux nombres pour décider de la probabilité de sexe.

  2. Beaucoup plus souple, mais plus évolutif, utilisez l'API de Google et la recherche pour le nom et le sexe-spécifique pronoms, et de comparer les chiffres. Par exemple, il y a 592,000,000 résultats de la recherche pour "Richard son" (pas comme phrase), mais seulement 179,000,000 pour "Richard".

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X