Je recherche une bibliothèque ou une base de données qui peut fournir des estimations sur le fait qu'une personne est un homme ou une femme en fonction de son nom ou de son surnom. Quelque chose comme
john => "M",
mary => "F",
alex => "A", #ambiguous
Je recherche quelque chose qui prend en charge les noms autres que les noms anglais (tels que japonais, indien, etc.).
Avant que j'obtienne une autre réponse du genre "vous allez offenser les gens en supposant leur sexe / genre" laissez-moi être clair, mon application n'interagit avec personne. Il n'envoie aucun e-mail ni ne contacte personne de toute façon. Il n'y a aucun utilisateur à demander. Dans de nombreux cas, la personne en question est décédée et les seules informations dont je dispose sont le nom, la date de naissance et la date du décès. La raison pour laquelle je veux connaître le sexe de l'individu est de rendre la grammaire de la sortie plus agréable et d'aider à d'éventuelles recherches qui peuvent survenir plus tard.
la source
Réponses:
Le genre d'un nom est quelque chose qui ne peut pas être déduit par programme dans le cas général. Vous avez besoin d'une base de données de noms.
Voici une base de données de noms gratuite du US Census Bureau .EDIT : Le lien pour le nom 2010 est mort mais il y a des liens de travail et des bibliothèques dans les commentaires.
la source
gender.c est un programme C open source qui fait du bon travail. Il est livré avec des données pour 44568 prénoms du monde entier. Il existe une bonne documentation et une description du format de fichier (essentiellement du texte brut), il ne devrait donc pas être trop difficile de le lire à partir de votre propre application.
Voici ce que dit l'auteur:
Le programme calcule une probabilité que le nom soit masculin ou féminin. Il peut le faire avec le nom comme 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 sur le site du magazine informatique allemand c't 40 000 Namen . L'article est en allemand mais ne vous inquiétez pas, toute la documentation est en anglais. Voici le lien ftp direct 0717-182.zip si l'article ne vous intéresse pas. Le fichier zip contient le code source, un exécutable Windows, la base de données et la documentation.
la source
"Je te le dis, la vie n'est pas facile pour un garçon nommé 'Sue'."
... Alors, pourquoi rendre les choses plus difficiles? Si vous avez besoin de connaître le sexe, demandez simplement ... Sinon, ne vous inquiétez pas.
la source
J'ai créé une API gratuite qui donne une estimation probabiliste du sexe en fonction d'un prénom. Au lieu d'utiliser l'une des approches mentionnées ci-dessus, j'utilise plutôt un énorme ensemble de données de profils provenant de réseaux sociaux pour fournir une estimation probabiliste avec un facteur de certitude. Il prend également en charge le filtrage facultatif des identifiants de pays ou de langue. Les choses s'améliorent de jour en jour à mesure que de plus en plus de profils sont ajoutés à l'ensemble de données.
Son utilisation est gratuite sur http://genderize.io
Une chose que vous devriez considérer est d'utiliser un outil qui prend en compte les données démographiques, car les conventions de dénomination reposeront fortement sur cela.
Exemple
la source
Voici deux approches bizarres qui peuvent même ne pas fonctionner et qui ne fonctionneraient probablement pas en masse sans violer les termes d'une licence:
Utilisez l'API Facebook (dont je ne sais pratiquement rien, ce n'est peut-être même pas possible) pour effectuer deux recherches: une pour les utilisateurs masculins FB avec ce prénom et une pour les femmes. Utilisez les deux nombres pour décider de la probabilité de sexe.
Beaucoup plus lâche mais plus évolutif, utilisez l'API Google et recherchez le nom ainsi que les pronoms spécifiques au sexe, et comparez les chiffres. Par exemple, il y a 592 000 000 de résultats pour la recherche de «Richard son» (pas comme une expression), mais seulement 179 000 000 pour «Richard elle».
la source
Compte tenu de vos contraintes déclarées, votre meilleure option est de reformuler tout ce que vous écrivez pour être neutre à moins que vous ne sachiez quel genre ils veulent être appelés dans chaque cas.
Si vous écrivez en anglais , rappelez-vous que le singulier «ils» est grammaticalement correct en tant que pronom à la troisième personne du singulier non sexiste.
Un bon exemple est le titre de cette question. Tel quel actuellement:
Ce serait moins gênant s'il était écrit:
la source
Il est également peu pratique de supposer que les utilisateurs doivent être des hommes ou des femmes. Il existe un nombre restreint mais significatif de personnes "intersexuées", dont la plupart en ont marre de ne pas avoir de case à cocher ..
bignose: intéressant sur le "singulier ils". Je ne savais pas qu'il avait une si longue histoire.
la source
Ce n'est pas un service, mais une petite application avec une base de données:
http://www.codeproject.com/KB/cpp/genderizer.aspx
Et cet outil est en allemand:
http://www.faq-o-matic.net/2011/06/01/zu-einem-vornamen-das-geschlecht-finden/
Et un autre en VB:
http://www.vbarchiv.net/tipps/tipp_1925-geschlecht-anhand-des-vornamens-ermitteln.html
Je pense qu'en combinaison avec certaines listes de "Prénoms les plus utilisés en 2011", vous devriez être en mesure de créer quelque chose de décent.
la source
Le package python SexMachine le fera pour vous. Étant donné n'importe quel prénom, il revient s'il est masculin, féminin ou unisexe. Il s'appuie sur les données du programme gender.c de Jorg Michael.
la source
La seule chose que vous obtiendrez en essayant de l'automatiser, c'est un groupe d'utilisateurs mécontents. À partir de ces données de recensement:
sont tous des noms qui fonctionnent à la fois pour les hommes et les femmes. Si le nom d'une fille est Robert et que tout le monde, y compris votre logiciel, continue de l'appeler un homme, elle serait plutôt énervée.
la source
Bien que les bases de données soient probablement la solution la plus pratique, si vous voulez vous amuser, vous pouvez peut-être essayer d'écrire un réseau de neurones (ou d'utiliser une bibliothèque de réseaux de neurones) qui prend le nom et génère l'une de ces 3 options (F, M, A ).
Vous pouvez le former en utilisant les ensembles de données qui existent dans les bases de données suggérées par d'autres réponses, ainsi qu'avec toute autre donnée dont vous disposez.
Cette solution vous permettrait de gérer des noms non spécifiquement catégorisés précédemment, et également de gérer différentes langues. Vous voudrez peut-être également transmettre le langage (si vous le connaissez) en tant qu'entrée au réseau neuronal.
Je ne sais pas si je peux dire que les réseaux neuronaux (ou tout autre apprentissage automatique) feraient un bon travail de catégorisation.
la source
Cela dépend de la culture / région: prenez Andrea, car les Italiens sont uniquement masculins, car la Suède est un prénom féminin tandis qu'Andreas est pour les hommes; Shawn est ambigu en anglais. Si une langue a une déclinaison, comme le latin ou le russe, les lettres finales changeront selon les règles grammaticales,
Les noms de famille identiques aux noms personnels sont une autre source d'ambiguïtés.
À mon avis, il est impossible de résoudre en général.
la source
L'idée ne fonctionnera clairement pas dans la plupart des langues.
Cependant, si vous pouviez dire la nationalité à l'avance, vous pourriez avoir plus de chance. Dans la plupart des langues slaves (par exemple le russe, le polonais, le bulgare), vous pouvez supposer que tous les noms de famille se terminant par -va -cha -ska (-a en général sont féminins) tandis que -v -ch -shi sont masculins.
En fait, tout nom de famille a une forme féminine et masculine selon la terminaison. Les mêmes noms utilisés dans d'autres pays (par exemple les États-Unis) pourraient n'utiliser que la forme masculine.
La même chose pourrait être dite pour les prénoms (-a -ya sont féminins) mais ce n'est pas exact à 100%.
Mais en général, vous n'obtiendrez guère une bibliothèque suffisamment précise.
la source
Je ne l'ai pas utilisé, mais IBM a une bibliothèque Global Name Analytics (pour un prix!) Qui semble assez complète.
la source
Le répertoire Z (sur vettrasoft.com) a une fonction de langage C, fonctionne quelque chose comme ceci:
il est basé sur une base de données, la table a quelque chose comme 10000+ noms je pense, mais vous devez télécharger et installer le répertoire z (comprend de nombreux autres éléments topo comme les pays, les repères géographiques, les aéroports, les États, les indicatifs régionaux, les codes postaux, etc. ainsi que des fonctions et des objets c ++ pour accéder aux données). Cependant, les noms sont très orientés vers l'anglais. Le tableau est un travail en cours et mis à jour progressivement.
la source
Les cartes nom-genre peuvent fonctionner, mais dans les pays multiculturels, cela ressemble plus à des suppositions. Je peux vous donner un exemple: Marian en polonais est un prénom masculin typique, alors que le même nom en Grande-Bretagne est un prénom féminin. À l'ère des immigrés partout dans le monde, je ne suis pas sûr qu'une telle base de données soit très précise. Bonne chance!
la source
Certaines cultures ont des noms unisexes - comme le mien. Que faites-vous alors? Je pense que la réponse est claire et simple - ne présumez pas - vous pourriez offenser. Demandez simplement si c'est nécessaire, sinon la neutralité de genre.
la source
Eh bien, plus maintenant. IBM breveté cette idée il y a quelque temps.
Donc, si vous recherchez un niveau de flexibilité quelconque (autre chose qu'une liste de noms), vous devrez soit (haleter!) Demander à l'utilisateur, ou simplement payer IBM pour les droits :)
Dans tous les cas, une telle détection automatique est ennuyeuse pour de nombreuses personnes qui ont des noms ambigus entre les sexes, ou même simplement des parents. Ne rendons pas cela plus difficile pour eux.
la source
Ce n'est pas gratuit, mais c'est une belle bibliothèque que j'ai utilisée auparavant:
http://www.softwarecompany.com/dotnet/netgender.htm
la source
C'est intéressant que vous disiez que vous avez une date de naissance. Cela pourrait aider. J'ai vu des bases de données d'histoires de popularité de noms.
Dans le film Splash (1984), c'était drôle que le personnage de Darryl Hannah choisisse le nom "Madison" d'un panneau de rue de Madison Avenue, car manifestement "Madison" n'est pas le nom d'une fille.
24 ans plus tard, Madison est le 4e nom le plus populaire pour les bébés filles!
Nommez l'histoire du gouvernement. (Découvrez le triste déclin de Mary au cours des 100 dernières années.)
Quand j'ai écrit à la Maison Blanche quand j'étais enfant, Richard Nixon (ou peut-être un secrétaire) m'a répondu avec quelques photos du lieu historique, adressées à «Mlle Rhett Anderson». «Miss Rhett? Cela n'a même pas de sens! Peut-on VRAIMENT ne pas faire la différence entre Rhett de Clark Gable (avec une moustache, dans Autant en emporte le vent!) Et Scarlett de Vivian Lee? Je ne lui pardonnerai jamais, malgré l'assurance de Neil Young que «même Richard Nixon a une âme».
la source
Je suis presque sûr qu'aucun service de ce type ne pourrait exister avec un niveau de précision acceptable. Voici les problèmes que je pense insurmontables:
la source
Consultez http://genderchecker.com/
la source
Vous pouvez jeter un œil à mon projet de détection de genre python https://github.com/muatik/genderizer
Il essaie de détecter le sexe des auteurs en recherchant leurs noms et / ou un échantillon de texte (par exemple des tweets) d'eux.
Et il prend également en charge mongodb, memcached pour les performances.
la source
Ce n'est pas vraiment un problème de programmation - cela revient à obtenir une table de probabilité.
AFAIK il n'y a pas de bases de données publiques sous forme distillée. Vous pouvez soit construire cela à partir des données du recensement, soit acheter les données à quelqu'un.
Par exemple, c'est quelqu'un qui vend la table de probabilité pour le Canada .
la source
À mon humble avis, c'est généralement une mauvaise idée de déterminer le sexe à partir du nom d'un individu. Beaucoup de noms sont intersexuels (bon chagrin, est-ce même un mot ?? :-), et ils peuvent aussi être un sexe dans une culture et un autre dans une autre.
Quelques exemples stupides, juste quelques-uns qui me sont venus à l'esprit (de ma part du monde, CE)
Vanja - femme, dans les pays de l'est d'ici, principalement de sexe masculin
Alex - intersexe (abréviation de Sandra, femme et Sandro, homme)
Robin - dans les cultures occidentales, peut être les deux
Dans certaines parties du monde, le sexe d'une personne peut être déterminé en regardant comment le nom se termine. Par exemple, Marija, Sandra, Ivana, Petra, Sara, Lucija, Ana - vous pouvez voir que la plupart de ces prénoms féminins se terminent par «ja» ou «ra». Il existe également d'autres exemples.
Pourtant, je pense qu'il vaut mieux simplement demander du sexe à l'utilisateur.
la source
J'ai obtenu ceci de la discussion de nouvelles de hacker à ce sujet
la source
Je ne connais aucun service de ce type. Cependant, vous pouvez peut-être trouver les données que vous recherchez. Le gouvernement américain publie des données sur la prévalence des noms et le sexe de la personne à laquelle ils sont attachés. L'administration de la sécurité sociale a une telle page , et le recensement peut aussi bien, mais je n'ai pas pris le temps de regarder. Peut-être que d'autres gouvernements mondiaux font des choses similaires.
la source
Cependant, je ne connais aucun service de ce type.
Dans certains pays (par exemple en Allemagne), le nom qu'une personne peut recevoir est limité par la loi - il existe peut-être des publications à ce sujet, qui pourraient être récoltées (mais je n'en connais pas pour le moment).
la source
Ce que je ferais, c'est faire un hack qui prend le nom et le recherche sur l'API Facebook. Examine ensuite les utilisateurs résultants et compte combien d'entre eux sont des femmes ou des hommes. Vous pouvez ensuite retourner un pourcentage. Plus si insurmontable. :)
la source
Demandez simplement aux gens, et s'ils sont gentils, ils vous donneront leur «M» ou «F», et s'ils ne le sont pas, donnez-leur un «A».
la source