Poítaové zpracování pirozeného jazyka Vyhodnocování úspšnosti Daniel Zeman http://ckl.mff.cuni.cz/~zeman/
Úspšnost zpracování PJ Jak ovit, že program funguje správn? 2 ásti: programátorská (nepadá to) vcná (jazyk zpracován správn ) Programátorská ást: Existují data, pro která to nepadá. Zkoušet, zkoušet, zkoušet Množina možných vstup je nekonená. http://ckl.mff.cuni.cz/~zeman/ 2
Jazyková ást vyhodnocení Objektivnost hodnocení objektivní (mitelné a srovnatelné s okolím) subjektivní (závislé na názoru uživatele) Nkdy zcela objektivní metoda neexistuje! strojový peklad Nkdy je dokonce vhodné zahrnout subjektivní hodnocení (ale vtšího potu uživatel) Jak dobe a snadno se vám se systémem pracovalo? http://ckl.mff.cuni.cz/~zeman/ 3
erná a sklenná skíka Máme možnost vidt dovnit systému? erná skíka (black box): nevidíme dovnit, hodnotíme chování a výstup celku. Sklenná skíka (glass box): umíme systém rozdlit na komponenty a hodnotit každý zvláš, umíme íct nejen ke kolika chybám došlo, ale i jaké druhy chyb to byly, atd. http://ckl.mff.cuni.cz/~zeman/ 4
Píklad erné skíky Program pro zodpovídání dotaz na databázi Hodnotíme správnost odpovdí. Pi chyb nevíme, zda k ní došlo kvli neporozumní nkterému slovu v dotazu neporozumní celé vt v dotazu technické chyb v programu chyb v databázi http://ckl.mff.cuni.cz/~zeman/ 5
Nejen vyhodnocování, ale i vyhodnocovaný program se mže chovat jako erná i sklenná (s více i mén matným sklem) skíka Statistické metody: asto erná skíka. Mžeme se jen dohadovat, pro nco nevyšlo. Pravidlové metody: lze vystopovat pravidlo-viníka. http://ckl.mff.cuni.cz/~zeman/ 6
erná a sklenná skíka: pro a proti Vyhodnocování ernou skíkou je to jediné dležité z hlediska koncového uživatele. Bhem vývoje je však poteba vidt dovnit kvli snadnjší oprav chyb. Sklenná skíka: dohoda, jaké komponenty systém má, obtíže s jejich vymezením. http://ckl.mff.cuni.cz/~zeman/ 7
Objektivita hodnocení Ideální jsou mitelné metody Potebujeme testovací data (pokud možno v reprezentativním složení a množství) Tzv. zlatý standard. Pi subjektivním hodnocení alespo reprezentativní složení a poet hodnotitel, kteí piazují íselné ( zprmrovatelné) známky. Hodnocení typu Jé, to krásn funguje! se prmrují tžko. Výbr kategorií ke známkování je dležitý http://ckl.mff.cuni.cz/~zeman/ 8
Varovný píklad: ELIZA Program simulující psychoterapeuta (pedpokládá, že uživatel je pacient) Komunikuje v pirozeném jazyce (EN) Vyvinut v 60. letech 20. století na MIT Na první pohled mimoádn umle inteligentní Tedy: na 1. pohled mimoádn inteligentní na 2. pohled mimoádn umle http://ckl.mff.cuni.cz/~zeman/ 9
ELIZA U: Muži jsou všichni stejní. E: V jakém smyslu? U: Poád nás ním otravují. E: Máte njaký konkrétní píklad? U: Tak teba mj pítel m piml sem jít. E: Váš pítel vás piml sem jít. U: íká, že mám poád deprese. http://ckl.mff.cuni.cz/~zeman/ 10
ELIZA E: To je mi líto, že máte deprese. U: Je to tak, jsem nešastná. E: Myslíte, že vaše návštva zde vám pomže, abyste nebyla nešastná? U: Njakou pomoc každopádn potebuju. E: Co vám to pinese, když dostanete njakou pomoc? http://ckl.mff.cuni.cz/~zeman/ 11
ELIZA U: Snad bych se mohla nauit vycházet se svou matkou. E: Povzte mi více o své rodin. U: Má matka se o m stará. E: Kdo jiný ve vaší rodin se o vás stará? U: Mj otec. E: Váš otec. http://ckl.mff.cuni.cz/~zeman/ 12
ELIZA U: Vy jste v nem trochu jako mj otec. E: Jakou podobnost vidíte? http://ckl.mff.cuni.cz/~zeman/ 13
Technologie za Elizou Porovnávání vzor (pattern matching) Klíová slova V uživatelov vt U najít klíové slovo, jehož vzor (pattern) odpovídá vt U. Odpovídá-li vta vzorm více klíových slov, vybrat podle jejich priority. Podle vty U a specifikace u klíového slova zkonstruovat reakci. Nebyla-li nalezena žádná klíová slova, odpovdt nco obecného jako eknte mi o tom více. nebo Pokraujte. http://ckl.mff.cuni.cz/~zeman/ 14
Eliza: Píklad vzoru Otazníkem zaínají promnné, jejichž obsah lze zkopírovat na výstup. Klíové slovo: jsou Vzor:?X jsou?y Výstup: Co kdyby nebyli?y? http://ckl.mff.cuni.cz/~zeman/ 15
Eliza: další píklady vzor Slovo Pri Vzor vstupu Výstupy stejní 10?X V jakém smyslu? Jakou podobnost vidíte? je 3?X je?y Co kdyby nebyl?y? 3?X ona je?y Byla byste radši, kdyby nebyla?y? vždy 5?X Máte njaký konkrétní píklad? Kdy? Opravdu vždy? co 2?X Pro se ptáte? Zajímá vás to? http://ckl.mff.cuni.cz/~zeman/ 16
Další triky Má-li Eliza více výstup pro jeden vzor, vybere pokaždé jiný, aby se moc neopakovala. http://ckl.mff.cuni.cz/~zeman/ 17
Hodnocení Elizy Program nerozumí konverzaci, které se úastní. Uživatel to nemusí poznat ihned. Zvlášt, je-li skuten pacientem zralým pro psychiatra! V jiných doménách by byl program mén úspšný Nepotebuje znalost svta, protože nic netvrdí, s niím nesouhlasí, na nic neodpovídá. Radji klade sérii otázek. Pímé otázky odráží protiotázkami typu Pro se ptáte? Nelze ji pinutit íct cokoli konkrétního o emkoli. http://ckl.mff.cuni.cz/~zeman/ 18
Hodnocení Elizy 2 I v takto omezeném prostoru lze celkem snadno ukázat, že Eliza je hlupák: U: Opatrnost je matka moudrosti. E: Povzte mi více o své rodin. Nevadí jí nesmyslné vstupy: U: Zelené ten adzabak je ten kuk bžel tyi. E: Co kdyby nebyl ten kuk bžel tyi? Nemá pam, klade dotazy, které jsou nesmyslné ve svtle toho, co už bylo eeno. http://ckl.mff.cuni.cz/~zeman/ 19
Po svt bhá spousta Eliz, které si mžete vyzkoušet http://www-ai.ijs.si/eliza/eliza.html http://www.manifestation.com/neurotoys/eli za.php3 http://userpages.umbc.edu/~glong/cmsc433/ notes.php?topic=perl&file=notes13.html a tak dále: google.com: eliza therapist http://ckl.mff.cuni.cz/~zeman/ 20
Domácí úkol ELIZ Naprogramujte eskou Elizu. Snažte se v pravidlech zachytit i rod, íslo, pád Nap. odpov na X jsou Y bude trochu jiná než na X je Y. Parametr pi spuštní: rod uživatele. http://ckl.mff.cuni.cz/~zeman/ 21
Mitelné hodnocení Dotaz na fungování programu. Obvykle nelze odpovdt ano / ne (odpov by byla vždy ne). O to více potebujeme vdt, do jaké míry je který program v ešení daného problému úspšný. Píklad: Hákování Dostaten velký text testovací data Odstranit z nj háky a árky (jednoduché) Nechat testovaný program, aby je vrátil Porovnat výstup programu s pvodním textem http://ckl.mff.cuni.cz/~zeman/ 22
Úspšnost hákování Možnosti: úspšnost A = G / (G+B), kde G je poet správn ohákovaných písmen B je poet špatn ohákovaných písmen Místo na písmenech mže být G a B na slovech. Otázky: Poítat i písmena / slova, kde nebylo co rozhodovat? Písmena, která nepipouštjí žádnou diakritiku (v eštin teba B) Slova, která by pipouštla diakritiku, ale žádné slovo, které by tím vzniklo, nemáme ve slovníku (problematické, co když máme nekompletní slovník?) http://ckl.mff.cuni.cz/~zeman/ 23
Pípady, kde není co rozhodovat Program na nich boduje zadarmo. Pro hodnocení kvality programu nezajímavé, lze vylouit. Pro hodnocení kvality výstupu dležité, ponechat! Ten, kdo bude výstup programu používat, chce znát kvalitu výstupu, ne to, jak obtížn jí program dosáhl. http://ckl.mff.cuni.cz/~zeman/ 24
Porovnávání kvality programu Dležité: porovnávané programy testovat pokud možno na totožných datech! U hákování, morfologického znakování aj. je vc vkusu, zda zahrnout pípady zadarmo. Jiný píklad: hledání hranic mezi vtami. http://ckl.mff.cuni.cz/~zeman/ 25
Úspšnost hledání hranic vt Vstup: text s vyznaenými hranicemi slov. Výstup: obohacený o hranice vt. 1. možnost: Hranice vty je atributem slova: zaíná pede mnou vta? (ano / ne) Spoítat procento slov se správn urenou hodnotou tohoto atributu. http://ckl.mff.cuni.cz/~zeman/ 26
Hranice vt 1 Problém: výsledná ísla jsou zavádjící. Ped drtivou vtšinou slov vta nezaíná. Prmrná eská vta obsahuje 17 slov. Nepoznáme-li ani jednu vtu, dosáhneme úspšnosti kolem 16/17 = 94 %! Tedy jinak: co takhle procento rozpoznaných vt? http://ckl.mff.cuni.cz/~zeman/ 27
Hranice vt 2 Problém: nejde jen o zapomenuté hranice vt, asto je také pidáme tam, kde nejsou: <s>narodil se v pondlí po sv. <s>janu. <s> Najdeme-li správný poet vt, nemusí to být ty správné vty. => místo jedné veliiny budeme sledovat dv: pesnost a úplnost http://ckl.mff.cuni.cz/~zeman/ 28
Pesnost a úplnost Pesnost (precision): kolik z toho, co jsem našel, jsem ml najít? Úplnost (recall): kolik z toho, co jsem ml najít, jsem našel? http://ckl.mff.cuni.cz/~zeman/ 29
Pesnost a úplnost hranic vt 2 soubory: tvrzení (které testuju) a vzor (s nímž tvrzení porovnávám). 4 možná hodnocení každého slova: v1t1 = vta ped ním zaíná ve vzoru i v tvrzení v0t0 = ani ve vzoru, ani v tvrzení v0t1 = ve vzoru ne, v tvrzení ano v1t0 = ve vzoru ano, ne tak v tvrzení Ozname si v1t1 poet slov hodnocených v1t1 atd. http://ckl.mff.cuni.cz/~zeman/ 30
Pesnost a úplnost hranic vt 2 Úspšnost (Accuracy) A = (v1t1 + v0t0) / Σ vxty Pesnost (Precision) P = v1t1 / (v1t1 + v0t1) Úplnost (Recall) R = v1t1 / (v1t1 + v1t0) Potíž: dvouhodnotová hodnocení se tžko porovnávají. http://ckl.mff.cuni.cz/~zeman/ 31
Míra F (F-measure) Je lepší program, který dosáhne P = R = 50 %, nebo program, který na stejných datech dosáhne P = 90 % a R = 10 %? Odpov : ten první. Obecn nelze zanedbat ani P, ani R! (V konkrétních aplikacích to mže být jinak.) F-measure: u blízkých hodnot zhruba prmr, u vzdálených se kloní k té nižší. Zde: první program F = 50 %, druhý F = 18 %. http://ckl.mff.cuni.cz/~zeman/ 32
F-measure F PR = 2 P + R http://ckl.mff.cuni.cz/~zeman/ 33
Vyhodnocování pokroilejších úloh Morfologické znakování: prostá úspšnost (i chybovost) na slovech. Ovšem potebujeme run oznakovaná testovací data! Získat je mže být tžké nebo drahé. Nkdy si musíme aspo vzorek testovacích dat vytvoit sami. Závislostní syntaktická analýza: úspšnost piazování ídících uzl jednotlivým slovm. Frázová syntaktická analýza: pesnost a úplnost nalezených frází. http://ckl.mff.cuni.cz/~zeman/ 34
Vyhodnocování ješt pokroilejších úloh Rozpoznávání ei Podobné, jako hranice slov a vt: mohou být popletená slova, pidaná slova, ubraná slova. Problém se synchronizací. Strojový peklad Mže existovat nkolik stejn správných peklad. Nkolik hodnotitel lidí, známky v rzných kategoriích, na konci zjistit prmrnou známku. http://ckl.mff.cuni.cz/~zeman/ 35
Domácí úkol DIFF Porovnejte dva soubory, v nichž jsou vyznaené hranice slov (<f>, <d>, <D>). Jestliže se i-té slovo v obou souborech neshoduje, hledejte nejbližší další shodné slovo (nap. (i+k)-té v prvním souboru a (i+l)-té ve druhém). Návod: ve dvou hashích si pamatujte slova, jakmile narazíte na njaké, které už znáte ze druhého souboru, sesynchronizujte se. Vypoítejte P, R a F pro hranice slov, vypište na STDERR. http://ckl.mff.cuni.cz/~zeman/ 36