Komentáře k článku
Odhad pohlaví z celého jména

Při práci s daty reálných lidí můžeme narazit na problém určení jejich pohlaví. Pokud chceme použít například personalizované oslovení „vážená paní / vážený pane“, musíme mít informace o pohlaví uložené v záznamech, nebo se je můžeme pokusit určit. V článku si ukážeme takový algoritmus na určování pohlaví.
Konečně něco pro skutečné programátory
A ne jen kýč pro rychlokvašky a také programátory. Aneb, vzpomínáte na brilantní článek o pojídačích sušenek?
Díky :-)
Re: Konečně něco pro skutečné programátory
Jo, ale ten je nejmíň 40 let starý :-)))
Re: Konečně něco pro skutečné programátory
Což neubírá jeho nadčasovosti.
Dodnes se vždy ptám sám sebe, jestli jsem někde neudělal chybu a jestli ten co to jednou po mně bude louskat (bude-li to potřeba) tomu bude rozumět.
Někdy je lepší vyžadovat více od sebe samého než-li od ostatních. Inu, sušenky se samy neupečou. Ačkoliv to mnohým dnes připadá jako samozřejmost.
Nebo snad ne?
Re: Konečně něco pro skutečné programátory
Houby, tu je dostupny aj zdrojak. Toto zvladne kazda lama.
Naviac, PL/SQL je ako ten hnusny Pascal.
??? k čemu toto ???
??? k čemu toto ???, není lepší a přesnější (100%) male/female ~ boolean v tabulce se jménem ?
Re: ??? k čemu toto ???
Já jsem se napřed naučil číst a teprve potom psát. Ty jsi na to evidentně šel obráceně :)
Re: ??? k čemu toto ???
Ano je jednodušší mít male/female v tabulce. Ale tohle je ukázka jak zjistit pohlaví osoby dle jména když pohlaví není uvedeno. A když se to nezdaří, objeví se „no results“. Otázka jak často se tohle objeví (lepší varianta) nebo jak často bude odpověd nesprávná (mnohem horší varianta).
Tracy Pearson… M nebo F?
Saša Jirků… M nebo F?
Marti Pavlů… M nebo F?
Re: ??? k čemu toto ???
Ty nedostaneš právě výsledek u 27 procent položek noresult. Ty podle článku dostaneš 27 procent položek neurčil jsem, nu ale nemáš zaručeno v tom zbytku 73 procent jistotu určení Male/Female. Ty dostaneš pouze jistotu, že by jsi měl statisticky dostat správnou odpověď na 73 procent. A tímto projitím jsi tuto nejistotu snižil, ale nevyloučil chybu. Což podle mě program musí pokud se tváří, že to dělá.
Takže pokud tam nedáš položku male/female, je toto vhodné jenom např. policejní složky, spamery nebo obchodní přehledku. Jinak je toto pro praktické využití zbytečnost.
Re: ??? k čemu toto ???
Prakticky se to vyuziva pri rozesilani spamu ;D, jednoduse mate desitky tisic adres (at uz realnych nebo mailovych) a protoze si marketaci vymejslej, ze kazdyho treba oslovit, tak se resi, kdo je chlap/zenska, paac tyhle informace se pri ziskavani tech dat vetsinou nikam nezapisujou ….
Re: ??? k čemu toto ???
Přesně jak píšete, u slovanských jmen to bylo v příjmení, což některé „moderní“ ženy nechtějí, i na západě se začala dávat jména mužská ženám a naopak.
Takže když už to někdo dá do databáze ví jestli je to muž žena a prostě dá o „byte“ více do DBF a nemusí se vymýšlet takovéto šílenosti co žerou výkon a stojí čas programátora co se musí zaplatit.
Tedy pokud toto neřešíte v Rigest Digest nebo jak se jmenuje ta firma či podobných firmách nebo spam firma…
Re: ??? k čemu toto ???
Jak jsem uvedl, algoritmus je obecný pro odhad parametru na základě textového řetězce (pokud tento parametr neznáme nebo má špatnou kvalitu) takže může pomoci například:
• klientovi nabídnout časopis pro muže nebo pro ženy
• pokud potřebujeme zjistit, zda je klientem firma (s.r.o.) nebo fyzická osoba – například z důvodu zamezení podvodům, nabízení špatného produktu, správného ratingu pro půjčku
• pokud chceme klientovi nabídnout knihu, které ho bude zaujímat a rozhodujeme se mezi několika možnostmi (na základě názvu knih, které si od nás koupil, nebo na které se díval)
• abychom zjistili, v jakém jazyce je napsána webová stránka a na základě toho upravili výsledky vyhledávání (na základě prvních 2 vět textu)
• pro kontrolu, že jsou data uvedeny správně
• abychom odhadli, co našeho klienta zajímá, a zobrazili reklamu, která bude mít lepší click-rate
• abychom vylepšili kvalitu dat
Samozřejmě tyto problémy se dají řešit elegantněji, jiným typem odhadu a žádný nebude 100%.
Ale odhady jsou všude kolem nás, například když googlujete, tak google odhaduje, co je pro vás nejdůležitější, taky odhaduje, zda jste neudělali překlep a nabídne vám jiný výsledek (funkce did you mean?)
Pěkný článek
Díky za něj. Přidám ještě odkazy na:
https://metacpan.org/module/Text::GenderFromName
https://github.com/petewarden/genderfromname
Neořezávat diakritiku
Je to hezké, ale myslím, že vyšší přesnosti by se dosáhlo, kdyby se ze slovníku neořezávala diakritika + vyřešil by se jako speciální případ, když je jméno zadané bez diakritiky.
Taky nevím, k čemu je to dobré
Ale asi se někdo chce bavit – OK, nic proti tomu nemám.
Jen dva příklady. Třeba v USA je Dana mužské i ženské jméno, zatímco např. v Portugalsku je Maria taktéž mužské a i ženské jméno (asi i ve španělsky mluvících zemích.
http://en.wikipedia.org/wiki/Unisex_name
PERCENT_RANK, SUM()?
1) Nebylo by lepší pro výpočet skóre místo percent_rank použít relativní četnosti? Tedy nahradit:
PERCENT_RANK () OVER (order by count(*))
za:
count(*) / sum(count(*)) over ()
.Navíc by potom odpadla potřeba kejklí s UNION ALL.
2) Vzhledem k tomu, že se skóre porovnává s epsilon, nebylo by vhodnější AVG() místo SUM()? Takto jsou zvýhodňována delší jména.
Re: PERCENT_RANK, SUM()?
Ahoj Kamil,
s AVG() miesto SUM() súhlasím.
count(*) / sum(count(*)) over () by nefugoval pri výraznom rozdiele počtu rôznych ženských a mužských mien.
Miesto percent_rank by šlo použiť rank/(select count(distinct WORD) from dictionary) over (), dala by to v podstate totožné výsledky.
Peter
Re: Odhad pohlaví z celého jména
Jelikoz autor o sobe pise, ze se zabyva datovou kvalitou, rekl bych, ze hlavni vyuziti je kontrola databazi a hledani podezrelych zaznamu. Ti co se tu ptaji, k cemu je to dobre zrejme predpokladaji, ze pocitace jsou neomylne a v databazich nejsou chyby.
Re: Odhad pohlaví z celého jména
Pocitace jsou dost neomylna zarizeni, horsi je to s kvalitou periferie mezi zidli a klavesnici :-).
Re: Odhad pohlaví z celého jména
Pro nějakou kontrolu kvality dat (tedy v tom smyslu, zda odpovídají realitě) je toto prakticky bezcenné, protože fakticky ani lidský operátor nebo administrátor nemůže nikdy s jistotou podle jména říct, zda pohlaví uvedené v databázi odpovídá realitě. V případě českých jmen a příjmení je samozřejmě výrazně jednodušší to odhadnout, ale je to stále jen odhad.
Nicméně v obecnějším smyslu jde skutečně o nástroj pro zvýšení kvality dat – jejich obohacení o informaci, která v nich dříve explicitně nebyla k dispozici. Tato informace samozřejmě není kvalitní ve smyslu „ověřená“, nicméně i tak může mít slušnou hodnotu, pokud se vhodně využije. Podle mé zkušenosti se údaj o pohlaví zjištěný takovým způsobem užívá velmi často jednak pro PR a marketing, jednak (už méně často) pro diskriminaci podle pohlaví. V těchto případech obvykle až tak moc nezáleží na tom, jestli se v nějakém tom procentu trefíme vedle.
Re: Odhad pohlaví z celého jména
Hmm, zajímavý problém. Jak by asi obstálo počítání četnosti trigramů? Asi si to zkusím večer…
Odhad rande z data a pocasi
Jsem napsal algoritmus ktery z data a pocasi odhadne s 50% uspesnosti zda v ten den budu mit rande nebo ne
Z rande ktere jsem mel bylo 50% predpovezeno
A 50% prorokovanych rande se skutecne vyplnilo
Pocasi je teplota, tlak, osvetleni a relativni vlhkost.
Re: Odhad rande z data a pocasi
Jak velka byla testovaci mnozina?
Internal server error has occured
Please try again later. A prispevek v prdeli.
Re: Internal server error has occured
Pokud by byl podobný, jako ten váš předchozí, tak možná pánbůh zaplať za to… Víc takových dobře načasovaných server errorů. A možná bych i odstranil tu výzvu try again latter.
Re: Odhad pohlaví z celého jména
Tak a ted mi reknete. Jak resite zmenu pohlavi? A neni to vubec specialni pripad jak by se mohlo zdat. Nicmene pro pany programatory to zatim v informacnich systemech byl vzdy orisek, protoze vetsinou apriori predpokladali ze ke zmene u dane polozky nedojde. Vetsinou to resil manualni UPDATE. Jak resite rozpoznani pohlavi kdyz si transexual zvoli pohlavne neutralni jmeno? To ze spousta IS vubec nepredoklada zmenu rodneho cisla ci primo identifikuje pohlavi podle nej je uz vec poddruzna.