Qualcuno conosce una buona libreria per mappare il nome di una persona al suo sesso? [chiuso]


90

Sto cercando una libreria o un database in grado di fornire ipotesi sul fatto che una persona sia maschio o femmina in base al suo nome o soprannome. Qualcosa di simile a

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

Sto cercando qualcosa che supporti nomi diversi dai nomi inglesi (come giapponese, indiano, ecc.).

Prima di ottenere un'altra risposta sulla falsariga di "offenderai le persone assumendo il loro sesso / genere", lasciatemi essere chiaro, la mia applicazione non interagisce con nessuno. Non invia email né contatta nessuno in alcun modo. Non ci sono utenti a cui chiedere. In molti casi, la persona in questione è morta e le uniche informazioni che ho sono il nome, la data di nascita e la data di morte. Il motivo per cui voglio conoscere il sesso dell'individuo è per rendere più gradevole la grammatica dell'output e per aiutare in eventuali ricerche che potrebbero venire dopo.


33
Wow ... sembra che tutti stiano rispondendo alla domanda "dovrei fare questo", piuttosto che alla domanda "come faccio?" Non sorprende, solo interessante.
starnuto

9
In realtà penso che questa sia una grande domanda. Se visiti un sito web e il 90% delle volte calcola il tuo sesso, posso vedere il vantaggio. Vorrei che la mia TV potesse fare lo stesso. Stavo guardando le repliche di King of the Hill su un volo recente e ogni 3 minuti c'era una pubblicità per "massaggiatori personali".
Uri

6
@mP Wow, modo per passare dall'indovinare il sesso per rendere la grammatica più carina al profilo razziale.
Chas. Owens

2
chas, non è la cosa che le persone non vogliono darti per una questione morale, è come se non avesse senso all'inizio, quindi stai chiedendo una soluzione fallimentare. inoltre, si fa menzione di nomi diversi da quelli inglesi, e in riferimento interculturale, diventa ancora più complicato. per me è impossibile.
Zalew

2
Come puoi sapere se un nome è maschio o femmina? Alex potrebbe essere l'abbreviazione di Alexander (un maschio) o Alexandra (una femmina). Conosco Michea che è maschio e uno che è femmina. E i nomi stranieri?
Gabe

Risposte:


66

Il sesso di un nome è qualcosa che non può essere dedotto a livello di codice nel caso generale. Hai bisogno di un database dei nomi. Ecco un database di nomi gratuito dell'Ufficio censimento degli Stati Uniti .

EDIT : Il collegamento per il nome 2010 è morto ma ci sono collegamenti funzionanti e biblioteche nei commenti.


2
Questo è fantastico. Sembra essere proprio ciò di cui il richiedente ha bisogno. I nomi ambigui potrebbero avere il sesso "indovinato" in base alla frequenza del maschio rispetto alla frequenza della femmina.
Stalepretzel

1
Ho creato una libreria per questo utilizzando i dati del censimento e funziona benissimo! Potenziali applicazioni: analisi, scelta del genere della voce IVR.
Chris McCall

9
Ecco nome -> genere da dati del censimento come pitone dict: raw.github.com/Bemmu/gender-from-name/master/gender.py
Bemmu

3
Il collegamento originale è morto, ma il censimento mantiene ancora l'elenco. Una versione specifica degli anni '90 (non so perché) è qui: census.gov/genealogy/www/data/1990surnames/names_files.html
Chipmonkey

2
22 MB di nomi di bambini statunitensi con sesso per anno di nascita: ssa.gov/oact/babynames/limits.html (link valido a luglio 2015)
Dylan Hogg

70

gender.c è un programma C open source che fa un buon lavoro. Viene fornito con i dati per 44568 nomi da tutto il mondo. C'è una buona documentazione e una descrizione del formato del file (fondamentalmente testo semplice), quindi non dovrebbe essere difficile leggerlo dalla propria applicazione.

Ecco cosa dice l'autore:

Qualche parola sulla qualità dei dati

Il dizionario dei nomi è stato preparato con la massima cura. Ad esempio, i nomi turco, indiano e coreano in questo dizionario sono stati tutti classificati in modo indipendente da diversi madrelingua. Ho anche prestato particolare attenzione a elencare solo i nomi che possono essere trovati attualmente.

La lezione da questo?

Qualsiasi modifica deve essere eseguita con molta cautela (e deve anche aderire all'ordinamento richiesto dall'algoritmo di ricerca). Ad esempio, sapendo che "Sascha" è il nome di un ragazzo in Germania, l'autore non ha mai pensato che l'inglese "Sasha" fosse il nome di una ragazza. Sapendo che "Jan" è il nome di un ragazzo in Germania, non ho mai pensato che fosse anche una forma abbreviata inglese di "Janet". Un altro esempio calzante è il nome "Esra". Questo è il nome di un ragazzo in Germania, ma il nome di una ragazza in Turchia.

Il programma calcola una probabilità che il nome sia maschio o femmina. Può farlo con il nome come input da solo o con il nome e il paese di origine, il che dà risultati significativamente migliori.

Puoi scaricarlo dal sito web della rivista tedesca di computer, a circa 40000 Namen . L'articolo è in tedesco ma non preoccuparti, tutta la documentazione è in inglese. Ecco il collegamento ftp diretto 0717-182.zip se non sei interessato all'articolo. Il file zip contiene il codice sorgente, un eseguibile di Windows, il database e la documentazione.


È meraviglioso, grazie.
Dale Athanasias

Vedi qui per il port di python - pypi.python.org/pypi/SexMachine
philshem

33

"Te lo dico io, la vita non è facile per un ragazzo di nome 'Sue'".

... Allora, perché renderlo più difficile? Se hai bisogno di conoscere il sesso, chiedi ... Altrimenti, non preoccuparti.


15
@Chas: anche se riesci a farlo bene l'80% delle volte, questo irriterà comunque due persone su dieci che usano il tuo software. Non così bene ... Capisco la motivazione, ma è davvero meglio riformulare i tuoi messaggi in modo che siano neutri rispetto al genere.
Shog9

2
Mi chiedo se qualcun altro ricorda "Pat" di SNL.
erickson

8
Rileggendo questo, sto uscendo da una orribile predica ... Non intendo mettere da parte la tua idea, penso che sia interessante ... Ma anche molto rischiosa. Lavoravo come telemarketer, e non importa quanti nomi conosci, non importa quanto sei bravo a riconoscere le voci, a volte finisci comunque per indovinare male ... e non è mai divertente. E quindi, è qualcosa che eviterei, a meno che non ci sia un grande, grande guadagno per riuscire a indovinarlo bene .
Shog9

3
Accetterei il consiglio di Shog9. A meno che la tua applicazione non sia in lingue diverse dall'inglese, potrebbe essere più semplice usare pronomi neutri rispetto al genere - ad esempio loro, uno, lui, ecc.
Calvin

11
Il nome della mia ragazza è Kevan. Ottiene abbastanza persone che indovinano erroneamente il suo sesso dal suo nome, non ha bisogno che anche i computer lo facciano. La cosa a cui fare attenzione è creare una voce di database che dichiari il sesso di qualcuno in base alle supposizioni di un computer; le persone che lo guardano potrebbero presumere che sia fornito dalla persona stessa e si confondono davvero quando le loro supposizioni si rivelano sbagliate (al contrario di solo un po 'confuse basate sul solo nome).
Brian Campbell

29

Ho creato un'API gratuita che fornisce un'ipotesi probabilistica sul sesso basata su un nome. Invece di utilizzare uno qualsiasi degli approcci sopra menzionati, utilizzo invece un enorme set di dati di profili dei social network per fornire un'ipotesi probabilistica insieme a un fattore di certezza. Supporta anche il filtraggio opzionale attraverso gli ID del paese o della lingua. Migliora di giorno in giorno man mano che vengono aggiunti più profili al set di dati.

È gratuito da usare su http://genderize.io

UNA cosa da considerare è l'utilizzo di uno strumento che tenga conto dei dati demografici, poiché le convenzioni di denominazione si baseranno molto su questo.

Esempio

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
Estensioni del codice - genderize.io/#extensions
philshem

22

Ecco due approcci stravaganti che potrebbero anche non funzionare e probabilmente non funzionerebbero in massa senza violare i termini di una licenza:

  1. Usa l'API di Facebook (di cui non so praticamente nulla, potrebbe non essere nemmeno possibile) per eseguire due ricerche: una per gli utenti di FB di sesso maschile con quel nome e una per le donne. Usa i due numeri per decidere la probabilità di sesso.

  2. Molto più flessibile ma più scalabile, utilizza l'API di Google e cerca il nome più i pronomi specifici del genere e confronta i numeri. Ad esempio, ci sono 592.000.000 di risultati per la ricerca di "Richard his" (non come frase), ma solo 179.000.000 di "Richard her".


A parte il consenso generale sul fatto che un software cerchi di indovinare cose come il sesso da un nome, questa è una risposta algoritmica davvero interessante alla domanda originale. Molto bene.
peSHIr

Grande idea. Probabilmente puoi anche inserire alcune parole nella lingua di un determinato paese per localizzarlo.
Nosredna

Buon punto, Nosrenda ... ovviamente Google ti consente anche di filtrare i risultati della ricerca in base al codice della lingua. Puoi persino rubare la lingua preferita dell'utente dalla richiesta HTTP. L'impostazione della lingua del browser può o meno corrispondere all'etnia del loro nome, ma questa è comunque una tecnica confusa.
richardtallent

2
Ho scoperto che Google è sciovinista: più risultati tornano per gli uomini che per le donne perché più uomini sono su Google. L'API di Facebook è probabilmente molto più rappresentativa.
Chris McCall

6

Dati i tuoi vincoli dichiarati, la tua migliore opzione è riformulare qualunque cosa tu stia scrivendo in modo che sia neutrale rispetto al genere a meno che tu non sappia quale genere vogliono essere chiamati in ogni caso.

Se scrivi in inglese , ricorda che il singolare "loro" va bene dal punto di vista grammaticale come pronome singolare in terza persona neutro rispetto al genere.

Un buon esempio è il titolo di questa domanda. Come è attualmente:

    ... mappare il nome di una persona al suo sesso?

Sarebbe meno imbarazzante se scritto:

    ... mappare il nome di una persona al suo sesso?

Non è del tutto "perfettamente" grammaticale. Anche l'articolo di Wikipedia ammette di essere stato utilizzato, in particolare nel contesto moderno, a causa del disagio di alcuni scrittori con il generico "lui". Non ho un grosso problema con gli scrittori che fanno questo (anche se se la neutralità di genere è davvero importante, preferisco riformulare il costrutto in modo da poter usare pronomi come "uno"), ma chiamiamolo per quello che è.
Ben Collins,

Direi che abbiamo ragione entrambi. Tutta la grammatica, in particolare quella inglese, presenta problemi significativi; ma direi che qualsiasi definizione di "grammatica perfetta" che effettivamente si applica a qualsiasi cosa in inglese si applica anche qui. O il singolare "loro" è perfettamente grammaticale, o niente in inglese lo è :-)
bignose

Da notare, Grammar Girl (autrice Mignon Fogarty) è stata propensa per l'accettazione del singolare "loro" per un po 'di tempo. grammar.quickanddirtytips.com/…
Karen Lopez

4

È anche una cattiva pratica presumere che gli utenti debbano essere maschi o femmine. C'è un numero piccolo ma significativo di persone "intersessuali", la maggior parte delle quali sono vivamente
stufate di non avere una casella da spuntare .. bignose: interessante sul "singolare loro". Non mi rendevo conto che avesse una storia così lunga.



4

Il pacchetto python SexMachine lo farà per te. Dato un nome qualsiasi, ritorna se è maschio, femmina o unisex. Si basa sui dati del programma gender.c di Jorg Michael.


3

L'unica cosa che otterrai provando ad automatizzarlo è un gruppo di utenti insoddisfatti. Da quei dati del censimento:

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

sono tutti nomi che funzionano sia per maschi che per femmine. Se il nome di una ragazza è Robert e tutti, incluso il tuo software, continuano a chiamarla uomo, sarebbe piuttosto incazzata.


25
Supponiamo che esista una ragazza di nome Mark (sentiti libero di indicarne una). Se fossi in lei sarei incazzato con i miei genitori e non con il software di Chas ...
Darko Z

6
E se il software non la chiamasse mai uomo, ma presentasse la versione "maschile" dell'interfaccia utente? O si è concentrata sugli uomini in un aggregato su un set di dati utilizzato per sviluppare materiale di marketing? Potrebbe anche non accorgersene.
Chris McCall

Per molti di questi nomi ottengo una certezza del 100% sulla base dei dati di 500-1200 profili Facebook del nome. api.genderize.io/?name=robert api.genderize.io/?name=andrew api.genderize.io/?name=john
Stromgren

3

Sebbene i database siano probabilmente la soluzione più pratica, se vuoi divertirti potresti provare a scrivere una rete neurale (o usare una libreria di rete neurale) che prenda il nome e restituisca una di queste 3 opzioni (F, M, A ).

Puoi addestrarlo utilizzando i set di dati che esistono nei database suggeriti da altre risposte, così come con qualsiasi altro dato che hai.

Questa soluzione consentirebbe di gestire nomi non specificatamente classificati in precedenza e di gestire anche lingue diverse. Potresti anche voler passare la lingua (se la conosci) come input alla rete neurale.

Non so se posso dire che le reti neurali (o qualsiasi altro apprendimento automatico) farebbero un buon lavoro di categorizzazione.


3

Dipende dalla cultura / regione: prendi Andrea, per gli italiani è solo maschile, per la Svezia è un nome femminile mentre Andreas è per gli uomini; Shawn è ambiguo in inglese. Se una lingua ha una declinazione, come il latino o il russo, le lettere finali cambieranno in base alle regole grammaticali,

Un'altra fonte di ambiguità sono i cognomi identici ai nomi personali.

Secondo me è impossibile risolvere in generale.


Se OP avesse una variabile complementare che indica cultura di origine, luogo di nascita, nazionalità, qualunque cosa sarebbe utile. Ma ha detto che non lo fa, quindi devi solo fare un'ipotesi statisticamente informata basata su aggregati.
smci

3

L'idea chiaramente non funzionerà nella maggior parte delle lingue.

Tuttavia, se potessi dire in anticipo la nazionalità potresti avere più fortuna. Nella maggior parte delle lingue slave (es. Russo, polacco, bulgaro) potresti tranquillamente presumere che tutti i cognomi che finiscono con -va -cha -ska (-a in generale sono femminili) mentre -v -ch -shi sono maschili.

Infatti ogni cognome ha forma femminile e maschile a seconda del finale. Gli stessi nomi usati in altri paesi (es. USA) potrebbero però usare solo la forma maschile.

Lo stesso si potrebbe dire per i nomi (-a -ya sono femminili) ma non è accurato al 100%.

Ma in generale difficilmente otterresti una libreria sufficientemente accurata.


com'è un cognome maschile o femminile?
Simon_Weaver

2
@Simon_Weaver Il cognome di mio padre è Slavchev e il cognome di mia madre è Slavcheva. È infatti lo stesso cognome che viene scritto in modo diverso per uomini e donne. Questo è comune per i nomi slavi.
Dimitar Slavchev


2

La directory Z (su vettrasoft.com) ha una funzione in linguaggio C, funziona in questo modo:

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;
    }
}

è basato su database, la tabella ha qualcosa come 10.000+ nomi credo, ma è necessario scaricare e installare la directory z (include molti altri elementi topografici come paesi, punti di riferimento geografici, aeroporti, stati, prefissi, codici postali, ecc. insieme a funzioni e oggetti c ++ per accedere ai dati). Tuttavia i nomi sono molto orientati alla lingua inglese. La tabella è un work in progress e progressivamente aggiornato.


1

Le mappe nome-sesso possono funzionare, ma nei paesi multiculturali è più come indovinare. Posso farti un esempio: Marian in polacco è un tipico nome maschile, mentre lo stesso nome in Gran Bretagna è un nome femminile. Nell'era delle persone che immigrano in tutto il mondo, non sono sicuro che tale database sarebbe molto accurato. In bocca al lupo!


1
No, ma fintanto che è migliore del 50% è meglio trattare i nomi come sempre maschili.
Chas. Owens

@Chas, quindi perché aggrapparsi a quella falsa dicotomia? Hai la possibilità di neutralità di genere.
bignose

abbiamo anche 2 famosi politici che hanno un secondo nome "maria" - "mary" che sarebbe classificato nel tuo database come femminile. solo per i lol.
Zalew

@JZ Sto parlando del nome non del cognome (o viceversa per le culture che fanno il contrario).
Chas. Owens

@ bignose, il linguaggio neutro rispetto al genere sembra strano ed è contorto, preferirei produrre qualcosa che sia più bello quando posso. Questo non viene comunicato alle persone (se esistono), quindi non c'è possibilità di offesa, non so perché le persone passano così tanto tempo a discuterne invece di fornire collegamenti a database se conoscono un bene uno.
Chas. Owens

1

Alcune culture hanno nomi unisex, come il mio. Cosa fai allora? Penso che la risposta sia chiara e semplice - non dare per scontato - potresti offendere. Basta chiedere se è necessario, altrimenti la neutralità di genere.


5
La domanda ha già risposto alla tua risposta: alex => "A", #ambiguous. Che la domanda abbia o meno una risposta, la tua risposta non lo è.
Programmatore Windows

Non sono d'accordo - Il punto è che tutti i nomi sono potenzialmente ambigui.
Preet Sangha

Se i nomi sono unisex, sarebbero tutti classificati come A e sceglierei la neutralità di genere, ma se un nome è prevalentemente maschile o femminile posso usare un linguaggio molto più naturale.
Chas. Owens

Vedo qual è il tuo ragionamento ma ti rimando a quest'ultimo commento.
Preet Sangha

3
Ma se vedi un "Preet" su StackOverflow, probabilmente è un maschio.
Nosredna

1

Bene, non più. IBM ha brevettato quell'idea tempo fa.

Quindi, se stai cercando un qualsiasi livello di flessibilità (qualcosa di diverso da un elenco di nomi), dovrai (sussultare!) Chiedere all'utente, o semplicemente pagare IBM per i diritti :)

In ogni caso, tale rilevamento automatico è fastidioso per molte persone che hanno nomi ambigui di genere, o anche solo genitori. Non rendiamo tutto più difficile per loro.


3
Sembra che IBM abbia brevettato scegliendo un avatar in base al nome. Fortunatamente questa non è una delle applicazioni per cui intendo utilizzarlo, quindi non sto violando il loro brevetto. Per quanto riguarda la domanda all'utente, ciò presuppone che io abbia utenti a cui chiedere anziché un elenco di nomi. Ho detto più volte che non ci sono utenti, interazioni e nessun messaggio che va alle persone a cui appartengono i nomi.
Chas. Owens

1

Non è gratuito, ma questa è una bella libreria che ho usato prima:

NetGender per .NET ti consente di creare rapidamente e facilmente la verifica del nome, l'analisi e la determinazione del sesso nelle tue applicazioni personalizzate. Verificare accuratamente se un determinato campo contiene una persona o una società valida. NetGender utilizza un dizionario dei nomi di oltre 100.000 etnicamente diversificato in combinazione con un dizionario dei nomi di società di oltre 8.000 per garantire una determinazione precisa del sesso.

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


1

È interessante che tu dica di avere la data di nascita. Questo potrebbe aiutare. Ho visto database di storie di popolarità dei nomi.

Nel film Splash (1984), era divertente che il personaggio di Darryl Hannah scelse il nome "Madison" da un cartello stradale di Madison Avenue, perché ovviamente "Madison" non è il nome di una ragazza.

24 anni dopo, Madison è il quarto nome più popolare per le bambine!


Cronologia dei nomi dal governo. (Guarda il triste declino di Mary negli ultimi 100 anni.)


Quando scrivevo alla Casa Bianca da bambino, Richard Nixon (o forse un segretario) mi ha risposto con alcune foto del luogo storico, indirizzate a "Miss Rhett Anderson". "Signorina Rhett?" Non ha nemmeno senso! Possiamo VERAMENTE non dire la differenza tra Rhett di Clark Gable (con i baffi, in Via col vento!) E Scarlett di Vivian Lee? Non lo perdonerò mai, nonostante l'assicurazione di Neil Young che "anche Richard Nixon ha un'anima".


Buon punto, la data entra sicuramente in gioco qui.
Chas. Owens

1

Sono abbastanza sicuro che nessun servizio di questo tipo potrebbe esistere con un livello di accuratezza accettabile. Ecco i problemi che penso siano insormontabili:

  • Ci sono molti nomi sia per uomini che per donne.
  • Ci sono molti nomi diversi in questo mondo, anche se consideri un solo paese.
  • C'è la questione "A Boy Named Sue", sollevata in modo così eloquente da Johnny Cash :-)

2
Un buon database avrebbe la percentuale maschio / femmina per i nomi androgini per regione e quando è stato prelevato il campione, ecc.

E le lingue come il giapponese? Sto imparando il giapponese, quindi potrei sbagliarmi qui, ma i nomi <-> Kanji non sono relazioni dirette, ci sono stati giochi di parole e incomprensioni su "cosa" kanji compone il nome di una persona.
Pharaun


1

Puoi dare un'occhiata al mio progetto di rilevamento del genere Python https://github.com/muatik/genderizer

Cerca di rilevare i sessi degli autori cercando i loro nomi e / o il testo di esempio (ad esempio tweet) di loro.

E supporta anche mongodb, memcached per le prestazioni.


Sembra buono ma se hai bisogno che sia consapevole del "paese di origine" vedi gender.c o genderize.io sotto
HaveAGuess


0

IMHO, è generalmente una cattiva idea determinare il sesso dal nome di un individuo. Molti nomi sono intersessuali (buon dolore, è anche solo una parola ?? :-), e possono anche essere un sesso in una cultura e un altro in un'altra.

Alcuni stupidi esempi, solo alcuni che mi sono venuti in mente (dalla mia parte del mondo, CE)

Vanja - femmina, nei paesi orientali da qui, principalmente maschio
Alex - intersessuale (abbreviazione di Sandra, femmina, e Sandro, maschio)
Robin - nelle culture occidentali, può essere entrambe le cose

In alcune parti del mondo, il sesso di una persona può essere determinato osservando come finisce il nome. Ad esempio, Marija, Sandra, Ivana, Petra, Sara, Lucija, Ana - puoi vedere che la maggior parte di questi nomi femminili finisce con "ja" o "ra". Ci sono anche altri esempi.

Tuttavia, penso che sia meglio chiedere all'utente di fare sesso.


9
"Tuttavia, penso che sia meglio solo chiedere all'utente di fare sesso." - Sono d'accordo, sarebbe molto meglio che pubblicare commenti su Stack Overflow.
Programmatore Windows

2
UPS. Okeey, non è venuto fuori bene :-)
Rook

Era meglio prima della modifica :-)
Programmatore Windows


0

Non conosco tale servizio. Tuttavia, puoi forse trovare i dati che stai cercando. Il governo degli Stati Uniti pubblica dati sulla prevalenza dei nomi e sul sesso della persona a cui sono legati. La Social Security Administration ha una pagina del genere , e il censimento può anche essere, ma non ho avuto il tempo di guardare. Forse altri governi mondiali fanno cose simili.


0

Tuttavia, non conosco alcun servizio del genere ..

In alcuni paesi (ad es. La Germania) il nome che una persona può essere data è limitato dalla legge - forse ci sono alcune pubblicazioni su questo argomento, che potrebbero essere raccolte (ma al momento non ne conosco nessuna).


0

Quello che farei è creare un hack che prenda il nome e lo cerchi contro l'API di Facebook. Quindi esamina gli utenti risultanti e conta quanti di loro sono donne o uomini. È quindi possibile restituire una percentuale. Non più così insormontabile. :)


-2

Chiedi alle persone e se sono gentili ti daranno la loro 'M' o 'F', e se non lo sono allora dai loro una 'A'.


2
Non sono in comunicazione con le persone di cui voglio mappare i nomi.
Chas. Owens
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.