Komentáře k článku

Odhad pohlaví z celého jména

Female Male Muž Žena

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í.

Zpět na článek

25 komentářů k článku Odhad pohlaví z celého jména:

  1. 100% Lenin

    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 :-)

      1. 100% Lenin

        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?

    1. balki

      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.

  2. nuny

    ??? k čemu toto ???

    ??? k čemu toto ???, není lepší a přesnější (100%) male/female ~ boolean v tabulce se jménem ?

    1. Petr

      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ě :)

    2. Gorila

      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?

      1. Karol

        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.

        1. j

          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 ….

    3. Karel

      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…

    4. Peter BrejčákAutor příspěvku

      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?)

  3. Michal Illich

    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.

  4. X125

    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

  5. vembloud

    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.

    1. Peter BrejčákAutor příspěvku

      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

  6. JS

    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.

    1. Jerry12

      Re: Odhad pohlaví z celého jména

      Pocitace jsou dost neomylna zarizeni, horsi je to s kvalitou periferie mezi zidli a klavesnici :-).

    2. Ondra

      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.

  7. Ladislav Thon

    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…

  8. Clock

    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.

    1. Petr

      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.

  9. Trident

    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.

Napsat komentář

Přihlásit se

Tato diskuse je již příliš stará, pravděpodobně již vám nikdo neodpoví. Pokud se chcete na něco zeptat, použijte diskusní server Devel.cz

Zdroj: http://www.zdrojak.cz/?p=3585