Bir kişinin adını cinsiyetiyle eşleştirmek için iyi bir kitaplık bilen var mı? [kapalı]


90

Bir kişinin adı veya takma adına göre erkek mi kadın mı olduğu hakkında tahminler sağlayabilecek bir kütüphane veya veritabanı arıyorum. Gibi bir şey

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

İngilizce isimlerden başka isimleri destekleyen bir şey arıyorum (Japonca, Hintçe vb. Gibi).

"Cinsiyetini / cinsiyetini varsayarak insanları inciteceksin" şeklinde bir cevap daha almadan önce, uygulamam kimseyle etkileşime girmiyor. Zaten e-posta göndermez veya kimseyle iletişim kurmaz. Sorulacak kullanıcı yok. Çoğu durumda, söz konusu kişi ölmüştür ve sahip olduğum tek bilgi adı, doğum tarihi ve ölüm tarihidir. Bireyin cinsiyetini bilmek istememin nedeni, çıktının gramerini daha güzel hale getirmek ve daha sonra gelebilecek olası aramalara yardımcı olmaktır.


33
Vay canına ... Herkes, "Bunu nasıl yaparım?" Sorusu yerine "Bunu yapmalı mıyım" sorusunu yanıtlıyor gibi görünüyor. Şaşırtıcı değil, sadece ilginç.
bsneeze

9
Aslında bunun harika bir soru olduğunu düşünüyorum. Bir web sitesine giderseniz ve zamanın% 90'ı cinsiyetinizi belirlerse, faydasını görebilirim. Keşke televizyonum da aynısını yapabilseydi. Son uçuşta King of the Hill'in yeniden gösterimlerini izliyordum ve her 3 dakikada bir "kişisel masajcılar" için bir reklam olacaktı.
Uri

6
@mP Vay canına, cinsiyeti tahmin etmekten grameri daha güzel hale getirmek için ırksal profillemeye geçmenin yolu.
Chas. Owens

2
chas, insanların size ahlaki bir şey yüzünden vermek istemediği şey değil, başlangıçta hiçbir anlamı yokmuş gibi, bu yüzden başarısız bir çözüm istiyorsunuz. ayrıca, İngilizce isimler dışında bahsediyorsunuz ve kültürler arası referansta durum daha da karmaşıklaşıyor. benim için bu olmaz.
zalew

2
Bir ismin kadın mı erkek mi olduğunu nasıl anlarsın? Alex, Alexander (bir erkek) veya Alexandra (bir kadın) için kısa olabilir. Erkek ve kadın olan bir Micah tanıyorum. Peki ya yabancı isimler?
Gabe

Yanıtlar:


66

Bir ismin cinsiyeti, genel durumda programatik olarak çıkarılamayacak bir şeydir. Bir isim veritabanına ihtiyacınız var. ABD Nüfus Sayım Bürosu'ndan ücretsiz bir isim veritabanı burada .

DÜZENLEME : 2010 adının bağlantısı kesildi ancak yorumlarda çalışan bağlantılar ve bir kitaplık var.


2
Bu harika. Soruyu soranın ihtiyacı olan şey gibi görünüyor. Belirsiz isimler, Erkek sıklığına karşı Kadın sıklığına göre cinsiyet "tahmin edilmiş" olabilir.
stalepretzel

1
Bunun için Nüfus Sayımı verilerini kullanarak bir kütüphane oluşturdum ve harika çalışıyor! Potansiyel uygulamalar: analitik, IVR sesi cinsiyet seçimi.
Chris McCall

9
İşte ad -> python diktesi
Bemmu

3
Orijinal bağlantı kesildi, ancak nüfus sayımı hala listeyi koruyor. 1990'lara özgü bir sürüm (nedenini bilmiyorum) burada: census.gov/genealogy/www/data/1990surnames/names_files.html
Chipmonkey

2
Doğum yılına göre cinsiyete sahip 22 MB'lık ABD bebek isimleri: ssa.gov/oact/babynames/limits.html (bağlantı Temmuz 2015'te geçerlidir)
Dylan Hogg

70

gender.c iyi bir iş çıkaran açık kaynaklı bir C programıdır. Dünyanın her yerinden 44568 ilk ismin verileriyle birlikte gelir. İyi bir dokümantasyon ve dosya formatının bir açıklaması (temelde düz metin) vardır, bu yüzden onu kendi uygulamanızdan okumak zor olmamalıdır.

Yazar şöyle diyor:

Veri kalitesi hakkında birkaç kelime

İlk isim sözlüğü büyük bir özenle hazırlanmıştır. Örneğin, bu sözlükteki Türkçe, Hintçe ve Korece isimlerin tümü, birkaç ana dili konuşmacı tarafından bağımsız olarak sınıflandırılmıştır. Ayrıca sadece şu anda bulunabilen isimleri listelemek için özel bir özen gösterdim.

Bundan çıkarılacak ders?

Herhangi bir değişiklik çok dikkatli yapılmalıdır (ve ayrıca arama algoritmasının gerektirdiği sıralamaya da uymalıdırlar). Örneğin, "Sascha" nın Almanya'da bir erkek ismi olduğunu bilen yazar, İngilizce "Sasha" nın bir kız adı olduğunu asla varsaymadı. "Jan" ın Almanya'da bir erkek ismi olduğunu bildiğimden, bunun aynı zamanda "Janet" kelimesinin İngilizce bir kısa biçimi olduğunu da hiç düşünmedim. Buradaki bir diğer örnek de "Esra" adıdır. Bu Almanya'da bir erkek çocuğun adı, Türkiye'de bir kızın adı.

Program, ismin erkek veya kadın olma olasılığını hesaplar. Bunu tek başına giriş olarak veya ad ve menşe ülke ile yapabilir, bu da önemli ölçüde daha iyi sonuçlar verir.

Bunu Alman bilgisayar dergisi c't 40 000 Namen'in web sitesinden indirebilirsiniz . Makale Almanca ama merak etmeyin, tüm belgeler İngilizce. Makaleyle ilgilenmiyorsanız işte doğrudan ftp bağlantısı 0717-182.zip . Zip dosyası kaynak kodunu, bir Windows çalıştırılabilir dosyasını, veritabanını ve belgeleri içerir.


Bu harika, teşekkürler.
Dale Athanasias

Python bağlantı noktası için buraya bakın - pypi.python.org/pypi/SexMachine
philshem

33

"Sana söylüyorum, 'Sue' adındaki bir çocuk için hayat kolay değil.

... Öyleyse neden daha da zorlaştıralım? Cinsiyeti bilmeniz gerekiyorsa, sadece sorun ... Aksi takdirde, endişelenmeyin.


15
@Chas:% 80 oranında doğru bir şekilde almayı başarsan bile, bu yine de yazılımını kullanan her on kişiden ikisini rahatsız edecek. Pek iyi değil ... Motivasyonu anlıyorum, ama mesajlarınızı cinsiyet ayrımı gözetmeyecek şekilde yeniden ifade etmeniz gerçekten daha iyi.
Shog9

2
SNL'den "Pat" ı başka biri hatırlıyor mu merak ediyorum.
erickson

8
Bunu tekrar okuyorum, korkunç bir vaazdan çıkıyorum ... Fikrini küçümsemek istemiyorum, bence bu ilginç bir fikir ... Ama aynı zamanda çok riskli. Eskiden bir telemarketer olarak çalışıyordum ve kaç isim bildiğiniz önemli değil, sesleri tanımada ne kadar iyi olursanız olun, bazen yanlış tahminlerde bulunuyorsunuz ... ve bu asla eğlenceli değil. Ve bu, doğru tahmin etmeyi başarmanın büyük, büyük bir karşılığı olmadıkça, kaçınacağım bir şey .
Shog9

3
Shog9'un tavsiyesini kabul ediyorum. Başvurunuz İngilizce dışındaki dillerde olmayacaksa, yalnızca cinsiyet ayrımı gözetmeyen zamirleri kullanmak daha kolay olabilir - örneğin onlar, bir, s / o, vb.
Calvin

11
Kız arkadaşımın adı Kevan. Yeterince insanı yanlış bir şekilde isminden cinsiyetini tahmin ediyor, bilgisayarlara da ihtiyacı yok. Dikkat edilmesi gereken şey, bilgisayarın tahminine göre birinin cinsiyetini belirten bir veritabanı girişi oluşturmaktır; buna bakan insanlar, bunun kişinin kendisi tarafından sağlandığını varsayabilir ve varsayımlarının yanlış olduğu ortaya çıktığında gerçekten kafaları karışabilir (sadece isme bağlı olarak sadece biraz kafa karıştırıcı olmasının aksine).
Brian Campbell

29

Bir ada göre cinsiyet hakkında olasılıklı bir tahmin veren ücretsiz bir API oluşturdum. Yukarıda belirtilen yaklaşımlardan herhangi birini kullanmak yerine, bunun yerine bir kesinlik faktörü ile birlikte olasılığa dayalı bir tahmin sağlamak için sosyal ağlardan büyük bir profil veri seti kullanıyorum. Ayrıca ülke veya dil kimlikleri aracılığıyla isteğe bağlı filtrelemeyi de destekler. Veri kümesine daha fazla profil eklendikçe gün geçtikçe daha iyi hale geliyor.

Http://genderize.io adresinde kullanmak ücretsizdir

Adlandırma kuralları büyük ölçüde buna dayanacağından, dikkate almanız gereken BİR şey, demografik bilgileri dikkate alan bir araç kullanmaktır.

Misal

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
Kod uzantıları - genderize.io/#extensions
philshem

22

İşte işe yaramayabilecek ve bir lisansın şartlarını ihlal etmeden toplu halde çalışmayacak iki garip yaklaşım:

  1. Facebook API'sini (hakkında neredeyse hiçbir şey bilmediğim, hatta mümkün olmayabilir) iki arama yapmak için kullanın: biri bu ada sahip FB erkek kullanıcıları için ve diğeri kadın için. Cinsiyet olasılığına karar vermek için iki sayıyı kullanın.

  2. Çok daha gevşek ancak daha ölçeklenebilir olan Google API'yi kullanın ve ad ile cinsiyete özgü zamirleri arayın ve sayıları karşılaştırın. Örneğin, "Richard onun" için 592.000.000 sonuç (bir kelime öbeği olarak değil), ancak "Richard onu" için yalnızca 179.000.000 sonuç vardır.


İlk isimden seks gibi şeyleri tahmin etmeye çalışan bir yazılıma sahip olma konusundaki genel fikir birliğinin yanı sıra, bu orijinal soruya gerçekten harika bir algoritmik cevaptır. Aferin.
peSHIr

İyi fikir. Belli bir ülkenin dilinde bazı kelimeleri yerelleştirmek için de ekleyebilirsiniz.
Nosredna

İyi bir nokta, Nosrenda ... Tabii ki Google, arama sonuçlarını zaten dil koduna göre filtrelemenize de izin veriyor. Hatta HTTP isteğinden kullanıcının tercih ettiği dili çalabilirsiniz. Tarayıcı dil ayarları, isimlerinin etnik kökeniyle eşleşebilir veya eşleşmeyebilir, ancak bu yine de belirsiz bir tekniktir.
richardtallent

2
Google'ın şovenist olduğunu buldum: Google'da daha fazla erkek olduğu için erkekler için kadınlardan daha fazla sonuç geri geliyor. Facebook API muhtemelen çok daha temsilidir.
Chris McCall

6

Belirttiğiniz kısıtlamalar göz önüne alındığında, en iyi seçeneğiniz, her seferinde hangi cinsiyetten çağrılmak istediklerini bilmediğiniz sürece , yazdığınız her şeyi cinsiyetten bağımsız olarak yeniden ifade etmektir .

İngilizce yazıyorsanız , tekil "onlar" kelimesinin gramer açısından cinsiyet açısından bağımsız üçüncü tekil şahıs zamiri olarak iyi olduğunu unutmayın.

İyi bir örnek bu sorunun başlığıdır. Şu anda olduğu gibi:

    … Bir kişinin adını cinsiyetiyle eşleştirmek?

Yazılırsa bu daha az garip olurdu:

    … Bir kişinin adını cinsiyetiyle eşleştirmek?

Tam olarak "mükemmel" bir gramer değil. Wikipedia makalesi bile, özellikle modern bağlamda, bazı yazarların jenerik "he" den rahatsızlıklarının bir sonucu olarak kullanıldığını kabul ediyor. Bunu yapan yazarlarla büyük bir sorunum yok (cinsiyet-tarafsızlık gerçekten önemliyse, "bir" gibi zamirleri kullanabilmek için yapıyı yeniden ifade etmeyi tercih ederim), ama buna ne diyelim.
Ben Collins

İkimizin de haklı olduğunu iddia ediyorum. Başta İngilizce dilbilgisi olmak üzere tüm dilbilgisinin önemli sorunları vardır; ama aslında İngilizcede herhangi bir şey için geçerli olan "mükemmel gramer" tanımının burada da geçerli olduğunu söyleyebilirim. Ya tekil "onlar" mükemmel bir
gramerdir

Grammar Girl (yazar Mignon Fogarty) bir süredir tekil "onlar" ın kabulüne doğru eğiliyor. grammar.quickanddirtytips.com/…
Karen Lopez

4

Kullanıcıların erkek veya kadın olması gerektiğini varsaymak da yetersiz bir uygulamadır. Küçük ama önemli sayıda "interseks" insan var ve bunların birçoğu işaretleyecek bir kutunun olmamasından içtenlikle hasta ..
bignose: "tekil onlar" konusunda ilginç. Bu kadar uzun bir geçmişi olduğunu fark etmemiştim.



4

Python paketi SexMachine bunu sizin için yapacak. Herhangi bir ad verildiğinde, erkek, kadın veya üniseks ise geri döner. Jorg Michael'ın gender.c programındaki verilere dayanmaktadır .


3

Otomatikleştirmeye çalışmaktan alacağınız tek şey, bir grup mutsuz kullanıcıdır. Bu sayım verilerinden:

JAMES, JOHN, ROBERT, MICHAEL, WILLIAM, DAVID, RICHARD, CHARLES, JOSEPH, THOMAS, CHRISTOPHER, DANIEL, PAUL, MARK, DONALD, GEORGE, KENNETH, STEVEN, EDWARD, BRIAN, RONALD, YUSUF GARY, TIMOTHY, JOSE, LARRY, JEFFREY, FRANK, SCOTT, ERIC, STEPHEN, ANDREW, RAYMOND, GREGORY, JOSHUA, JERRY, DENNIS, WALTER, PATRICK, PETER, HAROLD, HENRY, CARL, ARTHUR, JUAN, JOE, JUAN, 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 ŞAL, 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, HIRİSTİYAN, LONNİE, CODY, JULIO, KELLY, JIMMIE, JORDAN, JAIME, CASEY, JOHNNIE, SIDNEY, JULIAN, DARL, VIRGIL, MARSHALL, PERRY, MARION, TRACY, RENE, FREDDIE, AUSTIN, JACKIE, JOEY, JACKIE, JOEY, DONNIE, SHANNON, ANGELO, SHAUN, LYNN, CAMERON, BLAKE, KERRY, JEAN, IRA, RUDY, BENNIE, ROBIN, LOREN, NOEL, DEVIN, KIM, GUADALUPE, CARROLL, SAMMY, MARTY, TAYLOR, ELLURIS, DALLURENCE, DALLURENCE DREW, JODY, FRANKIE, PAT, MERLE, TERRELL, DARNELL, TOMMIE, TOBY, VAN, COURTNEY, JAN, CARY, SANTOS, AUBREY, MORGAN, LOUIE, STACY, MICAH, BILLIE, LOGAN, DEMETRIUS, ROBBIE, KENDALL, ROBBIE, KENDALL 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, FILDIŞI, 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 ve JEWELCLAIR, BERNIE, JOAN, DOMINIQUE, TRISTAN, JAME, GALE, LAVERNE, ALVA, STEVIE, ERIN, AUGUSTINE, YOUNG, JOHNIE, ARIEL, DUSTY, LINDSEY, TRACEY, SCOTTIE, SANDY, SYDNEY, GAIL, DORFIAN, LAVERN, FİLDİŞİ, 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 ve JEWELCLAIR, BERNIE, JOAN, DOMINIQUE, TRISTAN, JAME, GALE, LAVERNE, ALVA, STEVIE, ERIN, AUGUSTINE, YOUNG, JOHNIE, ARIEL, DUSTY, LINDSEY, TRACEY, SCOTTIE, SANDY, SYDNEY, GAIL, DORFIAN, LAVERN, FİLDİŞİ, 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 ve 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 ve 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 ve JEWEL

hem erkekler hem de kadınlar için işe yarayan isimlerdir. Bir kızın adı Robert ise ve yazılımınız dahil herkes ona erkek demeye devam ederse, kız çok kızar.


25
Mark adında bir kız olduğunu varsayalım (birini göstermekten çekinmeyin). Onun yerinde olsaydım, Chas'ın yazılımına değil, aileme kızardım ...
Darko Z

6
Ya yazılım ona asla erkek demez ama kullanıcı arayüzünün "erkeksi" sürümünü sunarsa? Ya da pazarlama teminatı geliştirmek için kullanılan bir veri kümesi üzerinde erkeklerle bir araya geldi mi? Farkına bile varmayabilir.
Chris McCall

Bu isimlerin çoğu için, belirtilen isme ait 500-1200 Facebook profilinden elde edilen verilere dayanarak% 100 kesinlik elde ediyorum. api.genderize.io/?name=robert api.genderize.io/?name=andrew api.genderize.io/?name=john
Strömgren

3

Veritabanları muhtemelen en pratik çözüm olsa da, biraz eğlenmek istiyorsanız belki adı alan ve bu 3 seçenekten birini (F, M, A ).

Diğer yanıtların önerdiği veritabanlarında bulunan veri kümelerini ve sahip olduğunuz diğer verileri kullanarak onu eğitebilirsiniz.

Bu çözüm, önceden özel olarak kategorize edilmemiş isimleri işlemenize ve ayrıca farklı dilleri işlemenize olanak tanır. Dili (eğer biliyorsanız) sinir ağına bir girdi olarak da geçirmek isteyebilirsiniz.

Sinir ağlarının (veya başka herhangi bir makine öğreniminin) kategorize etme konusunda iyi bir iş çıkaracağını söyleyebileceğimi bilmiyorum.


3

Kültüre / bölgeye bağlı: Andrea'yı ele alalım, İtalyanlar sadece eril, çünkü İsveç kadın ismi, Andreas erkekler için; Shawn, İngilizce belirsizdir. Latince veya Rusça gibi bir dilde sapma varsa, son harfler gramer kurallarına göre değişecektir,

Diğer bir belirsizlik kaynağı, Kişisel isimlerle aynı olan Aile isimleridir.

Bence genel olarak çözmek imkansız.


OP'nin köken kültürünü, doğum yerini, uyruğunu, yararlı olabilecek her şeyi gösteren bir eş değişkeni olsaydı. Ama öyle olmadığını söyledi, bu yüzden sadece toplamlara dayalı istatistiksel olarak bilgilendirilmiş bir tahmin yapmanız gerekiyor.
smci

3

Fikir açıkça çoğu dilde çalışmayacaktır.

Ancak milliyeti önceden söylerseniz daha fazla şansınız olabilir. Çoğu Slav dilinde (örneğin rusça, lehçe, bulgarca) -va -cha -ska (genel olarak -a ile biten soyadların dişil olduğunu), -v -ch -shi'nin ise erkeksi olduğunu güvenle varsayabilirsiniz.

Aslında herhangi bir soyadı, sona bağlı olarak kadınsı ve erkeksi bir forma sahiptir. Diğer ülkelerde (örneğin ABD) kullanılan aynı isimler, sadece erkeksi formu kullanabilir.

Aynı şey ilk isimler için de söylenebilir (-a -ya dişildir) ancak% 100 doğru değildir.

Ancak genel olarak yeterince doğru bir kütüphane bulmanız pek mümkün olmaz.


bir soyadı nasıl eril veya dişildir?
Simon_Weaver

2
@Simon_Weaver Babamın soyadı Slavchev, annemin soyadı Slavcheva. Aslında aynı soyadı biti erkekler ve kadınlar için farklı yazılır. Bu Slav isimleri için yaygındır.
Dimitar Slavchev


2

Z Dizini (vettrasoft.com'da) bir C dili işlevine sahiptir, şu şekilde çalışır:

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

veritabanına dayalı, tabloda 10.000'den fazla isim var sanırım, ancak z dizinini indirmeniz ve yüklemeniz gerekiyor (ülkeler, coğrafi işaretler, havaalanları, eyaletler, alan kodları, posta-posta kodları vb. gibi diğer birçok topo öğesini içerir. verilere erişmek için c ++ işlevleri ve nesneleri ile birlikte). Ancak isimler çok İngilizce dil odaklı. Tablo, devam eden bir çalışmadır ve kademeli olarak güncellenmektedir.


1

İsim-cinsiyet haritaları işe yarayabilir ancak çok kültürlü ülkelerde bu daha çok tahmin etmeye benzer. Size bir örnek verebilirim: Lehçe'deki Marian tipik bir erkeksi isimdir, oysa Büyük Britanya'daki aynı isim bir kadın ismi. Dünyanın her yerine göç eden insanlar çağında, böyle bir veri tabanının çok doğru olacağından emin değilim. İyi şanslar!


1
Hayır, ama% 50'den daha iyi olduğu sürece isimlere her zaman erkeksi davranmaktan daha iyidir.
Chas. Owens

@Chas, öyleyse neden bu yanlış ikileme sarılıyorsunuz? Cinsiyet-tarafsızlık seçeneğiniz var.
bignose

Hatta veritabanınızda kadınsı olarak sınıflandırılacak ikinci adı 'maria' - 'mary' olan 2 ünlü siyasetimiz var. sadece lols için.
zalew

@JZ Soyaddan değil addan bahsediyorum (veya tersini yapan kültürler için tam tersi).
Chas. Owens

@bignose, cinsiyet ayrımı gözetmeyen dil tuhaf görünüyor ve kıvrımlı, yapabildiğimde daha güzel görünen bir şey üretmeyi tercih ederim. Bu, bireylere geri bildirilmez (eğer var olsalar bile), bu yüzden suçlama şansı yok, insanların neden iyi bir şey biliyorlarsa veritabanlarına bağlantı sağlamak yerine bunu tartışmak için bu kadar çok zaman harcadıklarını bilmiyorum. bir.
Chas. Owens

1

Bazı kültürlerin üniseks isimleri vardır - benimki gibi. O zaman ne yapacaksın? Bence cevap basit ve basit - varsaymayın - kırılmaya neden olabilirsiniz. Sadece gerekli olup olmadığını sorun, aksi takdirde cinsiyet tarafsızlık.


5
Soru zaten cevabınızı cevapladı: alax => "A", #ambiguous. Sorunun bir cevabı olsun ya da olmasın, cevabınız o değil.
Windows programcısı

Katılmıyorum - Demek istediğim, tüm isimlerin potansiyel olarak belirsiz olması.
Preet Sangha

İsimler unisex ise hepsi A olarak sınıflandırılır ve cinsiyet tarafsızlığını tercih ederdim, ancak bir isim ağırlıklı olarak eril veya dişil ise çok daha doğal bir dil kullanabilirim.
Chas. Owens

Gerekçenizin ne olduğunu anlıyorum ama sizi ikinci yoruma yönlendiriyorum.
Preet Sangha

3
Ancak StackOverflow'da bir "Preet" görürseniz, muhtemelen bir erkektir.
Nosredna

1

Artık değil. IBM bu fikri bir süre önce patentledi .

Dolayısıyla, herhangi bir esneklik düzeyi arıyorsanız (isim listesinden başka bir şey), ya kullanıcıya sormanız (gasp!) Ya da haklar için IBM'e ödeme yapmanız gerekir :)

Her halükarda, bu tür bir otomatik algılama, cinsiyet açısından belirsiz isimlere sahip, hatta sadece ebeveynleri kötü olan birçok insan için can sıkıcıdır. Bunu onlar için daha da zorlaştırmayalım.


3
Görünüşe göre IBM, isme göre bir avatar seçerek patent almış. Şans eseri, bunu kullanmak istediğim uygulamalardan biri bu değil, bu yüzden patentlerini ihlal etmiyorum. Kullanıcıya sormaya gelince, bu, bir isim listesi yerine soracak kullanıcıların olduğunu varsayar. Kullanıcıların, etkileşimlerin ve isimlerin ait olduğu kişilere giden mesajların olmadığını defalarca söyledim.
Chas. Owens

1

Ücretsiz değil, ama bu daha önce kullandığım güzel bir kitaplık:

NetGender for .NET, özel uygulamalarınızda hızlı ve kolay bir şekilde Ad Doğrulama, Ayrıştırma ve Cinsiyet Belirleme oluşturmanıza olanak tanır. Belirli bir alanın geçerli bir kişi veya şirket içerip içermediğini doğru şekilde doğrulayın. NetGender, cinsiyetin kesin olarak belirlenmesini sağlamak için 100.000'den fazla, etnik olarak çeşitli İsim Sözlüğü ile 8.000'den fazla Şirket Adı Sözlüğü kullanır.

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


1

Doğum tarihin olduğunu söylemen ilginç. Bu yardımcı olabilir. İsimlerin popülerlik tarihlerinin veri tabanlarını gördüm.

Splash (1984) filminde, Darryl Hannah'ın karakterinin Madison Avenue'daki bir sokak tabelasından "Madison" adını seçmesi komikti, çünkü açıkça "Madison" bir kız adı değil.

24 yıl sonra, Madison kız bebekler için 4. en popüler isimdir!


Devletten isim geçmişi. (Mary'nin son 100 yıldaki üzücü düşüşüne bakın.)


Çocukken Beyaz Saray'a yazdığımda, Richard Nixon (veya belki bir sekreter) bana tarihi yerin bazı fotoğraflarıyla cevap verdi, "Bayan Rhett Anderson" a hitaben. "Bayan Rhett?" Mantıklı bile değil! Clark Gable'ın Rhett'i (Gone With The Wind'de bıyıklı!) İle Vivian Lee'nin Scarlett'i arasındaki farkı GERÇEKTEN söyleyemez miyiz? Neil Young'ın "Richard Nixon'ın bile ruhu vardır" güvencesine rağmen onu asla affetmeyeceğim.


İyi nokta, tarih kesinlikle burada devreye giriyor.
Chas. Owens

1

Kabul edilebilir bir doğruluk düzeyinde böyle bir hizmetin var olamayacağından oldukça eminim. Aşılamaz olduğunu düşündüğüm sorunlar şunlardır:

  • Hem erkekler hem de kadınlar için pek çok isim var.
  • Sadece bir ülke düşünseniz bile, bu dünyada pek çok farklı isim var.
  • Johnny Cash tarafından çok anlamlı bir şekilde dile getirilen "Sue Adında Bir Çocuk" sorunu var :-)

2
İyi bir veritabanı, bölgeye ve örneğin alındığı zamana göre androjen isimler için erkek / kadın yüzdesine sahip olacaktır.

Japonca gibi diller ne olacak? Japonca öğreniyorum, bu yüzden burada yanılıyor olabilirim, ancak <-> Kanji isimleri basit ilişkiler değil, kanji'nin bir kişinin adını "ne" oluşturduğuna dair kelime oyunları ve yanlış anlaşılmalar oldu.
Pharaun


1

Python cinsiyet algılama projeme göz atabilirsiniz https://github.com/muatik/genderizer

Yazarların isimlerine ve / veya örnek metinlerine (örneğin tweetlere) bakarak cinsiyetlerini tespit etmeye çalışır.

Ayrıca performans için memcached olan mongodb'yi de destekler.


İyi görünüyor, ancak "menşe ülke" olması gerekiyorsa, aşağıdaki gender.c veya genderize.io bölümüne bakın
HaveAGuess

0

Bu gerçekten bir programlama problemi değildir - bir olasılık tablosu elde etmeye gelir.

AFAIK, damıtılmış formlarda halka açık veri tabanları yoktur. Bunu nüfus sayım verilerinden oluşturabilir veya verileri birinden satın alabilirsiniz.

Örneğin, bu Kanada için olasılık tablosunu satan kişidir .


0

IMHO, cinsiyeti bir birey adından belirlemek genellikle kötü bir fikirdir. Pek çok isim interseksüeldir (iyi keder, bu bir kelime mi ?? :-) ve ayrıca bir kültürde bir cinsiyet, diğerinde başka bir cinsiyet olabilir.

Birkaç aptal örnek, aklıma gelen sadece birkaçı (benim dünyamdan, CE)

Vanja - kadın, buradan doğu ülkelerinde, çoğunlukla erkek
Alex - interseks (Sandra, kadın ve Sandro'nun kısaltması, erkek)
Robin - batı kültürlerinde ikisi de olabilir

Dünyanın bazı yerlerinde, bir kişinin cinsiyeti, isminin nasıl bittiğine bakılarak belirlenebilir. Örneğin, Marija, Sandra, Ivana, Petra, Sara, Lucija, Ana - bu kadın isimlerinin çoğunun "ja" veya "ra" ile bittiğini görebilirsiniz. Başka örnekler de var.

Yine de, kullanıcıdan seks istemek daha iyi.


9
"Yine de, kullanıcıdan seks istemek daha iyi." - Katılıyorum, bu Stack Overflow'da yorum yazmaktan çok daha iyi olurdu.
Windows programcısı

2
Güç kaynağı. Tamam, bu doğru çıkmadı :-)
Rook

Düzenlemeden önce daha iyiydi :-)
Windows programcısı


0

Böyle bir hizmet olmadığını biliyorum. Bununla birlikte, belki de aradığınız verileri bulabilirsiniz. ABD hükümeti, adların yaygınlığı ve bağlı oldukları kişinin cinsiyeti hakkında veriler yayınlıyor. Sosyal Güvenlik Kurumu'nun böyle bir sayfası var ve nüfus sayımı da olabilir, ama bakmaya zaman ayırmadım. Belki diğer dünya hükümetleri de benzer şeyler yapıyor.


0

Ama böyle bir hizmet bilmiyorum ..

Bazı ülkelerde (örneğin Almanya) bir kişiye verilebilecek isim kanunla sınırlıdır - belki bu konuyla ilgili hasat edilebilecek bazı yayınlar vardır (ancak şu anda hiçbirini bilmiyorum).


0

Yapacağım şey, adını alan ve facebook api'sine karşı arayan bir hack yapmak. Ardından ortaya çıkan kullanıcılara bakın ve kaçının kadın veya erkek olduğunu sayın. Daha sonra bir yüzde döndürebilirsiniz. Artık o kadar aşılmaz değil. :)


-2

İnsanlara sorun ve eğer iyi iseler size 'M'leri veya' F'leri verecekler ve değilse 'A' verecekler.


2
İsimlerini haritalandırmak istediğim insanlarla iletişim halinde değilim.
Chas. Owens
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.