Alguém conhece uma boa biblioteca para mapear o nome de uma pessoa de acordo com seu gênero? [fechadas]

90

Estou procurando uma biblioteca ou banco de dados que possa fornecer adivinhações sobre se uma pessoa é do sexo masculino ou feminino com base em seu nome ou apelido. Algo como

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

Estou procurando algo que ofereça suporte a outros nomes que não sejam em inglês (como japonês, indiano, etc.).

Antes que eu obtenha outra resposta do tipo "você vai ofender as pessoas presumindo que é sexo / gênero", deixe-me ser claro, meu aplicativo não interage com ninguém. Ele não envia e-mails nem contata ninguém de forma alguma. Não há usuários para perguntar. Em muitos casos, a pessoa em questão está morta e as únicas informações que tenho são o nome, a data de nascimento e a data da morte. O motivo pelo qual quero saber o sexo do indivíduo é tornar a gramática da saída mais agradável e ajudar em possíveis pesquisas que possam ocorrer posteriormente.

Chas. Owens
fonte
33
Uau ... parece que todos estão respondendo à pergunta "devo fazer isso", em vez da pergunta "como faço isso?" Não é surpreendente, apenas interessante.
bsneeze
9
Na verdade, acho que essa é uma ótima pergunta. Se você acessar um site e 90% das vezes ele descobrir o seu gênero, posso ver o benefício. Gostaria que minha TV fizesse o mesmo. Eu estava assistindo a reprises de King of the Hill em um vôo recente e a cada 3 minutos havia um anúncio de "massageadores pessoais".
Uri
6
@mP Uau, que jeito de adivinhar o sexo para tornar a gramática mais agradável e chegar ao perfil racial.
Chas. Owens
2
chas, não é o que as pessoas não querem dar a você por uma questão moral, é como se não fizesse sentido no início, então você está pedindo uma solução para o fracasso. além disso, você menciona outros nomes que não em inglês e, em referências interculturais, fica ainda mais complicado. para mim, não é possível.
zalew
2
Como você pode saber se um nome é masculino ou feminino? Alex pode ser abreviação de Alexander (um homem) ou Alexandra (uma mulher). Eu conheço um Micah que é homem e outro que é mulher. E quanto a nomes estrangeiros?
Gabe

Respostas:

66

O gênero de um nome é algo que não pode ser inferido programaticamente no caso geral. Você precisa de um banco de dados de nomes. Aqui está um banco de dados de nomes gratuito do US Census Bureau .

EDITAR : O link para o nome de 2010 está morto, mas existem links de trabalho e bibliotecas nos comentários.

Ayman Hourieh
fonte
2
Isso é ótimo. Parece ser exatamente o que o solicitante precisa. Nomes ambíguos podem ter o gênero "adivinhado" com base na frequência de Masculino versus frequência de Feminino.
stalepretzel
1
Eu construí uma biblioteca para isso usando os dados do Censo e funciona muito bem! Aplicações potenciais: análise, escolha de gênero de voz IVR.
Chris McCall
9
Aqui está o nome -> gênero dos dados do censo como python dict: raw.github.com/Bemmu/gender-from-name/master/gender.py
Bemmu
3
O link original está morto, mas o censo ainda mantém a lista. Uma versão específica da década de 1990 (não sei por quê) está aqui: census.gov/genealogy/www/data/1990surnames/names_files.html
Chipmonkey
2
22 MB de nomes de bebês nos Estados Unidos com gênero por ano de nascimento: ssa.gov/oact/babynames/limits.html (link válido em julho de 2015)
Dylan Hogg
70

gender.c é um código aberto programa C de que faz um bom trabalho. Ele vem com dados de 44568 nomes de todo o mundo. Há uma boa documentação e uma descrição do formato do arquivo (basicamente texto simples), portanto, não deve ser difícil lê-lo em seu próprio aplicativo.

Aqui está o que o autor diz:

Algumas palavras sobre qualidade de dados

O dicionário de primeiros nomes foi preparado com o máximo cuidado. Por exemplo, os nomes turco, indiano e coreano neste dicionário foram classificados de forma independente por vários falantes nativos. Tive também o cuidado especial de listar apenas os nomes que podem ser encontrados atualmente.

A lição disso?

Quaisquer modificações devem ser feitas com muito cuidado (e também devem seguir a classificação exigida pelo algoritmo de pesquisa). Por exemplo, sabendo que "Sascha" é um nome de menino na Alemanha, o autor nunca presumiu que o inglês "Sasha" fosse um nome de menina. Sabendo que "Jan" é um nome masculino na Alemanha, nunca assumi que também fosse uma abreviatura em inglês de "Janet". Outro caso em questão é o nome "Esra". Este é um nome de menino na Alemanha, mas nome de menina na Turquia.

O programa calcula a probabilidade de o nome ser masculino ou feminino. Pode fazê-lo apenas com o nome como entrada ou com o nome e país de origem, o que dá resultados significativamente melhores.

Você pode baixá-lo do site da revista de informática alemã c't 40 000 Namen . O artigo está em alemão, mas não se preocupe, toda a documentação é em inglês. Aqui está o link direto do ftp 0717-182.zip se você não estiver interessado no artigo. O arquivo zip contém o código-fonte, um executável do Windows, o banco de dados e a documentação.

Ludwig Weinzierl
fonte
Isso é maravilhoso, obrigado.
Dale Athanasias
Veja aqui o port python - pypi.python.org/pypi/SexMachine
philshem
33

"Eu te digo, a vida não é fácil para um garoto chamado 'Sue'."

... Então, por que tornar mais difícil? Se precisar saber o sexo é só perguntar ... Do contrário, não se preocupe.

Shog9
fonte
15
@Chas: mesmo que você consiga acertar 80% das vezes, isso ainda irritará duas em cada dez pessoas que usam seu software. Não é tão bom ... Eu entendo a motivação, mas é melhor você reformular suas mensagens de forma que sejam neutras em termos de gênero.
Shog9
2
Eu me pergunto se mais alguém se lembra de "Pat" do SNL.
Erickson
8
Relendo isto, estou parecendo muito enfadonho ... Não quero deixar de lado a sua ideia, acho que é interessante ... Mas também muito arriscada. Eu costumava trabalhar como telemarketing, e não importa quantos nomes você conheça, não importa o quão bom você se torne em reconhecer vozes, você ainda acaba achando errado às vezes ... e nunca é divertido. E assim, é algo gostaria de evitar, a menos que haja um grande, grande recompensa para o gerenciamento de adivinhar-lo direito .
Shog9
3
Eu aceitaria o conselho de Shog9. A menos que seu aplicativo esteja em outros idiomas além do inglês, pode ser mais fácil usar apenas pronomes neutros de gênero - por exemplo, eles, um, ele / ela, etc.
Calvin
11
O nome da minha namorada é Kevan. Ela tem um número suficiente de pessoas que adivinham erroneamente seu gênero a partir de seu nome, ela não precisa de computadores para fazer isso. Deve-se ter cuidado com a criação de uma entrada de banco de dados que declare o sexo de alguém com base na suposição de um computador; as pessoas que olham para isso podem presumir que é fornecido pela própria pessoa e ficam realmente confusas quando suas suposições se revelam erradas (em oposição a apenas um pouco confusas com base apenas no nome).
Brian Campbell
29

Eu construí uma API gratuita que fornece uma estimativa probabilística sobre o sexo com base no primeiro nome. Em vez de usar qualquer uma das abordagens mencionadas acima, eu uso um grande conjunto de dados de perfis de redes sociais para fornecer uma estimativa probabilística junto com um fator de certeza. Ele também oferece suporte a filtragem opcional por ID de país ou idioma. Está ficando melhor a cada dia à medida que mais perfis são adicionados ao conjunto de dados.

É grátis para usar em http://genderize.io

UMA coisa que você deve considerar é o uso de uma ferramenta que leve em conta a demografia, pois as convenções de nomenclatura dependem muito disso.

Exemplo

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"}
Stromgren
fonte
2
Extensões de código - genderize.io/#extensions
philshem
22

Aqui estão duas abordagens excêntricas que podem nem funcionar, e provavelmente não funcionariam em massa sem violar os termos de uma licença:

  1. Use a API do Facebook (da qual não sei praticamente nada, talvez nem seja possível) para realizar duas pesquisas: uma para usuários do FB do sexo masculino com esse primeiro nome e outra para mulheres. Use os dois números para decidir a probabilidade de gênero.

  2. Muito mais flexível, mas mais escalonável, use a API do Google e pesquise o nome mais os pronomes específicos de gênero e compare os números. Por exemplo, existem 592 milhões de resultados para a pesquisa de "Richard his" (não como uma frase), mas apenas 179 milhões para "Richard her".

richardtallent
fonte
Além do consenso geral em ter um software tentando adivinhar coisas como sexo a partir de um nome, esta é uma resposta algorítmica muito legal para a pergunta original. Bem feito.
peSHIr
Boa ideia. Você provavelmente também pode adicionar algumas palavras no idioma de um determinado país para localizá-lo.
Nosredna
Bom ponto, Nosrenda ... claro, o Google também permite que você já filtre os resultados da pesquisa por código de idioma. Você pode até roubar o idioma preferido do usuário na solicitação HTTP. A configuração do idioma do navegador pode ou não corresponder à etnia do nome, mas essa é uma técnica confusa de qualquer maneira.
richardtallent
2
Descobri que o Google é chauvinista: mais resultados voltam para os homens do que para as mulheres porque há mais homens no Google. A API do Facebook é provavelmente muito mais representativa.
Chris McCall
6

Dadas suas restrições declaradas, sua melhor opção é reformular tudo o que você está escrevendo para ser neutro em relação ao gênero, a menos que você saiba que gênero deseja ser chamado em cada caso.

Se escrever em inglês , lembre-se do singular “eles” é gramaticalmente adequado como um pronome de terceira pessoa do singular com gênero neutro.

Um bom exemplo é o título desta pergunta. Como está atualmente:

    … Mapear o nome de uma pessoa com seu sexo?

Isso seria menos estranho se escrito:

    … Mapear o nome de uma pessoa com seu sexo?
nariz grande
fonte
Não é totalmente "perfeitamente" gramatical. Até mesmo o artigo da Wikipedia admite que tem sido usado, principalmente no contexto moderno, como resultado do desconforto de alguns escritores com o genérico "ele". Eu não tenho um grande problema com escritores que fazem isso (embora se a neutralidade de gênero for realmente importante, eu prefiro reformular a construção para que possa usar pronomes como "um"), mas vamos chamá-lo como é.
Ben Collins
Eu diria que nós dois estamos certos. Toda a gramática, especialmente a gramática inglesa, tem problemas significativos; mas eu diria que qualquer definição de “gramática perfeita” que realmente se aplica a qualquer coisa em inglês se aplica aqui também. Ou o singular “eles” é perfeitamente gramatical, ou nada em inglês é :-)
bignose
Digno de nota, Grammar Girl (autor Mignon Fogarty) tem se inclinado para a aceitação do singular "eles" há algum tempo. grammar.quickanddirtytips.com/…
Karen Lopez
4

Também é uma prática ruim presumir que os usuários devem ser homens ou mulheres. Há um número pequeno, mas significativo, de pessoas "intersex", a maioria das quais está farta de não ter uma caixa para marcar ..
bignose: interessante no "singular eles". Não sabia que tinha uma história tão longa.

Karl
fonte
4

Não é um serviço, mas um pequeno aplicativo com um banco de dados:
http://www.codeproject.com/KB/cpp/genderizer.aspx

E esta ferramenta está em alemão:
http://www.faq-o-matic.net/2011/06/01/zu-einem-vornamen-das-geschlecht-finden/

E outro em VB:
http://www.vbarchiv.net/tipps/tipp_1925-geschlecht-anhand-des-vornamens-ermitteln.html

Acho que em combinação com algumas listas de "Nome mais usado em 2011", você deve ser capaz de construir algo decente.

Remy
fonte
4

O pacote python SexMachine fará isso por você. Dado qualquer nome, ele retornará se for masculino, feminino ou unissex. Ele se baseia nos dados do programa gender.c , de Jorg Michael.

jm_tagarro
fonte
3

A única coisa que você obterá ao tentar automatizá-lo é um bando de usuários insatisfeitos. Dos dados do censo:

JAMES, JOHN, ROBERT, MICHAEL, WILLIAM, DAVID, RICHARD, CHARLES, JOSEPH, THOMAS, CHRISTOPHER, DANIEL, PAUL, MARK, DONALD, GEORGE, KENNETH, STEVEN, EDWARD, BRIAN, RONALD, ANTHONY, KEVIN, JEVIN, GARY, TIMOTHY, JOSE, LARRY, JEFFREY, FRANK, SCOTT, ERIC, STEPHEN, ANDREW, RAYMOND, GREGORY, JOSHUA, JERRY, DENNIS, WALTER, PATRICK, PETER, HAROLD, HENRY, CARL, ARTHUR, RYAN, JOE, JOE, JOE, JOE, JACK, ALBERT, JUSTIN, TERRY, GERALD, KEITH, SAMUEL, WILLIE, LAWRENCE, ROY, BRANDON, ADAM, FRED, BILLY, LOUIS, JEREMY, AARON, RANDY, EUGENE, CARLOS, RUSSELL, BOBBY, VICTOR, MARTIN, JEREMY, 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, CHRISTIAN, LONNIE, CODY, JULIO, KELLY, JIMMIE, JORDAN, JAIME, CASEY, JOHNNIE, SIDNEY, JULIAN, DARYL, VIRGIL, MARSHALL, PERRY, MARION, TRACY, RENE, FREDDIE, EVAN, JULIAN, DARYL, VIRGIL, MARSHALL, PERRY, MARION, TRACY, RENE, FREDDIE, EVANA, JANAE, JOE, JOE DONNIE, SHANNON, ANGELO, SHAUN, LYNN, CAMERON, BLAKE, KERRY, JEAN, IRA, RUDY, BENNIE, ROBIN, LOREN, NOEL, DEVIN, KIM, GUADALUPE, CARROLL, SAMMY, MARTY, TAYLOR, ELLIS, LAURALLOR, ELLIS, DREW, JODY, FRANKIE, PAT, MERLE, TERRELL, DARNELL, TOMMIE, TOBY, VAN, COURTNEY, JAN, CARY, SANTOS, AUBREY, MORGAN, LOUIE, STACY, MICAH, BILLIE, LOGAN, DEMETRIUS, ROBBIE, ROBBIE, MICKEY, DEVON, ASHLEY, CAREY, FILHO, 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, NÚMEROS, CLAIR, BERNIE, JOAN, DOMINIQUE, TRISTALE, JAME, LAVERNE, ALVA, STEVIE, ERIN, AUGUSTINE, YOUNG, JOHNIE, ARIEL, DUSTY, LINDSEY, TRACEY, SCOTTIE, SANDY, SYDNEY, GAIL, DORIAN, LAVERN, REFUGIO, MARFIM, 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 JEWELAYCLAIR, BERNIE, JOAN, DOMINIQUE, TRISTAN, JAME, GALE, LAVERNE, ALVA, STEVIE, ERIN, AUGUSTINE, YOUNG, JOHNIE, ARIEL, DUSTY, LINDSEY, TRACEY, SCOTTIE, SANDY, SYDNEY, GAIL, DORIAN, LAVERN, REFUGIO, MARFIM, 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, MARFIM, 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

são nomes que funcionam tanto para homens quanto para mulheres. Se o nome de uma garota for Robert e todos, incluindo o seu software, continuarem a chamá-la de homem, ela ficará bastante chateada.

nitromaster101
fonte
25
Vamos supor que exista uma garota chamada Mark (sinta-se à vontade para apontar uma). Se eu fosse ela, ficaria chateado com meus pais e não com o software Chas ...
Darko Z
6
E se o software nunca a chamar de homem, mas apresentar a versão "masculina" da IU? Ou ela está agrupada com os homens em um conjunto de dados usados ​​para desenvolver material de marketing? Ela pode nem notar.
Chris McCall
Para muitos desses nomes, tenho 100% de certeza com base em dados de 500-1200 perfis no Facebook do nome dado. api.genderize.io/?name=robert api.genderize.io/?name=andrew api.genderize.io/?name=john
Stromgren
3

Embora os bancos de dados sejam provavelmente a solução mais prática, se você quiser se divertir, talvez você possa tentar escrever uma rede neural (ou usar uma biblioteca de rede neural) que recebe o nome e produz uma dessas 3 opções (F, M, A )

Você pode treiná-lo usando os conjuntos de dados que existem nos bancos de dados sugeridos por outras respostas, bem como com quaisquer outros dados que você tenha.

Essa solução permitiria que você lide com nomes não categorizados especificamente anteriormente e também com idiomas diferentes. Você pode querer passar o idioma (se o souber) como uma entrada para a rede neural também.

Não sei se posso dizer que as redes neurais (ou qualquer outro aprendizado de máquina) fariam um bom trabalho de categorização.

queijos
fonte
3

Depende da cultura / região: tome Andrea, para italianos é apenas masculino, para Suécia é um nome feminino enquanto Andreas é para homens; Shawn é ambíguo em inglês. Se um idioma tiver declinação, como latim ou russo, as letras finais mudarão de acordo com as regras gramaticais,

Outra fonte de ambigüidades são os nomes de família idênticos aos nomes pessoais.

Na minha opinião é impossível resolver em geral.

Giulio Vian
fonte
Se OP tivesse uma variável companheira indicando cultura de origem, local de nascimento, nacionalidade, o que fosse útil. Mas ele disse que não, então você só precisa fazer uma estimativa informada estatisticamente com base em agregados.
smci
3

A ideia claramente não funcionará na maioria dos idiomas.

Porém, se você pudesse dizer a nacionalidade de antemão, teria mais sorte. Na maioria das línguas eslavas (por exemplo, russo, polonês, búlgaro) você pode assumir com segurança que todos os sobrenomes terminando com -va -cha -ska (-a em geral são femininos) enquanto -v -ch -shi são masculinos.

Na verdade, qualquer sobrenome tem forma feminina e masculina dependendo da terminação. Os mesmos nomes usados ​​em outros países (por exemplo, EUA) podem usar apenas a forma masculina.

O mesmo poderia ser dito para os primeiros nomes (-a -ya são femininos), mas não é 100% preciso.

Mas, em geral, dificilmente você obteria uma biblioteca suficientemente precisa.

Dimitar Slavchev
fonte
como é um sobrenome masculino ou feminino?
Simon_Weaver
2
@Simon_Weaver O sobrenome do meu pai é Slavchev, e o sobrenome da minha mãe é Slavcheva. Na verdade, é o mesmo sobrenome que é escrito de forma diferente para homens e mulheres. Isso é comum para nomes eslavos.
Dimitar Slavchev
2

Eu não usei, mas a IBM tem uma biblioteca Global Name Analytics (por um preço!) Que parece bastante abrangente.

Altan
fonte
2

O diretório Z (em vettrasoft.com) tem uma função de linguagem C, funciona mais ou menos assim:

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

é conduzido por banco de dados, a tabela tem algo como mais de 10.000 nomes, eu acho, mas você precisa baixar e instalar o diretório z (inclui muitos outros itens topográficos como países, pontos de referência geográficos, aeroportos, estados, códigos de área, códigos postais, etc. junto com funções e objetos c ++ para acessar os dados). No entanto, os nomes são muito orientados para a língua inglesa. A tabela é um trabalho em andamento e atualizada gradualmente.

Gorth
fonte
1

Mapas de nome e gênero podem funcionar, mas em países multiculturais é mais parecido com adivinhação. Posso dar um exemplo: Marian em polonês é um nome masculino típico, enquanto o mesmo nome na Grã-Bretanha é feminino. Na era das pessoas imigrando para todo o mundo, não tenho certeza se esse banco de dados seria muito preciso. Boa sorte!

Michal Rogozinski
fonte
1
Não, mas desde que seja melhor que 50% é melhor tratar os nomes como sempre masculinos.
Chas. Owens
@Chas, então por que se apegar a essa falsa dicotomia? Você tem a opção de neutralidade de gênero.
bignose
temos até 2 políticos famosos que têm um segundo nome 'maria' - 'mary' que seria classificado em seu banco de dados como feminino. apenas para os lols.
zalew
@JZ Estou falando do primeiro nome, não do sobrenome (ou vice-versa para as culturas que fazem o contrário).
Chas. Owens
@bignose, a linguagem de gênero neutro parece estranha e complicada, eu prefiro produzir algo que pareça melhor quando eu puder. Isso não é comunicado aos indivíduos (se é que existem), então não há chance de ofensa, não sei por que as pessoas estão gastando tanto tempo discutindo isso em vez de apenas fornecer links para bancos de dados se souberem de uma boa 1.
Chas. Owens
1

Algumas culturas têm nomes unissex - como o meu. O que fazes, então? Acho que a resposta é simples e direta - não presuma - você pode ofender. Basta perguntar se é necessário, caso contrário, a neutralidade de gênero.

Preet Sangha
fonte
5
A pergunta já respondeu à sua resposta: alex => "A", #ambíguo. Quer a pergunta tenha uma resposta ou não, sua resposta não é.
Programador do Windows
Eu discordo - meu ponto é que todos os nomes são potencialmente ambíguos.
Preet Sangha
Se os nomes fossem unissex, todos seriam classificados como A e eu optaria pela neutralidade de gênero, mas se um nome for predominantemente masculino ou feminino, posso usar uma linguagem muito mais natural.
Chas. Owens
Eu vejo qual é o seu raciocínio, mas remeto-vos para o último comentário.
Preet Sangha
3
Mas se você vir um "Preet" no StackOverflow, provavelmente é um homem.
Nosredna
1

Bem, não mais. A IBM patenteou essa ideia há algum tempo.

Portanto, se você estiver procurando por qualquer nível de flexibilidade (algo diferente de uma lista de nomes), você terá que (suspiro!) Perguntar ao usuário ou simplesmente pagar à IBM pelos direitos :)

Em qualquer caso, essa autodetecção é irritante para muitas pessoas que têm nomes ambíguos em termos de gênero, ou mesmo apenas pais maldosos. Não vamos tornar isso mais difícil para eles.

Ifaraone
fonte
3
Parece que a IBM patenteou a escolha de um avatar com base no nome. Felizmente, esse não é um dos aplicativos para os quais pretendo usar isso, então não estou violando sua patente. Quanto a perguntar ao usuário, isso pressupõe que eu tenha usuários para perguntar, em vez de uma lista de nomes. Eu disse várias vezes que não há usuários, nenhuma interação e nenhuma mensagem indo para as pessoas a quem os nomes pertencem.
Chas. Owens
1

Não é grátis, mas esta é uma ótima biblioteca que usei antes:

O NetGender para .NET permite que você crie, de forma rápida e fácil, Verificação de Nome, Análise e Determinação de Sexo em seus aplicativos personalizados. Verifique com precisão se um determinado campo contém um indivíduo ou empresa válida. O NetGender usa um Dicionário de Nomes com mais de 100.000 etnias diversas em combinação com um Dicionário de Nomes de Empresa de mais de 8.000 para garantir a determinação precisa do gênero.

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

Richard West
fonte
1

É interessante que você diga que tem data de nascimento. Isso pode ajudar. Já vi bancos de dados de histórias de popularidade de nomes.

No filme Splash (1984), é engraçado que o personagem de Darryl Hannah escolha o nome "Madison" em uma placa da Madison Avenue, porque obviamente "Madison" não é um nome de menina.

24 anos depois, Madison é o quarto nome mais popular para bebês do sexo feminino!


História de nomes do governo. (Verifique o triste declínio de Maria nos últimos 100 anos.)


Quando escrevi para a Casa Branca quando criança, Richard Nixon (ou, talvez um secretário) respondeu-me com algumas fotos do local histórico, endereçadas à "Srta. Rhett Anderson". "Senhorita Rhett?" Nem faz sentido! Será que REALMENTE não podemos dizer a diferença entre Rhett de Clark Gable (com um bigode, em E o vento levou!) E Scarlett de Vivian Lee? Jamais o perdoarei, apesar da garantia de Neil Young de que "até Richard Nixon tem alma".

Nosredna
fonte
Bom ponto, a data definitivamente entra em jogo aqui.
Chas. Owens
1

Tenho certeza de que nenhum serviço desse tipo poderia existir com um nível aceitável de precisão. Aqui estão os problemas que considero intransponíveis:

  • Existem muitos nomes que são para homens e mulheres.
  • Existem muitos nomes diferentes neste mundo, mesmo se você considerar apenas um país.
  • Existe a questão "A Boy Named Sue", levantada tão eloquentemente por Johnny Cash :-)
Steve McLeod
fonte
2
Um bom banco de dados teria a porcentagem de masculino / feminino para nomes andróginos por região e quando a amostra foi coletada etc.
E quanto a idiomas como o japonês? Estou aprendendo japonês, então posso estar errado aqui, mas nomes <-> Kanji não são uma relação direta, houve trocadilhos e mal-entendidos sobre "o que" kanji compõe o nome de uma pessoa.
Pharaun de
1

Você pode dar uma olhada no meu projeto de detecção de gênero python https://github.com/muatik/genderizer

Ele tenta detectar os gêneros dos autores procurando seus nomes e / ou texto de amostra (por exemplo, tweets) deles.

E também suporta mongodb, memcached para desempenho.

Muatik
fonte
Parece bom, mas se você precisar que seja "país de origem", consulte gender.c ou genderize.io abaixo
HaveAGuess
0

Este não é realmente um problema de programação - trata-se de obter uma tabela de probabilidade.

AFAIK não existem bancos de dados públicos em formas destiladas. Você pode construir isso a partir dos dados do censo ou comprar os dados de alguém.

Por exemplo, é alguém que vende a tabela de probabilidade para o Canadá .

Uri
fonte
0

IMHO, geralmente é uma má ideia determinar o sexo a partir do nome de um indivíduo. Muitos nomes são intersexuais (meu Deus, isso é mesmo uma palavra ?? :-), e também podem ser de um sexo em uma cultura e de outro em outra.

Alguns exemplos estúpidos, apenas alguns que me vieram à mente (da minha parte do mundo, CE)

Vanja - mulher, daqui a países orientais, principalmente homem
Alex - intersex (abreviação de Sandra, mulher, e Sandro, homem)
Robin - nas culturas ocidentais, pode ser ambos

Em algumas partes do mundo, o sexo de uma pessoa pode ser determinado observando-se como o nome termina. Por exemplo, Marija, Sandra, Ivana, Petra, Sara, Lucija, Ana - você pode ver que a maioria desses nomes femininos termina em "ja" ou "ra". Existem outros exemplos também.

Mesmo assim, acho melhor apenas pedir sexo ao usuário.

Torre
fonte
9
"Mesmo assim, acho melhor apenas pedir sexo ao usuário." - Eu concordo, isso seria muito melhor do que postar comentários no Stack Overflow.
Programador do Windows
2
Ups. Ok, isso não saiu direito :-)
Rook
Era melhor antes de editar :-)
Programador do Windows
0

Não conheço tal serviço. No entanto, talvez você possa encontrar os dados que procura. O governo dos EUA publica dados sobre a prevalência de nomes e o sexo da pessoa a quem estão vinculados. A Administração da Previdência Social tem essa página , e o censo também pode, mas não parei para olhar. Talvez outros governos mundiais façam coisas semelhantes.

rmeador
fonte
0

Não conheço tal serviço, entretanto ..

  • você poderia começar com uma lista bruta de nomes de pessoas ou
  • adivinhe o gênero de acordo com algumas regras (por exemplo, -o => masculino, -ela, -a => feminino)

Em alguns países (por exemplo, Alemanha), o nome que uma pessoa pode receber é limitado por lei - talvez haja algumas publicações sobre o assunto, que poderiam ser colhidas (mas não conheço nenhuma no momento).

miku
fonte
0

O que eu faria é fazer um hack que pega o nome e pesquisa na api do Facebook. Em seguida, analisa os usuários resultantes e conta quantos deles são do sexo feminino ou masculino. Você então pode retornar uma porcentagem. Não é mais tão intransponível. :)

Ajayjapan
fonte
-2

Basta perguntar às pessoas e, se forem simpáticas, dar-lhe-ão os seus 'M's ou' F's; se não forem, dê-lhes um 'A'.

Azder
fonte
2
Não estou em comunicação com as pessoas cujos nomes desejo mapear.
Chas. Owens