사람의 이름을 성별에 매핑 할 수있는 좋은 도서관을 아는 사람이 있습니까? [닫은]


90

나는 그 사람의 이름이나 별명을 바탕으로 한 사람이 남성인지 여성인지 추측 할 수있는 도서관이나 데이터베이스를 찾고 있습니다. 같은 것

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

영어 이름 (일본어, 인도어 등) 이외의 이름을 지원하는 것을 찾고 있습니다.

"성 / 젠더를 가정하여 사람들을 불쾌하게 할 것입니다."라는 또 다른 답변을 받기 전에, 제 응용 프로그램은 누구와도 상호 작용하지 않습니다. 어쨌든 이메일을 보내거나 누구에게도 연락하지 않습니다. 요청할 사용자가 없습니다. 대부분의 경우 문제의 사람은 사망했으며 내가 가진 유일한 정보는 이름, 생년월일 및 사망일입니다. 내가 개인의 성별을 알고 싶은 이유는 출력의 문법을 더 좋게 만들고 나중에 올 수있는 검색을 돕기 위해서입니다.


33
와우 ... 모든 사람들이 "어떻게해야하나요?"라는 질문이 아니라 "내가해야하나요?"라는 질문에 대답하는 것 같습니다. 놀랍지 않고 흥미 롭습니다.
bsneeze

9
사실 이것은 좋은 질문이라고 생각합니다. 웹 사이트를 방문하여 90 %가 귀하의 성별을 파악하면 혜택을 볼 수 있습니다. 내 TV도 똑같이 할 수 있기를 바랍니다. 최근 비행기에서 King of the Hill의 재방송을보고 있었는데 3 분마다 "개인 마사지기"에 대한 광고가 나왔습니다.
Uri

6
@mP 와우, 성을 추측하는 것에서 문법을 인종 프로파일 링으로 더 좋게 만드는 방법입니다.
Chas. Owens

2
chas, 그것은 사람들이 당신에게주기를 원하지 않는 것이 아닙니다. 그것은 도덕적 인 것 때문에 처음에는 의미가없는 것처럼 보입니다. 그래서 당신은 실패 해결책을 요구하고 있습니다. 또한 영어 이름이 아닌 다른 이름을 언급하고 다른 문화적 참조에서는 훨씬 더 복잡해집니다. 나에게는 안된다.
zalew

2
이름이 남성인지 여성인지 어떻게 알 수 있습니까? Alex는 Alexander (남성) 또는 Alexandra (여성)의 약자 일 수 있습니다. 나는 남자 인 미가와 여자 인 미가를 안다. 그리고 외국 이름은 어떻습니까?
Gabe

답변:


66

이름의 성별은 일반적인 경우 프로그래밍 방식으로 추론 할 수없는 것입니다. 이름 데이터베이스가 필요합니다. 다음은 미국 인구 조사국의 무료 이름 데이터베이스입니다 .

편집 : 2010 이름에 대한 링크가 죽었지 만 주석에 작업 링크와 라이브러리가 있습니다.


2
이것은 훌륭합니다. 질문자가 필요로하는 것 같습니다. 모호한 이름은 남성의 빈도 대 여성의 빈도에 따라 성별을 "추측"할 수 있습니다.
stalepretzel

1
인구 조사 데이터를 사용하여이를위한 라이브러리를 구축했으며 훌륭하게 작동합니다! 잠재적 인 애플리케이션 : 분석, IVR 음성 성별 선택.
Chris McCall

9
여기 이름-> 인구 조사 데이터의 성별 (python dict) : raw.github.com/Bemmu/gender-from-name/master/gender.py
Bemmu

3
원래 링크는 죽었지 만 인구 조사는 여전히 목록을 유지합니다. 1990 년대에 특정한 버전 (이유를 모르겠습니다)이 여기에 있습니다 : census.gov/genealogy/www/data/1990surnames/names_files.html
Chipmonkey

2
출생 연도 별 성별이 포함 된 22MB의 미국 아기 이름 : ssa.gov/oact/babynames/limits.html(2015 년 7 월 유효 링크)
Dylan Hogg

70

성별 .c는 좋은 일을 하는 오픈 소스 C 프로그램입니다. 전 세계의 44568 이름에 대한 데이터가 함께 제공됩니다. 좋은 문서와 파일 형식 (기본적으로 일반 텍스트)에 대한 설명이 있으므로 자신의 응용 프로그램에서 읽는 것이 어렵지 않습니다.

저자는 다음과 같이 말합니다.

데이터 품질에 대한 몇 마디

이름 사전은 세심한주의를 기울여 준비되었습니다. 예를 들어,이 사전에있는 터키어, 인도어 및 한국어 이름은 모두 여러 원어민에 의해 독립적으로 분류되었습니다. 또한 현재 찾을 수있는 이름 만 나열하는 데 특별한주의를 기울였습니다.

이것으로부터 교훈?

모든 수정은 매우 신중하게 수행해야합니다 (검색 알고리즘에 필요한 정렬을 준수해야 함). 예를 들어, "Sascha"가 독일에서 소년의 이름이라는 것을 알기 때문에 저자는 영어 "Sasha"를 소녀의 이름으로 가정하지 않았습니다. "Jan"이 독일에서 남자 아이의 이름이라는 것을 알기 때문에 "Janet"의 영어 짧은 형식이라고 생각하지 않았습니다. 또 다른 경우는 "Esra"라는 이름입니다. 이것은 독일에서는 남자 아이의 이름이지만 터키에서는 여자 아이의 이름입니다.

이 프로그램은 이름이 여성의 남성 일 확률을 계산합니다. 이름 만 입력하거나 원산지 이름과 국가를 사용하여 그렇게 할 수 있으므로 훨씬 더 나은 결과를 얻을 수 있습니다.

독일 컴퓨터 잡지 c't 40 000 Namen 의 웹 사이트에서 다운로드 할 수 있습니다 . 이 기사는 독일어로되어 있지만 걱정하지 마십시오. 모든 문서는 영어입니다. 기사에 관심이없는 경우 직접 ftp 링크 0717-182.zip 이 있습니다. zip 파일에는 소스 코드, Windows 실행 파일, 데이터베이스 및 문서가 포함되어 있습니다.


훌륭합니다. 감사합니다.
Dale Athanasias 2011

- 여기 파이썬 포트를 참조하십시오 pypi.python.org/pypi/SexMachine
philshem

33

"내가 말했지. '수'라는 소년에게는 인생이 쉽지 않다."

... 그러면 왜 더 어렵게 만들까요? 성별을 알아야한다면 물어보세요 ... 그렇지 않으면 걱정하지 마세요.


15
@Chas : 80 %의 시간 동안 제대로 작동하더라도 소프트웨어를 사용하는 10 명 중 2 명은 여전히 ​​짜증을 낼 것입니다. 그다지 좋지는 않습니다 ... 동기는 이해합니다.하지만 성 중립적 인 메시지를 표현하는 것이 정말 좋습니다.
Shog9

2
누군가 SNL의 "Pat"을 기억하는지 궁금합니다.
erickson

8
이걸 다시 읽으면 끔찍한 설교를하고 있어요 ... 당신의 생각을 내려 놓으려고하는 것은 아닙니다. 흥미로운 생각이라고 생각합니다.하지만 또한 매우 위험합니다. 나는 텔레마케터로 일 했었고, 얼마나 많은 이름을 알고 있든, 아무리 목소리를 잘 알아 내더라도, 당신은 때때로 잘못 추측하게됩니다. 그리고 결코 재미가 없습니다. 그래서 그것을 올바르게 추측하기 위해 관리하는 것에 대한 큰 보상이 없다면 피할 것 입니다.
Shog9

3
나는 Shog9의 조언을 받아 들일 것입니다. 응용 프로그램이 영어가 아닌 다른 언어로 작성되지 않는 한, 성별 중립 대명사 (예 : they, one, s / he 등)를 사용하는 것이 더 쉬울 수 있습니다.
Calvin

11
내 여자 친구의 이름은 Kevan입니다. 그녀는 이름에서 자신의 성별을 잘못 추측하는 사람들을 충분히 확보하고 있으며 컴퓨터도 필요하지 않습니다. 주의해야 할 점은 컴퓨터의 추측에 따라 누군가의 성별을 나타내는 데이터베이스 항목을 만드는 것입니다. 그것을 보는 사람들은 그것이 그 사람이 제공 한 것이라고 생각할 수 있고, 그들의 가정이 틀렸다고 판명 될 때 정말로 혼란 스러울 것입니다 (이름만으로는 다소 혼란스러워하는 것과는 대조적으로).
Brian Campbell

29

나는 이름을 기반으로 성별에 대한 확률 적 추측을 제공하는 무료 API를 구축했습니다. 위에서 언급 한 접근 방식을 사용하는 대신 소셜 네트워크의 방대한 프로필 데이터 세트를 사용하여 확실성 요인과 함께 확률 적 추측을 제공합니다. 또한 국가 또는 언어 ID를 통한 선택적 필터링을 지원합니다. 데이터 세트에 더 많은 프로필이 추가됨에 따라 날이 갈수록 좋아지고 있습니다.

http://genderize.io 에서 무료로 사용할 수 있습니다.

고려해야 할 가지는 이름 지정 규칙이 이에 크게 의존하기 때문에 인구 통계를 고려하는 도구를 사용하는 것입니다.

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
코드 확장 - genderize.io/#extensions
philshem

22

다음은 작동하지 않을 수도 있고 라이센스 조건을 위반하지 않으면 일괄 적으로 작동하지 않을 가능성이있는 두 가지 이상한 접근 방식입니다.

  1. Facebook API (실제로 전혀 알지 못하지만 가능하지 않을 수도 있음)를 사용하여 두 가지 검색을 수행하십시오. 하나는 해당 이름을 가진 FB 남성 사용자 용이고 다른 하나는 여성용입니다. 두 숫자를 사용하여 성별 확률을 결정하십시오.

  2. 훨씬 느슨하지만 확장 성이 뛰어나 Google API를 사용하고 이름과 성별 대명사를 검색하고 숫자를 비교합니다. 예를 들어 "Richard his"(구문이 아님)를 검색하면 592,000,000 개의 결과가 있지만 "Richard her"에 대해서는 179,000,000 개만 검색됩니다.


소프트웨어가 이름에서 섹스와 같은 것을 추측하는 것에 대한 일반적인 합의를 제외하고 이것은 원래 질문에 대한 정말 멋진 알고리즘 답입니다. 잘 했어.
peSHIr

좋은 생각입니다. 특정 국가의 언어로 일부 단어를 던져 현지화 할 수도 있습니다.
Nosredna

좋은 점, Nosrenda ... 물론 Google에서는 이미 언어 코드로 검색 결과를 필터링 할 수 있습니다. HTTP 요청에서 사용자가 선호하는 언어를 훔칠 수도 있습니다. 그들의 브라우저 언어 설정은 그들의 이름의 민족성과 일치하거나 일치하지 않을 수 있지만 어쨌든 이것은 모호한 기술입니다.
richardtallent

2
Google이 우월 주의자라는 것을 알게되었습니다. Google에 남성이 더 많기 때문에 여성보다 남성에게 더 많은 결과가 나타납니다. Facebook API는 아마도 훨씬 더 대표적 일 것입니다.
Chris McCall

6

명시된 제약 조건을 감안할 때 최선의 선택은 당신이 알고 있지 않는 한 성 중립적으로 작성하는 모든 것을 다시 표현하는 것입니다. 각 인스턴스에서 어떤 성별을 부르고 싶은지 .

영어로 작성하는 경우 단수 "they"를 기억하십시오. 성별 중립적 인 제 3 인칭 단수 대명사로 문법적으로 괜찮습니다.

이 질문의 제목이 좋은 예입니다. 현재 :

    … 사람의 이름을 성별에 매핑합니까?

다음과 같이 작성하면 덜 어색합니다.

    … 사람의 이름을 성별에 매핑합니까?

"완벽하게"문법적인 것은 아닙니다. 심지어 위키 백과 기사조차도 그것이 일반적인 "he"에 대한 일부 작가들의 불편 함의 결과로, 특히 현대적인 맥락에서 사용되었다고 인정합니다. 나는 이런 일을하는 작가들에게 큰 문제가 없습니다 (성 중립성이 정말로 중요하다면, 저는 "one"과 같은 대명사를 사용할 수 있도록 구조를 바꾸는 것을 선호합니다).
Ben Collins

나는 우리 둘 다 옳다고 주장하고 싶습니다. 모든 문법, 특히 영문법에는 심각한 문제가 있습니다. 하지만 영어로 된 모든 것에 실제로 적용되는“완벽한 문법”의 정의는 여기에도 적용됩니다. 단수“they”가 완벽하게 문법적이거나 영어로 된 것은 없습니다. :-)
bignose

참고로 Grammar Girl (저자 Mignon Fogarty)은 한동안 단수 "they"를 수용하는쪽으로 기울어 왔습니다. grammar.quickanddirtytips.com/…
Karen Lopez

4

사용자가 남성 또는 여성이어야한다고 가정하는 것도 좋지 않습니다. 작지만 상당한 수의 "인터 섹스"사람들이 있으며, 대부분은 똑딱
거리는 상자가 없어 진심으로 아팠습니다 . 나는 그것이 그렇게 긴 역사를 가지고 있다는 것을 몰랐다.


4

서비스는 아니지만 데이터베이스가있는 작은 앱 :
http://www.codeproject.com/KB/cpp/genderizer.aspx

이 도구는 독일어로 제공됩니다.
http://www.faq-o-matic.net/2011/06/01/zu-einem-vornamen-das-geschlecht-finden/

VB의 또 다른 하나 :
http://www.vbarchiv.net/tipps/tipp_1925-geschlecht-anhand-des-vornamens-ermitteln.html

"2011 년에 가장 많이 사용 된 이름"목록과 결합하여 괜찮은 것을 만들 수 있어야한다고 생각합니다.


4

Python 패키지 SexMachine이이 를 수행합니다. 이름이 주어지면 남성, 여성 또는 남여 인 경우 반환됩니다. Jorg Michael 의 성별 .c 프로그램 데이터에 의존합니다 .


3

자동화를 시도함으로써 얻을 수있는 유일한 것은 불행한 사용자들입니다. 해당 인구 조사 데이터에서 :

제임스, 존, 로버트, 마이클, 윌리엄, 데이비드, 리차드, 찰스, 조셉, 토마스, 크리스토퍼, 다니엘, 폴, 마크, 도널드, 조지, 케네스, 스티븐, 에드워드, 브라이언, 로널드, 앤토니, 케빈, 제이슨, 매튜, 게리, 티모시, 호세, 래리, 제프리, 프랭크, 스콧, 에릭, 스티븐, 앤드류, 레이몬드, 그레고리, 조슈아, 제리, 데니스, 월터, 패트릭, 피터, 해롤드, 헨리, 칼, 아서, 라이언, 조, 후안, 잭, 알버트, 저스틴, 테리, 제랄드, 키스, 사무엘, 윌리, 로렌스, 로이, 브랜든, 아담, 프레드, 빌리, 루이, 제레미, 아론, 랜디, 유진, 카를로스, 러셀, 바비, 빅터, 마틴, 제스, 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, DANA, 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, ROYCE MICKEY, DEVON, ASHLEY, CAREY, SON, 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, 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 및 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 및 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 및 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 및 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 및 JEWEL

남성과 여성 모두에게 적합한 이름입니다. 소녀의 이름이 로버트이고 당신의 소프트웨어를 포함한 모든 사람들이 그녀를 계속 남자라고 부르면 그녀는 오히려 화를 낼 것입니다.


25
Mark라는 소녀가 있다고 가정 해 봅시다. 내가 그녀라면 Chas의 소프트웨어가 아니라 부모님에게 화가 났을 것입니다.
Darko Z

6
소프트웨어가 그녀를 남자라고 부르지 않고 "남성용"버전의 UI를 제공한다면 어떻게 될까요? 아니면 그녀는 마케팅 자료를 개발하는 데 사용되는 데이터 세트를 통해 남성과 함께 묶여 있습니까? 그녀는 눈치 채지 못할 수도 있습니다.
Chris McCall

이러한 이름의 대부분은 주어진 이름의 500-1200 개의 Facebook 프로필 데이터를 기반으로 100 % 확실성을 얻습니다. api.genderize.io/?name=robert api.genderize.io/?name=andrew api.genderize.io/?name=john
Stromgren

3

데이터베이스가 아마도 가장 실용적인 솔루션 일 수 있지만, 재미를 느끼고 싶다면 이름을 받아 3 가지 옵션 (F, M, A) 중 하나를 출력하는 신경망 (또는 신경망 라이브러리 사용)을 작성해 볼 수 있습니다. ).

다른 답변에서 제안한 데이터베이스에있는 데이터 세트와 보유한 다른 데이터를 사용하여 학습 할 수 있습니다.

이 솔루션을 사용하면 이전에 특별히 분류되지 않은 이름을 처리하고 다른 언어도 처리 할 수 ​​있습니다. 언어 (알고있는 경우)를 신경망에 대한 입력으로 전달할 수도 있습니다.

신경망 (또는 다른 기계 학습)이 분류 작업을 잘 수행 할 것이라고 말할 수 있는지 모르겠습니다.


3

문화 / 지역에 따라 다릅니다. Andreas는 이탈리아 인은 남성용이고 스웨덴은 여성용이고 Andreas는 남성용입니다. Shawn은 영어로 모호합니다. 라틴어 나 러시아어처럼 언어에 편각이있는 경우 최종 문자는 문법 규칙에 따라 변경됩니다.

모호성의 또 다른 원인은 개인 이름과 동일한 성입니다.

제 생각에는 일반적으로 해결하는 것이 불가능합니다.


OP에 출신 문화, 출생지, 국적을 나타내는 동반 변수가 있으면 유용합니다. 그러나 그는 그렇게하지 않기 때문에 집계를 기반으로 통계적으로 정보에 입각 한 추측을해야한다고 말했습니다.
smci

3

이 아이디어는 대부분의 언어에서 작동하지 않습니다.

그러나 미리 국적을 알 수 있다면 더 많은 행운을 누릴 수 있습니다. 대부분의 슬라브어 (예 : 러시아어, 폴란드어, 불가리아어)에서 -va -cha -ska (일반적으로 -a는 여성)로 끝나는 모든 성은 남성적인 반면 -v -ch -shi는 남성적이라고 안전하게 가정 할 수 있습니다.

실제로 모든 성은 결말에 따라 여성적이고 남성적인 형태를 가지고 있습니다. 다른 국가 (예 : 미국)에서 사용되는 동일한 이름은 남성형 만 사용할 수 있습니다.

이름 (-a -ya는 여성적임)에 대해서도 동일하게 말할 수 있지만 100 % 정확하지는 않습니다.

그러나 일반적으로 충분히 정확한 라이브러리는 거의 얻을 수 없습니다.


성은 남성적 또는 여성적입니까?
Simon_Weaver

2
@Simon_Weaver 아버지의 성은 Slavchev이고 어머니의 성은 Slavcheva입니다. 실제로 남성과 여성에 대해 철자가 다른 동일한 성 비트입니다. 이것은 슬라브어 이름에 일반적입니다.
디미타르 Slavchev

2

나는 그것을 사용하지 않았지만 IBM은 꽤 포괄적 인 것처럼 보이는 Global Name Analytics 라이브러리 (가격으로!)를 가지고 있습니다.


2

Z 디렉토리 (vettrasoft.com)에는 C 언어 기능이 있으며 다음과 같이 작동합니다.

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

데이터베이스 기반이며 테이블에는 10,000 개 이상의 이름이 있지만 z 디렉토리를 다운로드하여 설치해야합니다 (국가, 지리적 랜드 마크, 공항, 주, 지역 코드, 우편 번호 등과 같은 다른 많은 topo 항목 포함). 데이터에 액세스하기위한 C ++ 함수 및 객체와 함께). 그러나 이름은 매우 영어 지향적입니다. 테이블은 진행중인 작업이며 점차 업데이트됩니다.


1

이름-젠더지도는 작동 할 수 있지만 다문화 국가에서는 추측과 비슷합니다. 한 가지 예를 들어 보겠습니다. 폴란드어로 된 Marian은 전형적인 남성 이름 인 반면 영국에서는 같은 이름이 여성 이름입니다. 전 세계로 이주하는 사람들의 시대에 그러한 데이터베이스가 매우 정확할 것이라고 확신하지 않습니다. 행운을 빕니다!


1
아니요,하지만 50 %보다 낫다면 이름을 항상 남성적으로 취급하는 것보다 낫습니다.
Chas. Owens

@Chas, 왜 그 거짓 이분법에 집착합니까? 당신은 성 중립의 선택권이 있습니다.
bignose

우리는 심지어 두 번째 이름 '마리아'- '메리'를 가진 2 개의 유명한 정치를 가지고 있습니다. 이것은 당신의 데이터베이스에서 여성으로 분류 될 것입니다. lols를 위해.
zalew

@JZ 나는 성이 아닌 이름을 말하고 있습니다 (또는 그 반대의 문화에서는 그 반대).
Chas. Owens

@bignose, 젠더 중립적 인 언어는 이상해 보이고 복잡해 보입니다. 가능할 때 더 멋지게 보이는 것을 생산하고 싶습니다. 이것은 개인에게 다시 전달되지 않으므로 (존재하더라도) 공격의 기회가 없습니다. 사람들이 좋은 사실을 알고있는 경우 데이터베이스에 대한 링크를 제공하는 대신이 문제를 주장하는 데 왜 그렇게 많은 시간을 소비하는지 모르겠습니다. 하나.
Chas. Owens

1

일부 문화에는 내 이름과 같은 남녀 이름이 있습니다. 그럼 당신은 무엇을합니까? 대답은 단순하고 단순하다고 생각합니다. 필요한지 물어보십시오. 그렇지 않으면 성 중립성.


5
질문은 이미 귀하의 답변에 대한 답변입니다 : alex => "A", #ambiguous. 질문에 답이 있든 없든 당신의 대답은 그렇지 않습니다.
Windows 프로그래머

동의하지 않습니다. 내 요점은 모든 이름이 잠재적으로 모호하다는 것입니다.
Preet Sangha

이름이 남녀 공통이면 모두 A로 분류되고 나는 성 중립을 추구하지만 이름이 주로 남성적이거나 여성적이라면 훨씬 더 자연어를 사용할 수 있습니다.
Chas. Owens

나는 당신의 추론이 무엇인지 알지만 나는 당신에게 후자의 의견을 언급합니다.
Preet Sangha

3
그러나 StackOverflow에서 "Preet"이 보이면 남성 일 가능성이 높습니다.
Nosredna

1

글쎄, 더 이상은 아니야. IBM 은 얼마 전에 그 아이디어에 대해 특허받았습니다 .

따라서 어떤 수준의 유연성 (이름 목록 이외의 것)을 찾고 있다면 사용자에게 (헐떡임!) 물어 보거나 단순히 IBM에 권한을 지불해야합니다. :)

어쨌든 그러한 자동 감지는 성별이 모호한 이름을 가지고 있거나 심지어 부모를 의미하는 많은 사람들에게 성가시다. 그들을 위해 더 어렵게 만들지 말자.


3
IBM이 이름을 기반으로 아바타를 선택하는 특허를받은 것 같습니다. 운 좋게도 이것은 내가 이것을 사용하려는 응용 프로그램 중 하나가 아니므로 그들의 특허를 위반하지 않습니다. 사용자에게 묻는 것과 관련하여 이름 목록이 아닌 사용자가 묻는 것으로 가정합니다. 나는 사용자, 상호 작용, 이름이 속한 사람들에게가는 메시지가 없다고 반복해서 말했습니다.
Chas. Owens

1

무료는 아니지만 이전에 사용 해본 좋은 라이브러리입니다.

NetGender for .NET을 사용하면 이름 확인, 구문 분석 및 성별 결정을 사용자 지정 응용 프로그램에 빠르고 쉽게 구축 할 수 있습니다. 특정 필드에 유효한 개인 또는 회사가 포함되어 있는지 정확하게 확인합니다. NetGender는 정확한 성별 결정을 보장하기 위해 100,000 개 이상의 인종적으로 다양한 이름 사전과 8,000 개 이상의 회사 이름 사전을 함께 사용합니다.

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


1

생년월일이 있다고 말하는 것이 흥미 롭습니다. 도움이 될 수 있습니다. 이름 인기의 역사 데이터베이스를 보았습니다.

영화 스플래시 (1984)에서 Darryl Hannah의 캐릭터가 Madison Avenue 거리 표지판에서 "Madison"이라는 이름을 선택하는 것이 재미있었습니다. 왜냐하면 "Madison"은 여자의 이름이 아니기 때문입니다.

24 년 후, Madison은 여자 아기들에게 4 번째로 인기있는 이름입니다!


정부의 이름 역사. (지난 100 년 동안 Mary의 슬픈 쇠퇴를 확인하십시오.)


내가 어렸을 때 백악관에 편지를 썼을 때 리처드 닉슨 (또는 아마도 비서)이 "미스 렛 앤더슨"에게 보낸 역사적인 장소의 사진 몇 장을 보내주었습니다. "렛트 양?" 말도 안 돼! Clark Gable의 Rhett (콧수염과 함께 Gone With The Wind!)와 Vivian Lee의 Scarlett의 차이점을 정말로 구분할 수 없습니까? "리처드 닉슨도 영혼을 가졌다"는 닐 영의 확신에도 불구하고 나는 그를 절대 용서하지 않을 것이다.


좋은 점, 데이트는 확실히 여기에서 시작됩니다.
Chas. Owens

1

나는 그러한 서비스가 허용 가능한 수준의 정확도로 존재할 수 없다고 확신합니다. 극복 할 수없는 문제는 다음과 같습니다.

  • 남자와 여자 모두를위한 이름이 많이 있습니다.
  • 한 나라 만 고려하더라도이 세상에는 많은 다른 이름이 있습니다.
  • Johnny Cash가 매우 설득력있게 제기 한 "A Boy Named Sue"문제가 있습니다. :-)

2
좋은 데이터베이스는 지역별 남성 / 여성의 비율과 샘플 채취시기 등을 포함합니다.

일본어와 같은 언어는 어떻습니까? 나는 일본어를 배우고있어서 여기서 틀릴지도 모르지만 이름 <-> 한자는 직접적인 관계가 아니고, 한자가 사람의 이름을 구성하는 "무엇"에 대한 말장난과 오해가있었습니다.
Pharaun


1

내 파이썬 성별 감지 프로젝트를 볼 수 있습니다. https://github.com/muatik/genderizer를

저자의 이름 및 / 또는 샘플 텍스트 (예 : 트윗)를 찾는 저자의 성별을 감지하려고 시도합니다.

또한 성능을 위해 memcached 인 mongodb도 지원합니다.


당신이 알고 참조 gender.c "원산지"할 필요 이하 genderize.io하면 좋은 것 같지만
HaveAGuess

0

이것은 실제로 프로그래밍 문제가 아닙니다. 확률 테이블을 얻는 것이 중요합니다.

AFAIK는 증류 된 형태의 공개 데이터베이스가 없습니다. 인구 조사 데이터에서이를 구축하거나 누군가로부터 데이터를 구입할 수 있습니다.

예를 들어, 이것은 캐나다에 대한 확률 표를 판매하는 사람입니다 .


0

IMHO, 개인 이름으로 성별을 결정하는 것은 일반적으로 나쁜 생각입니다. 많은 이름은 이성애자입니다 (좋은 슬픔, 이것은 단어입니까 ?? :-), 또한 그들은 한 문화에서 다른 성별 일 수 있습니다.

몇 가지 어리석은 예, 떠오른 몇 가지 (내 세계인 CE)

Vanja-여성, 여기에서 동부 국가에서 대부분 남성
Alex-intersex (Sandra, 여성 및 Sandro의 약자, 남성)
Robin-서양 문화에서 둘 다

세계의 일부 지역에서는 이름이 어떻게 끝나는 지보고 사람의 성별을 결정할 수 있습니다. 예를 들어, Marija, Sandra, Ivana, Petra, Sara, Lucija, Ana-대부분의 여성 이름이 "ja"또는 "ra"로 끝나는 것을 볼 수 있습니다. 다른 예도 있습니다.

그래도 사용자에게 성관계를 묻는 것이 더 낫다고 생각합니다.


9
"그래도 사용자에게 섹스를 요청하는 것이 낫다고 생각합니다." -동의합니다. Stack Overflow에 댓글을 게시하는 것보다 훨씬 낫습니다.
Windows 프로그래머

2
업스. Okeey, 그건 제대로 나오지 않았습니다 :-)
Rook

편집하기 전에 더 좋았습니다 :-)
Windows 프로그래머


0

나는 그러한 서비스가 없다는 것을 알고 있습니다. 그러나 원하는 데이터를 찾을 수 있습니다. 미국 정부는 이름의 유병률과 소속 된 사람의 성별에 대한 데이터를 게시합니다. 사회 보장국에 그런 페이지 가 있고 인구 조사도 마찬가지지만 저는 시간을 들여 보지 않았습니다. 아마도 다른 세계 정부들도 비슷한 일을 할 것입니다.


0

나는 그런 서비스가 없다는 것을 알고 있지만 ..

일부 국가 (예 : 독일)에서는 사람에게 부여 할 수있는 이름이 법에 의해 제한되어 있습니다. 아마도 그 문제에 관한 출판물이있을 수 있습니다.이 출판물은 수확 할 수 있습니다 (하지만 지금은 알 수 없습니다).


0

내가 할 일은 이름을 가져 와서 페이스 북 API에 대해 검색하는 해킹을 만드는 것입니다. 그런 다음 결과 사용자를보고 여성 또는 남성이 몇 명인지 세십시오. 그런 다음 백분율을 반환 할 수 있습니다. 더 이상 극복 할 수 없습니다. :)


-2

사람들에게 물어보세요. 그들이 착하면 'M'또는 'F'를주고, 그렇지 않으면 'A'를 줄 것입니다.


2
내가 매핑하려는 이름을 가진 사람들과 소통하지 않습니다.
Chas. Owens
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.