2009-11-06 13 views
7

Recentemente mi sono confrontato con una domanda strana ma interessante. Le domande sono le seguenti: È necessario scrivere un programma che possa dare il genere come output basato sul nome. Esempio: INPUT -> John Michael Britney USCITA -> maschio maschio femminileTrova il sesso da un nome

Quindi questo è l'uscita mi aspetto. Ho provato molto a risolvere, ma non ero in grado di farlo. Sarò davvero grato a questo sito per avermi dato l'opportunità di condividere questa domanda.

In realtà questo viene chiesto in un concorso di programmazione come un problema di volantino, quindi ho pensato che questo possa essere programmato.

+0

Cosa hanno hai provato a fare? Avete qualche codice da condividere con noi in modo che possiamo guidarvi nella giusta direzione? –

+0

Dove hai trovato questa domanda. Puoi fare riferimento al sito web? La mia opzione è quella di memorizzare il nome nel database e abbinarli. – sathish

+3

In questi giorni i ragazzi cambiano sesso senza cambiare nome. Quindi è un po 'difficile. : D –

risposta

1

L'ho già fatto prima: è facile e funziona bene il 90% delle volte quando viene applicato allo scenario corretto.

È necessario ottenere un database di nomi e il solito genere da qualche parte. È quindi banale cercare nel database.

Alcuni nomi (ad esempio Andy) sono comunemente associati a entrambi i sessi. Quindi avrai bisogno di almeno tre valori di genere: maschio/femmina/sconosciuto.

+0

Ma non credo sia fattibile coprire tutti i nomi del mondo. Non c'è altro modo, logicamente. – Ramesh

+2

Ovviamente no, no – cbp

9

Non è possibile farlo in modo algoritmico: è necessario un database per farlo statisticamente. This SO question indica molte risorse disponibili. Ti rendi conto che avrai molti, MOLTI equivoci - sia i Kim coreani (maschi) che quelli nord-europei (le femmine) potrebbero essere piuttosto irritati per questo genere di cose, ad esempio ;-).

+2

+1: cercare di indovinare il sesso di qualcuno dal loro nome è una cattiva idea perché è suscettibile di causare offesa se si sbaglia. –

+0

Saturday Night Live aveva uno schizzo in esecuzione su persone che cercavano di indovinare il sesso di una persona chiamata "Pat". Ci sono molti altri nomi che possono essere applicati a entrambi i generi, come "Leslie" o "Jackie". –

+0

Sì, e anche per i nomi che sono statisticamente ben collegati al genere, ci saranno sempre eccezioni sufficienti a causare problemi - la figlia di Doonesbury si chiama "Alex", ho un caro amico (maschio) la sua madre (irlandese) di nome "Shannon" , "Andrea" è prevalentemente femminile in alcune culture (ad esempio, Germania), ma fortemente maschile in Italia - ecc. Ecc. –

2

Non rinunciare.

Vorrei adottare un approccio statistico ... è necessario mettere le mani su un enorme database di nomi che ha effettivamente informazioni di genere ... quindi insegnare al vostro programma per imparare da quel set di dati.

La cosa è che è necessaria una terza variabile per la correlazione. Qualcosa come il paese di origine, l'etnia, ecc. Restringerà ulteriormente le tue probabilità. Hai davvero bisogno di quel terzo "indizio" ...

2

Che dire di Human Computer Interaction come terzo indizio.

si potrebbe avere una mappa click come http://css-tricks.com/tracking-clicks-building-a-clickmap-with-php-and-jquery/

in base a dove l'utente fa clic è possibile determinare una ragionevole statistica del maschio vs femmina. Questo potrebbe essere utilizzato quando sconosciuti si trova nel database

Heres un Wikipedia su "Gender_HCI":

"display più grandi contribuito a ridurre il divario genere nella navigazione ambienti virtuali con schermi più piccoli, maschi. le prestazioni erano migliori delle femmine . Con i display più grandi, le prestazioni delle femmine miglioravano e la prestazione di maschi non era negativamente colpita."

in modo da avere una piccola scatola e il tempo la quantità di tempo necessario per clic su di esso. ...?

+0

davvero creativo e fuori dal pensiero di scatola! –

6

ho utilizzato il tempo di risolvere anche questo. Il mio primo approccio è stato quello di utilizzare gli elenchi di approvazione nomi, abbiamo quelli in Danimarca da dove vengo, ma mi sono reso conto che solo pochi paesi hanno ... Oltre a ciò, ricevevo feedback sul fatto che un'ipotesi probabilistica sarebbe stata molto più funzionale e che dovremmo essere in grado di filtrare per un ID di lingua o di paese, quindi ho ricostruito utilizzando set di dati di utenti dai social network che invece funziona abbastanza bene

Puoi dare un'occhiata a http://genderize.io

semplice esempio:

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

approccio statistico funziona davvero bene, a seconda dei paesi la precisione è il 95% o 99% + con poche eccezioni (nomi cinesi, nomi coreani).

Visita la pagina dell'API Gendre http://namsor.com/api

Riconosce automaticamente la cultura dietro a un nome, ad applicare il dizionario appropriato (es. Andrea Rossini è di sesso maschile, Andrea Parker è una donna, etc.)

Problemi correlati