Kennt jemand eine gute Bibliothek, um den Namen einer Person ihrem Geschlecht zuzuordnen? [geschlossen]


90

Ich suche nach einer Bibliothek oder Datenbank, die anhand ihres Namens oder Spitznamens erraten kann, ob eine Person männlich oder weiblich ist. Etwas wie

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

Ich suche etwas, das andere Namen als englische Namen unterstützt (wie Japanisch, Indisch usw.).

Bevor ich eine weitere Antwort nach dem Motto "Sie werden Menschen beleidigen, indem Sie ihr Geschlecht annehmen" erhalte, möchte ich klarstellen, dass meine Bewerbung mit niemandem interagiert. Es werden sowieso keine E-Mails gesendet oder Personen kontaktiert. Es sind keine Benutzer zu fragen. In vielen Fällen ist die betreffende Person tot, und die einzigen Informationen, die ich habe, sind Name, Geburtsdatum und Todesdatum. Der Grund, warum ich das Geschlecht des Individuums kennen möchte, besteht darin, die Grammatik der Ausgabe zu verbessern und mögliche Suchvorgänge zu unterstützen, die möglicherweise später erfolgen.


33
Wow ... jeder scheint die Frage "Soll ich das tun" zu beantworten, anstatt die gestellte Frage "Wie mache ich das?" Kein Wunder, nur interessant.
bsneeze

9
Ich denke tatsächlich, dass dies eine großartige Frage ist. Wenn Sie eine Website besuchen und in 90% der Fälle Ihr Geschlecht ermitteln, kann ich den Nutzen erkennen. Ich wünschte, mein Fernseher könnte das Gleiche tun. Ich habe kürzlich auf einem Flug Wiederholungen von King of the Hill gesehen und alle 3 Minuten wurde eine Anzeige für "persönliche Massagegeräte" geschaltet.
Uri

6
@mP Wow, weit weg vom Erraten von Sex, um die Grammatik zu verbessern, zur Erstellung von Rassenprofilen.
Chas. Owens

2
chas, es ist nicht das, was die Leute dir aus moralischen Gründen nicht geben wollen, es ist, als hätte es am Anfang keinen Sinn, also fragst du nach einer Fehllösung. Außerdem erwähnen Sie andere als englische Namen, und im interkulturellen Bezug wird es noch komplizierter. Für mich ist es ein No Go.
Zalew

2
Wie können Sie feststellen, ob ein Name männlich oder weiblich ist? Alex könnte kurz für Alexander (ein Mann) oder Alexandra (eine Frau) sein. Ich kenne einen Micah, der männlich und einen, der weiblich ist. Und was ist mit ausländischen Namen?
Gabe

Antworten:


66

Das Geschlecht eines Namens kann im allgemeinen Fall nicht programmatisch abgeleitet werden. Sie benötigen eine Namensdatenbank. Hier ist eine kostenlose Namensdatenbank des US Census Bureau .

BEARBEITEN : Der Link für den Namen 2010 ist tot, aber in den Kommentaren befinden sich funktionierende Links und Bibliotheken.


2
Das ist toll. Scheint genau das zu sein, was der Fragesteller braucht. Mehrdeutige Namen könnten das Geschlecht basierend auf der Häufigkeit von Männern gegenüber der Häufigkeit von Frauen "erraten" haben.
Stalepretzel

1
Ich habe dafür eine Bibliothek mit den Volkszählungsdaten erstellt und es funktioniert großartig! Mögliche Anwendungen: Analytik, Wahl des IVR-Sprachgeschlechts.
Chris McCall

9
Hier ist Name -> Geschlecht aus Volkszählungsdaten als Python- Diktat
Bemmu

3
Der ursprüngliche Link ist tot, aber die Volkszählung behält die Liste bei. Eine spezifische Version für die 1990er Jahre (ich weiß nicht warum) ist hier: census.gov/genealogy/www/data/1990surnames/names_files.html
Chipmonkey

2
22 MB US-Babynamen mit Geschlecht nach Geburtsjahr: ssa.gov/oact/babynames/limits.html (Link gültig ab Juli 2015)
Dylan Hogg

70

gender.c ist ein Open-Source- C-Programm, das gute Arbeit leistet. Es enthält Daten für 44568 Vornamen aus aller Welt. Es gibt eine gute Dokumentation und eine Beschreibung des Dateiformats (im Grunde genommen einfacher Text), so dass es nicht zu schwierig sein sollte, es aus Ihrer eigenen Anwendung zu lesen.

Folgendes sagt der Autor:

Ein paar Worte zur Datenqualität

Das Wörterbuch der Vornamen wurde mit größter Sorgfalt erstellt. Beispielsweise wurden die türkischen, indischen und koreanischen Namen in diesem Wörterbuch von mehreren Muttersprachlern unabhängig voneinander klassifiziert. Ich habe auch besonders darauf geachtet, nur die Namen aufzulisten, die derzeit gefunden werden können.

Die Lehre daraus?

Änderungen sollten sehr vorsichtig vorgenommen werden (und sie müssen auch die vom Suchalgorithmus geforderte Sortierung einhalten). Da der Autor beispielsweise wusste, dass "Sascha" in Deutschland ein Jungenname ist, nahm er nie an, dass das englische "Sasha" ein Mädchenname ist. Da ich wusste, dass "Jan" in Deutschland ein Jungenname ist, habe ich nie angenommen, dass es sich auch um eine englische Kurzform von "Janet" handelt. Ein anderes Beispiel ist der Name "Esra". Dies ist der Name eines Jungen in Deutschland, aber der Name eines Mädchens in der Türkei.

Das Programm berechnet eine Wahrscheinlichkeit, dass der Name männlich oder weiblich ist. Dies kann allein mit dem Namen als Eingabe oder mit dem Namen und dem Herkunftsland erfolgen, was zu deutlich besseren Ergebnissen führt.

Sie können es von der Website des deutschen Computermagazins c't 40 000 Namen herunterladen . Der Artikel ist in deutscher Sprache, aber keine Sorge, die gesamte Dokumentation ist in englischer Sprache. Hier ist der direkte FTP-Link 0717-182.zip, wenn Sie nicht an dem Artikel interessiert sind. Die Zip-Datei enthält den Quellcode, eine ausführbare Windows-Datei, die Datenbank und die Dokumentation.


Das ist wunderbar, danke.
Dale Athanasias

Siehe hier für den Python-Port - pypi.python.org/pypi/SexMachine
philshem

33

"Ich sage dir, für einen Jungen namens 'Sue' ist das Leben nicht einfach."

... Also, warum es schwieriger machen? Wenn Sie das Geschlecht kennen müssen, fragen Sie einfach ... Ansonsten machen Sie sich keine Sorgen.


15
@Chas: Selbst wenn Sie es 80% der Zeit schaffen, es richtig zu machen, wird das immer noch zwei von zehn Leuten irritieren, die Ihre Software verwenden. Nicht so gut ... Ich verstehe die Motivation, aber Sie sollten Ihre Botschaften besser so umformulieren, dass sie geschlechtsneutral sind.
Shog9

2
Ich frage mich, ob sich noch jemand an "Pat" von SNL erinnert.
Erickson

8
Wenn ich das noch einmal lese, komme ich schrecklich predigend davon ... Ich will deine Idee nicht niederlegen, ich denke, es ist eine interessante ... Aber auch sehr riskant. Früher habe ich als Telemarketer gearbeitet, und egal wie viele Namen Sie kennen, egal wie gut Sie Stimmen erkennen, manchmal raten Sie immer noch falsch ... und es macht nie Spaß. Und so würde ich es vermeiden, es sei denn, es gibt eine große, große Auszahlung dafür, dass ich es geschafft habe, es richtig zu erraten .
Shog9

3
Ich würde Shog9s Rat annehmen. Wenn Ihre Bewerbung nicht in anderen Sprachen als Englisch verfasst wird, ist es möglicherweise einfacher, nur geschlechtsneutrale Pronomen zu verwenden - z. B. sie, eins, er / sie usw.
Calvin

11
Meine Freundin heißt Kevan. Sie bekommt genug Leute, die ihr Geschlecht falsch anhand ihres Namens erraten, sie braucht auch keine Computer, die das tun. Achten Sie darauf, dass Sie einen Datenbankeintrag erstellen, in dem das Geschlecht einer Person anhand der Vermutung eines Computers angegeben wird. Leute, die sich das ansehen, könnten annehmen, dass es von der Person selbst bereitgestellt wird, und werden wirklich verwirrt, wenn sich ihre Annahmen als falsch herausstellen (im Gegensatz zu nur etwas verwirrt, allein aufgrund des Namens).
Brian Campbell

29

Ich habe eine kostenlose API erstellt, die anhand eines Vornamens eine Wahrscheinlichkeitsschätzung des Geschlechts liefert. Anstatt einen der oben genannten Ansätze zu verwenden, verwende ich stattdessen einen riesigen Datensatz von Profilen aus sozialen Netzwerken, um eine probabilistische Vermutung zusammen mit einem Sicherheitsfaktor bereitzustellen. Es unterstützt auch die optionale Filterung nach Länder- oder Sprach-IDs. Es wird von Tag zu Tag besser, wenn dem Datensatz mehr Profile hinzugefügt werden.

Es kann kostenlos unter http://genderize.io verwendet werden

Eine Sache, die Sie in Betracht ziehen sollten, ist die Verwendung eines Tools, das die Demografie berücksichtigt, da Namenskonventionen stark davon abhängen.

Beispiel

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

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

2
Code-Erweiterungen - genderize.io/#extensions
Philshem

22

Hier sind zwei seltsame Ansätze, die möglicherweise nicht einmal funktionieren und wahrscheinlich nicht massenhaft funktionieren würden, ohne die Bedingungen einer Lizenz zu verletzen:

  1. Verwenden Sie die Facebook-API (von der ich so gut wie nichts weiß, es ist möglicherweise nicht einmal möglich), um zwei Suchvorgänge durchzuführen: eine für männliche FB-Benutzer mit diesem Vornamen und eine für weibliche. Verwenden Sie die beiden Zahlen, um die Wahrscheinlichkeit des Geschlechts zu bestimmen.

  2. Verwenden Sie die Google-API, suchen Sie nach dem Namen und den geschlechtsspezifischen Pronomen und vergleichen Sie die Zahlen. Zum Beispiel gibt es 592.000.000 Ergebnisse für die Suche nach "Richard his" (nicht als Ausdruck), aber nur 179.000.000 für "Richard her".


Abgesehen von dem allgemeinen Konsens darüber, dass Software versucht, Dinge wie Sex anhand eines Vornamens zu erraten, ist dies eine wirklich coole algorithmische Antwort auf die ursprüngliche Frage. Gut gemacht.
PeSHIr

Großartige Idee. Sie können wahrscheinlich auch einige Wörter in der Sprache eines bestimmten Landes eingeben, um es zu lokalisieren.
Nosredna

Guter Punkt, Nosrenda ... natürlich können Sie bei Google Suchergebnisse bereits nach Sprachcode filtern. Sie können sogar die bevorzugte Sprache des Benutzers aus der HTTP-Anforderung stehlen. Ihre Browser-Spracheinstellung kann mit der ethnischen Zugehörigkeit ihres Namens übereinstimmen oder nicht, aber dies ist trotzdem eine Fuzzy-Technik.
richardtallent

2
Ich fand, dass Google chauvinistisch ist: Es gibt mehr Ergebnisse für Männer als für Frauen, weil mehr Männer in Google sind. Die Facebook-API ist wahrscheinlich viel repräsentativer.
Chris McCall

6

In Anbetracht Ihrer angegebenen Einschränkungen besteht Ihre beste Option darin, alles, was Sie schreiben, als geschlechtsneutral neu zu formulieren, es sei denn, Sie wissen, welches Geschlecht sie jeweils nennen möchten.

Wenn Sie auf Englisch schreiben , denken Sie daran, dass das singuläre „sie“ als geschlechtsneutrales Singularpronomen der dritten Person grammatikalisch in Ordnung ist.

Ein gutes Beispiel ist der Titel dieser Frage. Wie aktuell:

    … Den Namen einer Person ihrem Geschlecht zuordnen?

Das wäre weniger umständlich, wenn geschrieben:

    … Den Namen einer Person ihrem Geschlecht zuordnen?

Es ist nicht ganz "perfekt" grammatikalisch. Sogar der Wikipedia-Artikel gibt zu, dass er insbesondere im modernen Kontext verwendet wurde, weil einige Autoren sich mit dem generischen "er" unwohl fühlten. Ich habe kein großes Problem mit Schriftstellern, die dies tun (obwohl ich, wenn Geschlechtsneutralität wirklich wichtig ist, das Konstrukt lieber umformuliere, damit ich Pronomen wie "eins" verwenden kann), aber nennen wir es so, wie es ist.
Ben Collins

Ich würde behaupten, wir haben beide Recht. Alle Grammatik, insbesondere die englische Grammatik, weist erhebliche Probleme auf. Aber ich würde sagen, dass jede Definition von „perfekter Grammatik“, die tatsächlich für alles auf Englisch gilt, auch hier gilt. Entweder ist das singuläre „sie“ perfekt grammatikalisch oder nichts auf Englisch ist :-)
bignose

Bemerkenswert ist, dass Grammar Girl (Autorin Mignon Fogarty) seit einiger Zeit dazu neigt, das singuläre "sie" zu akzeptieren. grammar.quickanddirtytips.com/…
Karen Lopez

4

Es ist auch eine schlechte Praxis anzunehmen, dass Benutzer männlich oder weiblich sein müssen. Es gibt eine kleine, aber bedeutende Anzahl von "intersexuellen" Menschen, von denen die meisten es
satt haben, kein Kästchen zum Ankreuzen zu haben. Bignose: Interessant für das "Singular". Ich wusste nicht, dass es eine so lange Geschichte hat.


4

Es ist kein Dienst, sondern eine kleine App mit einer Datenbank:
http://www.codeproject.com/KB/cpp/genderizer.aspx

Und dieses Tool ist auf Deutsch:
http://www.faq-o-matic.net/2011/06/01/zu-einem-vornamen-das-geschlecht-finden/

Und noch eine in VB:
http://www.vbarchiv.net/tipps/tipp_1925-geschlecht-anhand-des-vornamens-ermitteln.html

Ich denke, in Kombination mit einigen "Am häufigsten verwendeten Vornamen in 2011" -Listen sollten Sie in der Lage sein, etwas Anständiges zu erstellen.


4

Das Python-Paket SexMachine erledigt das für Sie. Bei jedem Vornamen wird zurückgegeben, ob es sich um einen Mann, eine Frau oder einen Unisex handelt. Es stützt sich auf die Daten aus dem Programm gender.c von Jorg Michael.


3

Das einzige, was Sie durch den Versuch der Automatisierung erhalten, sind einige unglückliche Benutzer. Aus diesen Volkszählungsdaten:

JAMES, JOHN, ROBERT, MICHAEL, WILLIAM, DAVID, RICHARD, CHARLES, JOSEPH, THOMAS, CHRISTOPHER, DANIEL, PAUL, MARK, DONALD, GEORGE, KENNETH, STEVEN, EDWARD, BRIAN, RONALD, ANTHONY, KEVIN, JON GARY, TIMOTHY, JOSE, LARRY, JEFFREY, FRANK, SCOTT, ERIC, STEPHEN, ANDREW, RAYMOND, GREGORY, JOSHUA, JERRY, DENNIS, WALTER, PATRICK, PETER, HAROLD, HENRY, CARL, ARTHUR, RYAN, JO JACK, ALBERT, JUSTIN, TERRY, GERALD, KEITH, SAMUEL, WILLIE, RECHT, ROY, BRANDON, ADAM, FRED, BILLY, LOUIS, JEREMY, AARON, RANDY, EUGEN, CARLOS, RUSSELL, BOBBY, VICTOR, MARTIN SHAWN, CLARENCE, SEAN, CHRIS, JOHNNY, JIMMY, ANTONIO, TONY, LUIS, MIKE, DALE, CURTIS, NORMAN, ALLEN, GLENN, TRAVIS, LEE, MELVIN, KYLE, FRANCIS, JESUS, RAY, JOEL, EDDIE, TRY ALEXANDER, MARIO, FRANCISCO, MICHEAL, OSCAR, JAY, ALEX, JON, RONNIE, TOMMY, LEON, LEO, WESLEY, DEAN, DAN, LEWIS,KERN, MAURICE, VERNON, ROBERTO, CLYDE, SHANE, SAM, LESTER, CHARLIE, TYLER, GEN, BRETT, ENGEL, LESLIE, CECIL, ANDRE, ELMER, GABRIEL, MITCHELL, ADRIAN, KARL, CORY, CLAUDE, JAMIE, JIE CHRISTIAN, LONNIE, CODY, JULIO, KELLY, JIMMIE, JORDANIEN, JAIME, CASEY, JOHNNIE, SIDNEY, JULIAN, DARYL, VIRGIL, MARSHALL, PERRY, MARION, TRACY, RENE, FREDDIE, AUSTIN, JACKIE, JOE DONNIE, SHANNON, ANGELO, SHAUN, LYNN, CAMERON, BLAKE, KERRY, JEAN, IRA, RUDY, BENNIE, ROBIN, LOREN, NOEL, DEVIN, KIM, GUADALUPE, CARROLL, SAMMY, MARTY, TAYLOR, ELLIS DREW, JODY, FRANKIE, PAT, MERLE, TERRELL, DARNELL, TOMMIE, TOBY, VAN, COURTNEY, JAN, CARY, SANTOS, AUBREY, MORGAN, LOUIE, STACY, MICAH, BILLIE, LOGAN, DEMETRIUS, ROBBIE MICKEY, DEVON, ASHLEY, CAREY, SOHN, MARLIN, ALI, SAMMIE, MICHEL, RORY, KRIS, AVERY, ALEXIS, GERRY, STACEY,CARMEN, SHELBY, RICKIE, BOBBIE, OLLIE, DENNY, DION, ODELL, MARY, COLBY, HOLLIS, KIRBY, CRUZ, MERRILL, SPUR, CLEO, BLAIR, ZAHLEN, CLAIR, BERNIE, JOAN, DOMINIQUE, TRISTAN, JAME LAVERNE, ALVA, STEVIE, ERIN, AUGUSTINE, JUNGE, JOHNIE, ARIEL, STAUB, LINDSEY, TRACEY, SCOTTIE, SANDY, SYDNEY, GAIL, DORIAN, LAVERN, REFUGIO, ELFENBEIN, ANDREA, SANG, DEON, CAROL, YONG, BER TRINIDAD, SHIRLEY, MARIA, CHANG, ROSARIO, DANNIE, FRANCES, DANN, CONNIE, TORY, LUPE, DEE, SUNG, CHI, QUINN, MINH, THEO, LOU, CHUNG, VALENTINE, JAMEY, WHITNEY, SOL, CHONG, PARIS, OTHA, LACY, DONG, ANTONIA, KELLEY, CARROL, SHAYNE, VAL, JUDE, BRITT, HONG, LEIGH, GAYLE, JAE, NICKY, LESLEY, MANN, KASEY, JEWELL, PATRICIA, LAUREN, ELISHA, MICHAL, LINDSAY und JINDECLAIR, BERNIE, JOAN, DOMINIQUE, TRISTAN, JAME, GALE, LAVERNE, ALVA, STEVIE, ERIN, AUGUSTINE, JUNGE, JOHNIE, ARIEL, DUSTY, LINDSEY, TRACEY, SCOTTIE, SANDY, SYDNEY, GAIL, DORIAN, LAVER Elfenbein, ANDREA, SANG, DEON, CAROL, YONG, BERRY, TRINIDAD, SHIRLEY, MARIA, CHANG, ROSARIO, DANNIE, FRANCES, DANN, CONNIE, TORY, LUPE, DEE, SUNG, CHI, QUINN, MINH, THEO, LOU, CHUNG, VALENTINE, JAMEY, WHITNEY, SOL, CHONG, PARIS, OTHA, LACY, DONG, ANTONIA, KELLEY, CARROL, SHAYNE, VAL, JUDE, BRITT, HONG, LEIGH, GAYLE, JAE, NICKY, LESLEY, MAN, KASEY JEWELL, PATRICIA, LAUREN, ELISHA, MICHAL, LINDSAY und JEWELCLAIR, BERNIE, JOAN, DOMINIQUE, TRISTAN, JAME, GALE, LAVERNE, ALVA, STEVIE, ERIN, AUGUSTINE, JUNGE, JOHNIE, ARIEL, DUSTY, LINDSEY, TRACEY, SCOTTIE, SANDY, SYDNEY, GAIL, DORIAN, LAVER Elfenbein, ANDREA, SANG, DEON, CAROL, YONG, BERRY, TRINIDAD, SHIRLEY, MARIA, CHANG, ROSARIO, DANNIE, FRANCES, DANN, CONNIE, TORY, LUPE, DEE, SUNG, CHI, QUINN, MINH, THEO, LOU, CHUNG, VALENTINE, JAMEY, WHITNEY, SOL, CHONG, PARIS, OTHA, LACY, DONG, ANTONIA, KELLEY, CARROL, SHAYNE, VAL, JUDE, BRITT, HONG, LEIGH, GAYLE, JAE, NICKY, LESLEY, MAN, KASEY JEWELL, PATRICIA, LAUREN, ELISHA, MICHAL, LINDSAY und JEWELMARIA, CHANG, ROSARIO, DANNIE, FRANCES, DANN, CONNIE, TORY, LUPE, DEE, SUNG, CHI, QUINN, MINH, THEO, LOU, CHUNG, VALENTINE, JAMEY, WHITNEY, SOL, CHONG, PARIS, OTHA, LACY, DONG, ANTONIA, KELLEY, CARROL, SHAYNE, VAL, JUDE, BRITT, HONG, LEIGH, GAYLE, JAE, NICKY, LESLEY, MANN, KASEY, JEWELL, PATRICIA, LAUREN, ELISHA, MICHAL, LINDSAY und JEWELMARIA, CHANG, ROSARIO, DANNIE, FRANCES, DANN, CONNIE, TORY, LUPE, DEE, SUNG, CHI, QUINN, MINH, THEO, LOU, CHUNG, VALENTINE, JAMEY, WHITNEY, SOL, CHONG, PARIS, OTHA, LACY, DONG, ANTONIA, KELLEY, CARROL, SHAYNE, VAL, JUDE, BRITT, HONG, LEIGH, GAYLE, JAE, NICKY, LESLEY, MANN, KASEY, JEWELL, PATRICIA, LAUREN, ELISHA, MICHAL, LINDSAY und JEWEL

sind alle Namen, die sowohl für Männer als auch für Frauen funktionieren. Wenn ein Mädchen Robert heißt und alle, einschließlich Ihrer Software, sie weiterhin als Mann bezeichnen, wäre sie ziemlich sauer.


25
Nehmen wir an, dass es ein Mädchen namens Mark gibt (zögern Sie nicht, darauf hinzuweisen). Wenn ich sie wäre, wäre ich sauer auf meine Eltern und nicht auf Chas 'Software ...
Darko Z

6
Was ist, wenn die Software sie nie als Mann bezeichnet, sondern die "männliche" Version der Benutzeroberfläche präsentiert? Oder hat sie sich mit Männern in einem Aggregat über einen Datensatz zusammengetan, der zur Entwicklung von Marketing-Sicherheiten verwendet wird? Sie könnte es nicht einmal bemerken.
Chris McCall

Für viele dieser Namen erhalte ich eine 100% ige Sicherheit basierend auf Daten von 500-1200 Facebook-Profilen des angegebenen Namens. api.genderize.io/?name=robert api.genderize.io/?name=andrew api.genderize.io/?name=john
Stromgren

3

Obwohl Datenbanken wahrscheinlich die praktischste Lösung sind, können Sie, wenn Sie Spaß haben möchten, versuchen, ein neuronales Netz zu schreiben (oder eine neuronale Netzbibliothek zu verwenden), das den Namen aufnimmt und eine dieser drei Optionen (F, M, A) ausgibt ).

Sie können es mit den Datensätzen trainieren, die in den von anderen Antworten vorgeschlagenen Datenbanken vorhanden sind, sowie mit allen anderen Daten, die Sie haben.

Mit dieser Lösung können Sie Namen verarbeiten, die zuvor nicht speziell kategorisiert wurden, sowie verschiedene Sprachen. Möglicherweise möchten Sie die Sprache (wenn Sie sie kennen) auch als Eingabe für das neuronale Netz übergeben.

Ich weiß nicht, dass ich sagen kann, dass neuronale Netze (oder jedes andere maschinelle Lernen) eine gute Arbeit bei der Kategorisierung leisten würden.


3

Es ist kultur- / regionabhängig: nimm Andrea, denn Italiener sind nur männlich, denn Schweden ist ein weiblicher Name, während Andreas für Männer ist; Shawn ist auf Englisch mehrdeutig. Wenn eine Sprache wie Latein oder Russisch eine Deklination aufweist, ändern sich die endgültigen Buchstaben gemäß den grammatikalischen Regeln.

Eine weitere Ursache für Unklarheiten sind Familiennamen, die mit persönlichen Namen identisch sind.

Meiner Meinung nach ist es im Allgemeinen unmöglich zu lösen.


Wenn OP eine Begleitvariable hätte, die Herkunftskultur, Geburtsort, Nationalität angibt, was auch immer das nützlich wäre. Aber er sagte, er tut es nicht, also muss man nur eine statistisch fundierte Vermutung auf der Grundlage von Aggregaten anstellen.
smci

3

Die Idee wird in den meisten Sprachen eindeutig nicht funktionieren.

Wenn Sie jedoch vorher die Nationalität mitteilen könnten, könnten Sie mehr Glück haben. In den meisten slawischen Sprachen (z. B. Russisch, Polnisch, Bulgarisch) kann man davon ausgehen, dass alle Nachnamen, die mit -va -cha -ska (-a im Allgemeinen weiblich) enden, während -v -ch -shi männlich sind.

Tatsächlich hat jeder Nachname je nach Ende eine weibliche und männliche Form. Dieselben Namen, die in anderen Ländern (z. B. den USA) verwendet werden, verwenden möglicherweise nur die männliche Form.

Das gleiche gilt für Vornamen (-a -ya sind weiblich), aber es ist nicht 100% genau.

Im Allgemeinen erhalten Sie jedoch kaum eine Bibliothek, die genau genug ist.


Wie ist ein Familienname männlich oder weiblich?
Simon_Weaver

2
@ Simon_Weaver Der Nachname meines Vaters ist Slavchev, und der Nachname meiner Mutter ist Slavcheva. Es ist in der Tat das gleiche Familienname-Bit, das für Männer und Frauen unterschiedlich geschrieben ist. Dies ist bei slawischen Namen üblich.
Dimitar Slavchev


2

Das Z-Verzeichnis (auf vettrasoft.com) hat eine C-Sprachfunktion und funktioniert ungefähr so:

void func()
{
    char c = z_guess_sex_byfirstname ("Lon");
    switch(c)
    {
    case 'M': std::cout << "It's a boy!\n"; break;
    case 'F': std::cout << "It's a girl!\n"; break;
    case 'B': std::cout << "this name is for both sexes\n"; break;
    case '?': std::cout << "sex unknown sorry\n"; break;
    }
}

Es ist datenbankgesteuert, die Tabelle hat ungefähr 10.000 Namen, aber Sie müssen das z-Verzeichnis herunterladen und installieren (enthält viele andere Topo-Elemente wie Länder, geografische Sehenswürdigkeiten, Flughäfen, Bundesstaaten, Ortsvorwahlen, Postleitzahlen usw. zusammen mit c ++ - Funktionen und Objekten für den Zugriff auf die Daten). Die Namen sind jedoch sehr englischsprachig. Die Tabelle ist in Arbeit und wird schrittweise aktualisiert.


1

Namen-Geschlecht-Karten können funktionieren, aber in multikulturellen Ländern ist es eher wie Raten. Ich kann Ihnen ein Beispiel geben: Marian auf Polnisch ist ein typischer männlicher Name, während der gleiche Name in Großbritannien ein weiblicher Name ist. In Zeiten von Menschen, die auf der ganzen Welt einwandern, bin ich mir nicht sicher, ob eine solche Datenbank sehr genau wäre. Viel Glück!


1
Nein, aber solange es besser als 50% ist, ist es besser, Namen als immer männlich zu behandeln.
Chas. Owens

@Chas, warum also an dieser falschen Zweiteilung festhalten? Sie haben die Möglichkeit der Geschlechtsneutralität.
Bignose

Wir haben sogar zwei berühmte Politiker, die einen zweiten Namen "Maria" haben - "Mary", der in Ihrer Datenbank als weiblich eingestuft wird. nur für die lols.
Zalew

@JZ Ich spreche vom Vornamen, nicht vom Nachnamen (oder umgekehrt für die Kulturen, die das Gegenteil tun).
Chas. Owens

@bignose, die geschlechtsneutrale Sprache sieht komisch aus und ist verworren. Ich würde lieber etwas produzieren, das schöner aussieht, wenn ich kann. Dies wird den Personen nicht mitgeteilt (falls es sie überhaupt gibt), daher besteht keine Möglichkeit einer Beleidigung. Ich weiß nicht, warum die Leute so viel Zeit damit verbringen, darüber zu streiten, anstatt nur Links zu Datenbanken bereitzustellen, wenn sie von einem Gut wissen einer.
Chas. Owens

1

Einige Kulturen haben Unisex-Namen - wie meine. Was machst du dann? Ich denke, die Antwort ist schlicht und einfach - nehmen Sie nicht an - Sie könnten Anstoß erregen. Fragen Sie einfach, ob es nötig ist, sonst geschlechtsneutral.


5
Die Frage hat Ihre Antwort bereits beantwortet: alex => "A", #ambiguous. Ob die Frage eine Antwort hat oder nicht, Ihre Antwort ist es nicht.
Windows-Programmierer

Ich bin anderer Meinung - Mein Punkt ist, dass alle Namen möglicherweise mehrdeutig sind.
Preet Sangha

Wenn die Namen unisex sind, würden sie alle als A klassifiziert und ich würde mich für Geschlechtsneutralität entscheiden, aber wenn ein Name überwiegend männlich oder weiblich ist, kann ich eine viel natürlichere Sprache verwenden.
Chas. Owens

Ich verstehe, was Ihre Argumentation ist, aber ich verweise Sie auf den letzteren Kommentar.
Preet Sangha

3
Aber wenn Sie ein "Preet" auf StackOverflow sehen, ist es wahrscheinlich ein Mann.
Nosredna

1

Nun, nicht mehr. IBM hat diese Idee vor einiger Zeit patentiert .

Wenn Sie also nach einem Grad an Flexibilität suchen (etwas anderes als eine Liste von Namen), müssen Sie entweder den Benutzer fragen (nach Luft schnappen!) Oder einfach IBM für die Rechte bezahlen :)

In jedem Fall ist eine solche automatische Erkennung für viele Menschen ärgerlich, die geschlechtsspezifische Namen haben oder sogar nur meine Eltern. Machen wir es ihnen nicht schwerer.


3
Es sieht so aus, als hätte IBM die Auswahl eines Avatars anhand des Namens patentiert. Glücklicherweise ist dies nicht eine der Anmeldungen, für die ich dies verwenden möchte, daher verletze ich ihr Patent nicht. Für das Fragen des Benutzers wird vorausgesetzt, dass ich Benutzer fragen muss, im Gegensatz zu einer Liste von Namen. Ich habe wiederholt gesagt, dass es keine Benutzer, keine Interaktion und keine Nachrichten an die Personen gibt, denen die Namen gehören.
Chas. Owens

1

Es ist nicht kostenlos, aber dies ist eine schöne Bibliothek, die ich zuvor verwendet habe:

Mit NetGender for .NET können Sie schnell und einfach Namensüberprüfung, Analyse und Geschlechtsbestimmung in Ihre benutzerdefinierten Anwendungen integrieren. Überprüfen Sie genau, ob ein bestimmtes Feld eine gültige Person oder Firma enthält. NetGender verwendet ein über 100.000 ethnisch vielfältiges Namenswörterbuch in Kombination mit einem über 8.000 Firmennamen-Wörterbuch, um eine genaue Geschlechtsbestimmung sicherzustellen.

http://www.softwarecompany.com/dotnet/netgender.htm


1

Es ist interessant, dass Sie sagen, Sie haben ein Geburtsdatum. Das könnte helfen. Ich habe Datenbanken mit Geschichten über die Popularität von Namen gesehen.

In dem Film Splash (1984) war es lustig, dass Darryl Hannahs Charakter den Namen "Madison" aus einem Straßenschild der Madison Avenue wählt, weil "Madison" offensichtlich kein Mädchenname ist.

24 Jahre später ist Madison der viertbeliebteste Name für Mädchenbabys!


Nennen Sie die Geschichte der Regierung. (Schauen Sie sich Marys traurigen Niedergang in den letzten 100 Jahren an.)


Als ich als Kind an das Weiße Haus schrieb, antwortete mir Richard Nixon (oder vielleicht eine Sekretärin) mit einigen Fotos des historischen Ortes, die an "Miss Rhett Anderson" gerichtet waren. "Miss Rhett?" Es macht nicht einmal Sinn! Können wir den Unterschied zwischen Clark Gables Rhett (mit einem Schnurrbart in Vom Winde verweht!) Und Vivian Lees Scarlett WIRKLICH nicht erkennen? Ich werde ihm niemals vergeben, obwohl Neil Young versichert hat, dass "sogar Richard Nixon Seele hat".


Guter Punkt, Datum kommt hier definitiv ins Spiel.
Chas. Owens

1

Ich bin mir ziemlich sicher, dass es keinen solchen Service mit einer akzeptablen Genauigkeit geben könnte. Hier sind die Probleme, die ich für unüberwindbar halte:

  • Es gibt viele Namen, die sowohl für Männer als auch für Frauen sind.
  • Es gibt viele verschiedene Namen auf dieser Welt, auch wenn Sie nur ein Land betrachten.
  • Es gibt die Ausgabe "A Boy Named Sue", die von Johnny Cash so eloquent angesprochen wurde :-)

2
Eine gute Datenbank hätte den Prozentsatz männlich / weiblich für androgyne Namen nach Region und Zeitpunkt der Probenahme usw.

Was ist mit Sprachen wie Japanisch? Ich lerne Japanisch, daher kann ich mich hier irren, aber Namen <-> Kanji sind keine direkten Beziehungen. Es gab Wortspiele und Missverständnisse darüber, "was" Kanji den Namen einer Person ausmacht.
Pharaun


1

Sie können sich mein Python-Gender-Erkennungsprojekt https://github.com/muatik/genderizer ansehen

Es wird versucht, die Geschlechter der Autoren zu erkennen, die nach ihren Namen und / oder Beispieltexten (z. B. Tweets) suchen.

Und es unterstützt auch Mongodb, das für die Leistung gespeichert ist.


Scheint gut zu sein, aber wenn Sie wissen möchten, dass es sich um ein "Herkunftsland" handelt, siehe gender.c oder genderize.io unten
HaveAGuess

0

Dies ist nicht wirklich ein Programmierproblem - es kommt darauf an, eine Wahrscheinlichkeitstabelle zu erhalten.

AFAIK gibt es keine öffentlichen Datenbanken in destillierter Form. Sie können dies entweder aus Volkszählungsdaten erstellen oder die Daten von jemandem kaufen.

Dies ist beispielsweise jemand, der die Wahrscheinlichkeitstabelle für Kanada verkauft .


0

IMHO ist es im Allgemeinen eine schlechte Idee, das Geschlecht anhand eines individuellen Namens zu bestimmen. Viele Namen sind intersexuell (gute Trauer, ist das überhaupt ein Wort ?? :-), und sie können auch ein Geschlecht in einer Kultur und ein anderes in einer anderen sein.

Ein paar dumme Beispiele, nur ein paar, die mir in den Sinn kamen (aus meinem Teil der Welt, CE)

Vanja - weiblich, in östlichen Ländern von hier aus, meist männlich
Alex - intersexuell (kurz für Sandra, weiblich, und Sandro, männlich)
Robin - in westlichen Kulturen kann beides sein

In einigen Teilen der Welt kann das Geschlecht einer Person bestimmt werden, indem man sich ansieht, wie der Name endet. Zum Beispiel Marija, Sandra, Ivana, Petra, Sara, Lucija, Ana - Sie können sehen, dass die meisten dieser weiblichen Namen mit "ja" oder "ra" enden. Es gibt auch andere Beispiele.

Trotzdem denke ich, dass es besser ist, den Benutzer nur nach Sex zu fragen.


9
"Trotzdem denke ich, dass es besser ist, den Benutzer nur nach Sex zu fragen." - Ich stimme zu, das wäre weitaus besser, als Kommentare zu Stack Overflow zu veröffentlichen.
Windows-Programmierer

2
UPS. Okeey, das kam nicht richtig heraus :-)
Rook

Es war besser vor dem Bearbeiten :-)
Windows-Programmierer


0

Ich kenne keinen solchen Service. Möglicherweise finden Sie jedoch die gesuchten Daten. Die US-Regierung veröffentlicht Daten über die Verbreitung von Namen und das Geschlecht der Person, an die sie gebunden sind. Die Sozialversicherungsbehörde hat eine solche Seite , und die Volkszählung mag es auch, aber ich habe mir nicht die Zeit genommen, nachzuschauen. Vielleicht machen andere Weltregierungen ähnliche Dinge.


0

Ich kenne jedoch keinen solchen Service.

In einigen Ländern (z. B. Deutschland) ist der Name, den eine Person vergeben kann, gesetzlich begrenzt - möglicherweise gibt es einige Veröffentlichungen zu diesem Thema, die geerntet werden könnten (aber ich kenne derzeit keine).


0

Was ich tun würde, ist einen Hack zu machen, der den Namen nimmt und ihn gegen die Facebook-API durchsucht. Schauen Sie sich dann die resultierenden Benutzer an und zählen Sie, wie viele von ihnen weiblich oder männlich sind. Sie können dann einen Prozentsatz zurückgeben. Nicht mehr so ​​unüberwindbar. :) :)


-2

Fragen Sie einfach die Leute, und wenn sie nett sind, geben sie Ihnen ihre "M" oder "F", und wenn sie es nicht sind, geben Sie ihnen ein "A".


2
Ich stehe nicht in Verbindung mit den Personen, deren Namen ich zuordnen möchte.
Chas. Owens
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.