2009-11-06 3 views
7

Ich vor kurzem konfrontiert mit einer seltsamen und doch interessante Frage. Die Fragen sind wie folgt: Müssen Sie ein Programm schreiben, das das Geschlecht als Ausgabe basierend auf dem Namen geben kann. Beispiel: INPUT -> John Michael Britney OUTPUT -> männlich männlich weiblichFinden Sie das Geschlecht von einem Namen

Das ist also der Ausgang erwarte ich. Ich habe viel versucht, um es zu lösen, aber ich konnte es wirklich nicht knacken. Ich werde dieser Seite wirklich dankbar sein, dass sie mir die Gelegenheit gibt, diese Frage zu teilen.

Eigentlich wird dies in einem Programmierwettbewerb als ein Flyer-Problem gefragt, also dachte ich, dass dies programmiert werden kann.

+0

Was haben Du hast es versucht? Haben Sie einen Code mit uns zu teilen, damit wir Sie in die richtige Richtung lenken können? –

+0

Wo haben Sie diese Frage gefunden? Können Sie die Website verweisen? Meine Wahl ist, den Namen in der Datenbank zu speichern und ihnen zu entsprechen. – sathish

+3

Heutzutage wechseln Männer ihren Sex, ohne ihre Namen zu ändern. Es ist also etwas schwierig. : D –

Antwort

1

Ich habe das schon einmal gemacht - es ist einfach und funktioniert gut 90% der Zeit, wenn es auf das richtige Szenario angewendet wird.

Sie müssen eine Datenbank von Namen und das übliche Geschlecht von irgendwo erhalten. Es ist dann trivial, die Datenbank zu durchsuchen.

Einige Namen (zum Beispiel Andy) sind häufig mit einem der beiden Geschlechter assoziiert. Sie benötigen also mindestens drei Geschlechterwerte - männlich/weiblich/unbekannt.

+0

Aber ich denke nicht, dass es machbar ist, alle Namen auf der Welt abzudecken. Gibt es keinen anderen Weg, logisch? – Ramesh

+2

Natürlich nicht, keine – cbp

9

Sie können es nicht algorithmisch tun: Sie benötigen eine Datenbank, um es statistisch zu tun. This SO question verweist auf viele solcher verfügbaren Ressourcen. Ist dir klar, dass du viele, viele Missgeschicke haben wirst - entweder die koreanischen Kims (Männer) oder die nordeuropäischen Frauen (Frauen) werden vielleicht ziemlich sauer auf solche Dinge, zum Beispiel ;-).

+2

+1 - versuchen, jemandes Geschlecht von ihrem Namen zu erraten ist eine schlechte Idee, weil es anfällig ist, um Anstoß zu erregen, wenn Sie es falsch verstehen. –

+0

Saturday Night Live hatte eine laufende Skizze über Leute, die versuchten, das Geschlecht einer Person namens "Pat" zu erraten. Es gibt viele andere Vornamen, die auf beide Geschlechter angewendet werden können, wie "Leslie" oder "Jackie". –

+0

Ja, und sogar für Namen, die statistisch gut mit dem Geschlecht verbunden sind, wird es immer genug Ausnahmen geben, um Ärger zu verursachen - Doonesburys Tochter heißt "Alex", ich habe einen lieben Freund, seine (irische) Mutter heißt "Shannon" "Andrea" ist in einigen Kulturen meist weiblich (z. B. Deutschland), aber stark männlich in Italien - usw., etc. –

2

Nicht aufgeben.

Ich würde einen statistischen Ansatz nehmen ... Sie müssen eine riesige Namen-Datenbank in die Hände bekommen, die tatsächlich Gender-Informationen hat ... dann lehren Sie Ihr Programm aus diesem Datensatz zu lernen.

Die Sache ist, Sie brauchen eine dritte Variable für die Korrelation. So etwas wie Herkunftsland, ethnische Zugehörigkeit usw. wird Ihre Chancen noch weiter einschränken. Sie brauchen wirklich diesen 3. "Anhaltspunkt" ...

2

Was ist mit Mensch-Computer-Interaktion als der dritte Anhaltspunkt.

Sie könnten einen Klick Karte als so haben http://css-tricks.com/tracking-clicks-building-a-clickmap-with-php-and-jquery/

Basierend auf dem der Benutzer klickt Sie eine angemessene Statistik von männlichen gegenüber weiblichen bestimmen konnte. Dies würde verwendet werden, wenn nicht bekannt ist in der Datenbank

Heresa Wikipedia über „Gender_HCI“:

„Größere Displays die geschlechtsspezifische Unterschiede bei der Navigation virtuellen Umgebungen reduzieren geholfen Bei kleineren Displays, Männchen. Leistung war besser als Frauen ". Mit größeren Displays, Frauen Leistung verbessert und Männer Leistung war nicht negativ betroffen."

haben also eine kleine Schachtel und Zeit die Menge der Zeit, die benötigt es zu klicken. ...?

+0

wirklich kreativ und aus der Boxdenken! –

6

Ich habe Zeit benutze dies auch zu lösen. Mein erster Ansatz war die Listen der zugelassenen zu verwenden Namen, wir haben solche in Dänemark, wo ich herkomme, aber ich habe schnell gemerkt, dass es nur ein paar Länder gibt.Außerdem bekam ich das Feedback, dass eine probabilistische Vermutung viel funktionaler wäre und auch für die man filtern könnte eine Land- oder Sprach-ID, die ich dann mit Hilfe von Datensätzen von Benutzern aus sozialen Netzwerken neu aufgebaut habe, die tatsächlich recht gut funktioniert.

Sie können es beiüberprüfen

Einfaches Beispiel:

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

Statistischer Ansatz funktioniert sehr gut, je nach Ländern sind die Genauigkeit 95% oder 99% + mit wenigen Ausnahmen (chinesischen Namen, koreanische Namen).

Schauen Sie sich die Gendre API http://namsor.com/api

Es erkennt automatisch die Kultur hinter einem Namen, die entsprechende Wörterbuch anzuwenden (ex. Andrea Rossini ist männlich, Andrea Parker weiblich ist, etc.)

Verwandte Themen