Szukam biblioteki lub bazy danych, która na podstawie jej imienia lub pseudonimu mogłaby określić, czy dana osoba jest mężczyzną czy kobietą. Coś jak
john => "M",
mary => "F",
alex => "A", #ambiguous
Szukam czegoś, co obsługuje nazwy inne niż angielskie (takie jak japońskie, indyjskie itp.).
Zanim otrzymam kolejną odpowiedź w rodzaju „Będziesz obrażać ludzi, zakładając ich płeć / płeć”, pozwól mi wyjaśnić, że moja aplikacja nie ma interakcji z nikim. W żaden sposób nie wysyła e-maili ani nie kontaktuje się z nikim. Brak użytkowników, o które można zapytać. W wielu przypadkach dana osoba nie żyje, a jedyne informacje, które posiadam, to imię i nazwisko, data urodzenia i data śmierci. Powodem, dla którego chcę poznać płeć osoby, jest poprawienie gramatyki wyniku i pomoc w ewentualnych wyszukiwaniach, które mogą nastąpić później.
źródło
Odpowiedzi:
Płeć imienia jest czymś, czego nie można wywnioskować programowo w ogólnym przypadku. Potrzebujesz bazy danych nazw.
Oto bezpłatna baza danych nazwisk z US Census Bureau .EDYCJA : Link do nazwy 2010 jest martwy, ale w komentarzach znajdują się działające linki i biblioteki.
źródło
gender.c to program typu open source w języku C, który wykonuje dobrą robotę. Zawiera dane 44568 imion z całego świata. Istnieje dobra dokumentacja i opis formatu pliku (w zasadzie zwykły tekst), więc odczytanie go z własnej aplikacji nie powinno być trudne.
Oto co mówi autor:
Program oblicza prawdopodobieństwo, że imię to mężczyzna lub kobieta. Może to zrobić z samą nazwą jako danymi wejściowymi lub z nazwą i krajem pochodzenia, co daje znacznie lepsze wyniki.
Można go pobrać ze strony niemieckiego magazynu komputerowego c't 40 000 Namen . Artykuł jest w języku niemieckim, ale nie martw się, cała dokumentacja jest w języku angielskim. Oto bezpośredni link do ftp 0717-182.zip, jeśli nie jesteś zainteresowany artykułem. Plik zip zawiera kod źródłowy, plik wykonywalny systemu Windows, bazę danych i dokumentację.
źródło
„Mówię ci, życie nie jest łatwe dla chłopca o imieniu Sue”.
... Więc po co to utrudniać? Jeśli chcesz poznać płeć, po prostu zapytaj ... W przeciwnym razie nie martw się o to.
źródło
Stworzyłem darmowe API, które daje probabilistyczne przypuszczenie płci na podstawie imienia. Zamiast korzystać z któregokolwiek z wyżej wymienionych podejść, zamiast tego używam ogromnego zestawu danych profili z sieci społecznościowych, aby zapewnić probabilistyczne przypuszczenie wraz z czynnikiem pewności. Obsługuje również opcjonalne filtrowanie według identyfikatorów kraju lub języka. Z dnia na dzień jest coraz lepiej, ponieważ do zbioru danych jest dodawanych więcej profili.
Można z niego korzystać bezpłatnie pod adresem http://genderize.io
Jedną rzeczą, którą powinieneś rozważyć, jest użycie narzędzia, które bierze pod uwagę dane demograficzne, ponieważ konwencje nazewnictwa będą w dużym stopniu na tym polegać.
Przykład
źródło
Oto dwa dziwaczne podejścia, które mogą nawet nie działać i prawdopodobnie nie działałyby masowo bez naruszenia warunków licencji:
Skorzystaj z API Facebooka (o którym praktycznie nic nie wiem, może nawet nie być możliwe), aby przeprowadzić dwa wyszukiwania: jedno dla mężczyzn FB o tym imieniu i jedno dla kobiet. Użyj dwóch liczb, aby określić prawdopodobieństwo płci.
O wiele luźniejsze, ale bardziej skalowalne, skorzystaj z interfejsu API Google i wyszukaj nazwę oraz zaimki specyficzne dla płci i porównaj liczby. Na przykład istnieje 592 000 000 wyników wyszukiwania hasła „Richard his” (nie jako wyrażenia), ale tylko 179 000 000 wyników wyszukiwania „Richard her”.
źródło
Biorąc pod uwagę określone ograniczenia, najlepszą opcją jest ponowne sformułowanie tego, co piszesz, tak, aby było neutralne pod względem płci, chyba że wiesz, jaką płcią chcą nazywać się w każdym przypadku.
Pisząc po angielsku , pamiętaj, że „oni” w liczbie pojedynczej są gramatycznie w porządku jako neutralne pod względem płci zaimki liczby pojedynczej w trzeciej osobie.
Dobrym przykładem jest tytuł tego pytania. Jak jest obecnie:
Byłoby mniej niezręczne, gdyby napisano:
źródło
Zakładanie, że użytkownik musi być mężczyzną lub kobietą, jest również kiepską praktyką. Istnieje niewielka, ale znaczna liczba osób „interseksualnych”, z których większość ma serdecznie
dosyć braku pola do zaznaczenia… bignose: interesujące w kwestii „pojedynczych osób”. Nie zdawałem sobie sprawy, że ma tak długą historię.
źródło
To nie jest usługa, ale mała aplikacja z bazą danych:
http://www.codeproject.com/KB/cpp/genderizer.aspx
A to narzędzie jest w języku niemieckim:
http://www.faq-o-matic.net/2011/06/01/zu-einem-vornamen-das-geschlecht-finden/
I jeszcze jeden w VB:
http://www.vbarchiv.net/tipps/tipp_1925-geschlecht-anhand-des-vornamens-ermitteln.html
Myślę, że w połączeniu z niektórymi listami „Najczęściej używane imiona w 2011 roku” powinieneś być w stanie zbudować coś przyzwoitego.
źródło
Pakiet Pythona SexMachine zrobi to za Ciebie. Podając dowolne imię, wraca, jeśli jest to męskie, żeńskie lub unisex. Opiera się na danych z programu gender.c autorstwa Jorg'a Michaela.
źródło
Jedyne, co otrzymasz, próbując go zautomatyzować, to grupa niezadowolonych użytkowników. Z tego spisu powszechnego:
to imiona, które pasują zarówno do mężczyzn, jak i kobiet. Jeśli dziewczyna ma na imię Robert i wszyscy, łącznie z Twoim oprogramowaniem, nadal nazywają ją mężczyzną, byłaby raczej wkurzona.
źródło
Chociaż bazy danych są prawdopodobnie najbardziej praktycznym rozwiązaniem, jeśli chcesz się zabawić, możesz spróbować napisać sieć neuronową (lub użyć biblioteki sieci neuronowej), która przyjmuje nazwę i wyświetla jedną z tych 3 opcji (F, M, A ).
Możesz go wytrenować, korzystając ze zbiorów danych, które istnieją w bazach danych sugerowanych przez inne odpowiedzi, a także z dowolnymi innymi danymi, które posiadasz.
To rozwiązanie pozwoliłoby na obsługę nazw, które nie były wcześniej skategoryzowane, a także obsługę różnych języków. Możesz również przekazać język (jeśli go znasz) jako dane wejściowe do sieci neuronowej.
Nie wiem, czy mogę powiedzieć, że sieci neuronowe (lub jakiekolwiek inne systemy uczące się) wykonałyby dobrą robotę przy kategoryzowaniu.
źródło
Jest zależne od kultury / regionu: weźmy Andreę, ponieważ Włosi są tylko męskie, ponieważ Szwecja to imię żeńskie, a Andreas dla mężczyzn; Shawn jest niejednoznaczny w języku angielskim. Jeśli język ma deklinację, jak łacina lub rosyjski, ostatnie litery zmienią się zgodnie z regułami gramatycznymi,
Innym źródłem niejasności są nazwiska identyczne z imionami osobistymi.
Moim zdaniem jest to niemożliwe do rozwiązania w ogóle.
źródło
Pomysł najwyraźniej nie zadziała w większości języków.
Jednak gdybyś mógł wcześniej określić narodowość, mógłbyś mieć więcej szczęścia. W większości języków słowiańskich (np. Rosyjski, polski, bułgarski) można śmiało założyć, że wszystkie nazwiska kończące się na -va -cha -ska (-a są generalnie żeńskie), podczas gdy -v -ch -shi są męskie.
W rzeczywistości każde nazwisko ma formę żeńską i męską w zależności od zakończenia. Te same nazwy używane w innych krajach (np. W USA) mogą jednak używać tylko formy męskiej.
To samo można powiedzieć o imionach (-a -ya są rodzaju żeńskiego), ale nie jest to w 100% dokładne.
Ale generalnie trudno byłoby uzyskać bibliotekę, która jest wystarczająco dokładna.
źródło
Nie używałem go, ale IBM ma globalną analizę nazw bibliotekę (za cenę!), Która wydaje się dość obszerna.
źródło
Katalog Z (na vettrasoft.com) ma funkcję języka C, działa mniej więcej tak:
jest oparty na bazie danych, wydaje mi się, że tabela ma około 10000 nazw, ale musisz pobrać i zainstalować katalog z (zawiera wiele innych elementów topo, takich jak kraje, punkty orientacyjne, lotniska, stany, numery kierunkowe, kody pocztowe itp. wraz z funkcjami i obiektami C ++ umożliwiającymi dostęp do danych). Jednak nazwy są bardzo zorientowane na język angielski. Tabela jest w toku i jest stopniowo aktualizowana.
źródło
Mapy nazwy i płci mogą działać, ale w krajach wielokulturowych bardziej przypomina to zgadywanie. Mogę podać jeden przykład: Marian po polsku to typowo męskie imię, podczas gdy w Wielkiej Brytanii to samo imię jest żeńskie. W dobie imigrantów na całym świecie nie jestem pewien, czy taka baza danych byłaby bardzo dokładna. Powodzenia!
źródło
Niektóre kultury mają nazwy uniwersalne - takie jak moja. Co wtedy robisz? Myślę, że odpowiedź jest jasna i prosta - nie zakładaj - możesz obrażać. Po prostu zapytaj, czy jest to potrzebne, w przeciwnym razie neutralność płci.
źródło
Cóż, już nie. Opatentowany przez IBM ten pomysł jakiś czas temu.
Więc jeśli szukasz dowolnego poziomu elastyczności (czegoś innego niż lista nazwisk), będziesz musiał (sapać!) Zapytać użytkownika lub po prostu zapłacić IBM za prawa :)
W każdym razie taka autodetekcja jest irytująca dla wielu osób, które mają niejednoznaczne imiona płci, a nawet po prostu wrednych rodziców. Nie utrudniajmy im tego.
źródło
To nie jest darmowe, ale jest to fajna biblioteka, z której korzystałem wcześniej:
http://www.softwarecompany.com/dotnet/netgender.htm
źródło
Ciekawe, że mówisz, że masz datę urodzenia. To mogłoby pomóc. Widziałem bazy danych historii popularności nazw.
W filmie Splash (1984) zabawne było, że postać Darryla Hannah wybiera imię „Madison” z szyldu na Madison Avenue, ponieważ oczywiście „Madison” nie jest imieniem dziewczyny.
24 lata później Madison jest czwartą najpopularniejszą nazwą dla dziewczynek!
Nazwij historię od rządu. (Zobacz smutny upadek Mary w ciągu ostatnich 100 lat.)
Kiedy jako dziecko pisałem do Białego Domu, Richard Nixon (a może sekretarz) odpowiedział mi kilkoma zdjęciami historycznego miejsca zaadresowanymi do „panny Rhett Anderson”. - Panno Rhett? To nawet nie ma sensu! Czy NAPRAWDĘ nie możemy odróżnić Rhetta Clarka Gable'a (z wąsami, w Przeminęło z wiatrem!) A Scarlett Vivian Lee? Nigdy mu nie wybaczę, pomimo zapewnienia Neila Younga, że „nawet Richard Nixon ma duszę”.
źródło
Jestem prawie pewien, że żadna taka usługa nie mogłaby istnieć z akceptowalnym poziomem dokładności. Oto problemy, które moim zdaniem są nie do pokonania:
źródło
Sprawdź http://genderchecker.com/
źródło
Możesz rzucić okiem na mój projekt wykrywania płci w Pythonie https://github.com/muatik/genderizer
Próbuje wykryć płeć autorów szukających ich nazwisk i / lub przykładowego tekstu (na przykład tweetów).
Obsługuje również mongodb, memcached dla wydajności.
źródło
To naprawdę nie jest problem programistyczny - sprowadza się do uzyskania tabeli prawdopodobieństwa.
AFAIK nie ma publicznych baz danych w formie destylowanej. Możesz zbudować to na podstawie danych ze spisu powszechnego lub kupić dane od kogoś.
Na przykład jest to osoba, która sprzedaje tabelę prawdopodobieństwa dla Kanady .
źródło
IMHO, generalnie złym pomysłem jest określanie płci na podstawie nazwiska. Wiele imion jest interseksualnych (dobry smutek, czy to nawet słowo ?? :-), a także mogą oznaczać jedną płeć w jednej kulturze, a drugą w innej.
Kilka głupich przykładów, tylko kilka, które przyszły mi do głowy (z mojej części świata, CE)
Vanja - suczka, stąd we wschodnich krajach przeważnie mężczyzna
Alex - interseksualny (skrót od Sandra, kobieta i Sandro, mężczyzna)
Robin - w kulturach zachodnich może być jednocześnie
W niektórych częściach świata płeć osoby można określić, patrząc na zakończenie imienia. Na przykład Marija, Sandra, Ivana, Petra, Sara, Lucija, Ana - widać, że większość z tych imion żeńskich kończy się na „ja” lub „ra”. Są też inne przykłady.
Mimo to myślę, że lepiej po prostu poprosić użytkownika o seks.
źródło
Mam to z dyskusji na ten temat w wiadomościach hakerów
źródło
Nie znam takiej usługi. Być może możesz jednak znaleźć dane, których szukasz. Rząd Stanów Zjednoczonych publikuje dane dotyczące rozpowszechnienia imion i płci osoby, z którą jest związany. Administracja Ubezpieczeń Społecznych ma taką stronę i spis ludności może równie dobrze, ale nie znalazłem czasu na jej sprawdzenie. Być może inne rządy na świecie robią podobne rzeczy.
źródło
Nie znam jednak takiej usługi.
W niektórych krajach (np. W Niemczech) imię, które można nadać, jest prawnie ograniczone - być może są publikacje na ten temat, które można by zebrać (ale w tej chwili nie znam żadnych).
źródło
Zrobiłbym hack, który bierze nazwę i wyszukuje ją w interfejsie Facebooka. Następnie patrzy na powstałych użytkowników i liczy, ilu z nich to kobiety lub mężczyźni. Następnie możesz zwrócić procent. Już nie tak nie do pokonania. :)
źródło
Po prostu zapytaj ludzi, a jeśli są mili, dadzą ci swoje „M” lub „F”, a jeśli nie, to dadzą im „A”.
źródło