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.
quelle
Antworten:
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.
quelle
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:
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.
quelle
"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.
quelle
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
quelle
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:
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.
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".
quelle
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:
Das wäre weniger umständlich, wenn geschrieben:
quelle
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.
quelle
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.
quelle
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.
quelle
Das einzige, was Sie durch den Versuch der Automatisierung erhalten, sind einige unglückliche Benutzer. Aus diesen Volkszählungsdaten:
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.
quelle
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.
quelle
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.
quelle
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.
quelle
Ich habe es nicht verwendet, aber IBM hat eine Global Name Analytics- Bibliothek (zu einem Preis!), Die ziemlich umfassend zu sein scheint.
quelle
Das Z-Verzeichnis (auf vettrasoft.com) hat eine C-Sprachfunktion und funktioniert ungefähr so:
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.
quelle
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!
quelle
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.
quelle
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.
quelle
Es ist nicht kostenlos, aber dies ist eine schöne Bibliothek, die ich zuvor verwendet habe:
http://www.softwarecompany.com/dotnet/netgender.htm
quelle
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".
quelle
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:
quelle
Schauen Sie sich http://genderchecker.com/ an.
quelle
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.
quelle
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 .
quelle
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.
quelle
Bekam dies von der Hacker-News- Diskussion darüber erhalten
quelle
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.
quelle
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).
quelle
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. :) :)
quelle
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".
quelle