1 / 41

Počítačové zpracování přirozeného jazyka

Počítačové zpracování přirozeného jazyka. Daniel Zeman http:// ufa l.mff.cuni.cz/course/popj1/ zeman@ufal.mff.cuni.cz. Předpoklady. Žádné (téměř) Pouze: Základní znalost programování v některém programovacím jazyku Středoškolské znalosti mluvnice češtiny Pasivní znalost angličtiny výhodou.

Download Presentation

Počítačové zpracování přirozeného jazyka

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Počítačové zpracování přirozeného jazyka Daniel Zeman http://ufal.mff.cuni.cz/course/popj1/zeman@ufal.mff.cuni.cz

  2. Předpoklady • Žádné (téměř) • Pouze: • Základní znalost programování v některém programovacím jazyku • Středoškolské znalosti mluvnice češtiny • Pasivní znalost angličtiny výhodou http://ufal.mff.cuni.cz/course/popj1

  3. Zápočet • Zápočet za domácí úkoly (Perl, Python, Java…) • Počet odměněných řešitelů jedné úlohy může být omezen! • Součástí úkolu je jeho prezentace před ostatními v prosinci. http://ufal.mff.cuni.cz/course/popj1

  4. Přehled aplikací a problémů počítačové lingvistiky 1 • Vyhledat slovo v textu ve všech tvarech (morfologická analýza). http://ufal.mff.cuni.cz/course/popj1

  5. Vyhledání slova ve všech tvarech • Lze nechat vyhledat jen část slova, ale: • Internetové vyhledávače mají v indexu slova, ne jejich části. • Ovšem mnohé z nich už morfologii zvládají (Google). • Povolíme-li hledání částí, dostaneme i texty, které nás nezajímají: hledáme hodit, zadáme hod, dostaneme nejen hodit, hodím, hodil, nejen hod, hody, hodování, nejen přehodit, náhoda, přehodnotit, ale dokonce i chodit nebo schody. • Navíc nedostaneme hoď, hoďme, hoďte — to bychom museli hledat jenom ho, a to by bylo vůbec katastrofální. Zadat dotazy pro každý tvar zvlášť nejde, jsou jich desítky až stovky. • Některá slova mění i kmen (stůl – stolu; brát – beru – bral). http://ufal.mff.cuni.cz/course/popj1

  6. Přehled aplikací a problémů počítačové lingvistiky 1 • Vyhledat slovo v textu ve všech tvarech (morfologická analýza). • Kontrola pravopisu (spell checking). Inteligentní pro češtinu: např. kontrola tvrdého a měkkého i v příčestí minulém. • Kontrola gramatiky (grammar checking) a stylu. http://ufal.mff.cuni.cz/course/popj1

  7. Kontrola pravopisu • Prohledávání slovníku je jednoduché, jediná lingvistika je ten slovník. • Problém je rozumně vybrat podobná slova, která nabídneme jako náhradu. Jak měřit podobnost slov? Odhadnout podle kontextu, které z nich uživatel myslel? Gramatika může na daném místě požadovat sloveso, význam ostatních slov zase může napovědět, které sloveso je nejpravděpodobnější. • V češtině je prohledávání slovníku málo účinné, existuje řada koncovek, ale jen některé jsou možné v dané větě, chyby v tvrdém a měkkém i. Viz též kontrolu gramatiky. • Co zatím chybí: přepínač stylu (rozhodnu-li se pro koncovky typu –ej, je to jiná varianta jazyka a mělo by být vyžadováno držení jedné linie). • Zákaz dvou stejných slov za sebou: obecně ano, ale jsou výjimky, které by mohla rozpoznat kontrola gramatiky: Nesnese se se sestrou, snědl jí tu tu buchtu a teď jí jí její koláč. http://ufal.mff.cuni.cz/course/popj1

  8. Kontrola gramatiky a stylu • Ideální stav: kompletní syntaktická analýza vztahů ve větě. To je ale těžké. • Současná kontrola gramatiky v angličtině ve Wordu v sobě má i kontrolu stylu (bouří se proti dlouhým větám apod.) • Univerzální úkoly: velké písmeno na začátku věty, zakázat dvě mezery za sebou apod. • Úkoly v češtině: shoda podmětu s přísudkem (tvrdé a měkké i), shoda přívlastků s rozvíjenými podstatnými jmény, čárky kolem vnořených klauzí, interpunkce v uvozovkách. http://ufal.mff.cuni.cz/course/popj1

  9. Přehled aplikací a problémů počítačové lingvistiky 1 • Vyhledat slovo v textu ve všech tvarech (morfologická analýza). • Kontrola pravopisu (spell checking). Inteligentní pro češtinu: např. kontrola tvrdého a měkkého i v příčestí minulém. • Kontrola gramatiky (grammar checking) a stylu. • Háčkování: vrátit diakritiku do textu, ze kterého byla odstraněna. Obdobný úkol: doplnit samohlásky do arabského nebo hebrejského textu. http://ufal.mff.cuni.cz/course/popj1

  10. Háčkování • Háčkování a doplňování samohlásek, doplňování hranic slov (Asie) • Pouhé hledání ve slovníku nestačí, jak ukazují následující příklady: horka cokolada (horká / hořká), mala (malá / mála), udelana (udělána / udělaná), uspi (uspi / uspí), mami (mami / mámí), zadejte uhel (zadejte úhel / žádejte uhel), cesky (česky / český / Češky / čéšky), rad (rad / raď / rád / řad / řaď / řád) • Stejné problémy mají v řadě dalších jazyků, někde dokonce občas znaménka vynechávají, aniž by je k tomu tlačila neschopnost techniky (francouzština, rumunština). http://ufal.mff.cuni.cz/course/popj1

  11. Problémy podobné háčkování • Rozlišování malých a velkých písmen • Ve statistickém strojovém překladu bývá výhodné převést vstupní text na malá písmena. • Pak je ale nutné na výstupu odhadnout, kam patří velké písmeno. • T9 v mobilech • Např. „852536“ může znamenat „tlakem“, „vlakem“, „vláken“, „vlčkem“. http://ufal.mff.cuni.cz/course/popj1

  12. Doplňování krátkých samohlásek v arabštině a hebrejštině • Krátké samohlásky v semitských jazycích jsou podobný problém jako naše háčkování. • V dialektech se navíc samohlásky (ale i souhlásky) liší, přestože zápis arabským písmem je jen ten jeden! • جيب لي ثلاثة قحوة • HWHhQ HTh’LTh YL BYJ • jyb ly vlAvp qHwp(Buckwalterův přepis) • Jīb lī thlīthah qaħwah.(spisovná arabština) • žib lí tléta dil qahwa (mar) • žib lí thlétha qahwa (tun) • gib lí taláta ahwa (egy) • žib lí tléte ahwe (syr) • džib lí theláthe gahwe (irq) • přineste mi tři kávy (čsk) http://ufal.mff.cuni.cz/course/popj1

  13. Arabské samohlásky: nejednoznačnosti • Nejednoznačnosti: nejen v dialektech, ale i v mluvnici. • ﺏﺎﺘﻛ = kitáb (kniha) • ﺐﺘﻛ = katab (psát), kutub (knihy) • ﺖﺒﺘﻛ = katabt (napsal jsem, napsala jsem, napsal jsi), katabti (napsala jsi), katabit (napsala) • Arabština umí zapisovat samohlásky pomocí diakritiky, ale Arabové to nedělají, vyskytuje se snad pouze v Koránu. • Zapisují se dlouhé samohlásky (Á = ’, Í = Y, Ú = W), proto cizí slova mívají všechny samohlásky dlouhé, aby Arab poznal, jak se vyslovují (Československo = Tšíkúslúfákijá). • Totéž platí pro hebrejštinu: v tóře bývají samohlásky zapsány, aby židé roztroušení po světě a hovořící jinými jazyky nezapomněli výslovnost, ale po Izraeli nic takového nenajdeme. http://ufal.mff.cuni.cz/course/popj1

  14. Segmentace • Doplňování hranic slov (asijské jazyky, zejména čínština). I to je trochu analogie k doplňování samohlásek či diakritiky. • Číňané nemají pojem slova, ale pro počítačové zpracování jazyka se tento pojem hodí. Znak (slabika) není vždy ideální ekvivalent. • 这个多少钱? • zhè ge duō shǎo qián ? (če ke tuo šao čchien?) • tenhle kus mnoho málo peníze ? • Zhège duōshǎo qián? • Tohle kolik peněz? ... Kolik to stojí? http://ufal.mff.cuni.cz/course/popj1

  15. Přehled aplikací a problémů počítačové lingvistiky 1 • Vyhledat slovo v textu ve všech tvarech (morfologická analýza). • Kontrola pravopisu (spell checking). Inteligentní pro češtinu: např. kontrola tvrdého a měkkého i v příčestí minulém. • Kontrola gramatiky (grammar checking) a stylu. • Háčkování: vrátit diakritiku do textu, ze kterého byla odstraněna. Obdobný úkol: doplnit samohlásky do arabského nebo hebrejského textu. • Rozpoznávání naskenovaného písma (optical character recognition, OCR). • Rozpoznávání řeči (speech recognition). Diktát se vrací ve smartphonech. Vyhledávání v nahrávkách (speech Google?) • Strojový překlad z jednoho (přirozeného) jazyka do druhého. • Generování textů (např. manuálů) v různých jazycích. http://ufal.mff.cuni.cz/course/popj1

  16. Přehled aplikací a problémů počítačové lingvistiky 2 • Rozpoznat (převažující) jazyk, ve kterém je určitý dokument. • Nalézt relevantní dokumenty v textové databázi (Google!). Nebo třeba: rozpoznat spam v mailu. • Vytáhnout informace ze zpráv nebo článků s jistým tématem (např. všechny obchody s akciemi v daný den) • Sumarizace textů (např. vytvořit třístránkové shrnutí tisícistránkového dokumentu). • Dotazy na databázi v přirozeném jazyce (např. rezervace letenek). • Automatická komunikace se zákazníkem po telefonu: 800 899 998. • Hlasové řízení stroje. Generování řeči strojem. • Výukové systémy interagující se studentem, obecné systémy pro řešení konkrétních problémů. http://ufal.mff.cuni.cz/course/popj1

  17. Dílčí problémy • Tokenizace (hranice slov a vět) • Morfologická analýza (slovník + ohýbání) • Zjednoznačňování, značkování (tagging), lemmatizace • Rozlišení významu slov (word sense disambiguation) • Zařazení slov do tříd podle použití (clustering) • Synchronizace různojazyčných verzí téhož, párování vět a odst. • Syntaktická analýza (parsing). • Hledání základních jmenných frází (base noun phrase chunking) • Zavěšování předložkových frází (prepositional phrase (PP) attachment) • Slovesné rámce • Hloubková analýza • Základ a ohnisko (topic and focus), hloubkový slovosled. • Doplnění chybějících členů • Koreference • Analýza diskurzu, anafora. http://ufal.mff.cuni.cz/course/popj1

  18. Přišel Přišel Přišel Přišel . . . . pán pán pán pán se se odnaproti odnaproti ten ten ten ten se se sousedem sousedem sousedem sousedem odnaproti odnaproti Předložkové skupiny • „Přišel ten pán se sousedem odnaproti.“ http://ufal.mff.cuni.cz/course/popj1

  19. Předložkové skupiny • Anglický příklad: • I saw the man with a telescope. • Viděl jsem ho dalekohledem. • Viděl jsem ho s dalekohledem. http://ufal.mff.cuni.cz/course/popj1

  20. Předložkové skupiny • V období, kdy prudce poklesl zájemna domácím trhu, dokázala továrna část výroby exportovat. http://ufal.mff.cuni.cz/course/popj1

  21. Předložkové skupiny a syntaktické nejednoznačnosti • V letech 1991 – 1993 jsem absolvovala kurzy řízení a marketingu na Collège Bartv kanadském Québecu. • absolvovala na Collège Bart • kurzy na Collège Bart • řízení a marketingu na Collège Bart • marketingu na Collège Bart • Collège Bart v Québecu • marketingu v Québecu... http://ufal.mff.cuni.cz/course/popj1

  22. Předložkové skupiny a syntaktické nejednoznačnosti • „říjnové jednání OSN o klimatických změnách v Kodani“ (Události ČT, 27.2.2009) • Otázka: Došlo ke klimatickým změnám v Kodani? http://ufal.mff.cuni.cz/course/popj1

  23. Osnova • Programovací jazyk PERL • Korpusy, procházení webu, rozpoznávání jazyků • Roviny popisu jazyka • Vyhodnocování úspěšnosti • Slovníky a morfologická analýza • Odstraňování nejednoznačností, statistické metody • Syntaktická analýza (metody založené na pravidlech) • Syntaktická analýza (statistické metody, syntaktické korpusy – treebanky) http://ufal.mff.cuni.cz/course/popj1

  24. Literatura • James Allen: Natural Language Understanding. Benjamin/Cummings 1994, ISBN 0-8053-0334-0 • Adolf Erhart: Základy jazykovědy. Státní pedagogické nakladatelství; Praha, 1990 • Christopher D. Manning, Hinrich Schütze: Foundations of Statistical Natural Language Processing. The MIT Press 1999, ISBN 0-26213-360-1 • Mé prezentace a další odkazy na webu. http://ufal.mff.cuni.cz/course/popj1

  25. Počítačové zpracování přirozeného jazyka Zápočtové úlohy Daniel Zeman http://ufal.mff.cuni.cz/~zeman/

  26. Zápočtové úlohy • Rezervace prostřednictvím webového formuláře: http://quest.ms.mff.cuni.cz/cgi-bin/zeman/zapoctaky/rezervace_ukolu.pl • Podrobná zadání rovněž na webu, zde jen nástin a vysvětlení některých pojmů. • Součástí zadání jsou někdy data v konkrétním jazyce, ne vždy českém. http://ufal.mff.cuni.cz/course/popj1

  27. Proč cizí jazyky? • Řada úkolů je zadána pro konkrétní cizí jazyk, často takový, který nejspíš neovládáte. • Větší pestrost úkolů: dva lidé nedělají na stejných datech. • Uvědomte si, že k práci s daty v cizím jazyce nemusíte tento jazyk umět! • U analýzy tvarosloví či větných vztahů je ovšem výhodou, pokud rozumíte chybám, který váš program dělá. • U některých úloh přímo navrhujete jazyková pravidla, pak samozřejmě pracujete s češtinou nebo jiným jazykem, který umíte. • Naopak, vaše programy by měly být v maximální možné míře jazykově nezávislé. http://ufal.mff.cuni.cz/course/popj1

  28. Třídy úloh • Pouze vlastní výtvor v Perlu • Jeden nebo více skriptů v Perlu • Práce s cizím softwarem • Stáhnout a rozchodit • Připsat vlastní skripty v Perlu jako interface, pro převod datových formátů, analýzu výsledků apod. • Gramatika apod. • Tvorba jazykových pravidel, s jejichž pomocí cizí software analyzuje jazyk • Vlastní skripty v Perlu mohou být potřeba např. pro extrakci slovníku z textového korpusu http://ufal.mff.cuni.cz/course/popj1

  29. Práce s cizím softwarem • Část úloh bude spočívat ve stažení cizího softwaru a experimentování s ním. • Méně vlastního programování • Typicky skripty pro konverzi dat do správného formátu, pro rozbor výsledků a jako obálka na volání cizího programu • Možnost zkusit věci, které byste sami napsat nestihli. • Více nároků na architekturu, kterou máte k dispozici. http://ufal.mff.cuni.cz/course/popj1

  30. Práce s cizím softwarem • PC-Kimmo (morfologická analýza) • Umí pracovat se slovníkem a s pravidly tvoření slov pro daný jazyk. Vy musíte: • Vytvořit pravidla • Poloautomaticky vytáhnout slovník z korpusu • Taggery („značkovače“) • Na základě kontextu přiřadit slovu správné lemma a značku. • Nejdříve naučit na trénovacích datech • Parsery (větný rozbor) • Identifikovat ve větě fráze nebo závislosti. • Nejdříve naučit na trénovacích datech. http://ufal.mff.cuni.cz/course/popj1

  31. Morfologie: taggery • Úkol taggeru: přiřadit slovu morfologickou značku (slovní druh, rod, číslo, pád…) • Může a nemusí předcházet slovníková morfologická analýza. • K dispozici morfologicky anotovaný korpus. • Brillův tagger (Eric Brill) • TreeTagger (Helmut Schmid) • Featurama (Miroslav Spousta) http://ufal.mff.cuni.cz/course/popj1

  32. Syntax: parsery • Úkol parseru: přiřadit větě stromovou strukturu (vztahy mezi větnými členy). • Typicky předchází morfologická analýza a tagging. • K dispozici morfologicky a syntakticky anotovaný korpus (treebank). • Malt parser (Joakim Nivre) • MST parser (Ryan McDonald) • Charniakův parser (Eugene Charniak) • Collinsův parser (Michael Collins, Dan Bikel) • Stanfordský parser (Chris Manning) • DOP (Rens Bod) http://ufal.mff.cuni.cz/course/popj1

  33. Další • C4.5 (rozhodovací stromy, později) • Giza++ (párování paralelních korpusů pro strojový překlad) • Moses (strojový překladač) • Joshua (strojový překladač) http://ufal.mff.cuni.cz/course/popj1

  34. Vlastní tvorba • Pavouk (stahování korpusu z webu) • Zahrnuje rozpoznávání jazyků, analýzu a odstraňování HTML. • Minoritní jazyky (varianta pavouka) • Třídění jazyků • Hranice slov a vět • Háčkování • Kontrola pravopisu • Pojmenované entity • Segmentace slov na morfémy • Chart parser • Morfologická gramatika pro chart parser • Jednoduchý statistický tagger • Dobývání informací z webu http://ufal.mff.cuni.cz/course/popj1

  35. Pavouk a rozpoznávání jazyků • Stahování jazykových dat z webu • Zahrnuje rozpoznávání jazyků, analýzu a odstraňování HTML. • Varianta: Minoritní jazyky • Robot musí komunikovat s vyhledávačem. • Třídění jazyků • Máme spoustu dokumentů v různých jazycích, chceme je roztřídit do složek. • Vizpzpj03-prvni_ukoly.ppt http://ufal.mff.cuni.cz/course/popj1

  36. Dobývání informací z webu • Sledujete informace o určitých druzích zboží napříč internetovými obchody • cena, dodací lhůta, kontakt na prodejce atd. • Primitivní porozumění textu stránek (klíčová slova, regulární výrazy apod.) • Závislost na jazyku: ano (čeština) • Závislost na druhu zboží: ne! • Rozpoznávání podobných řetězců • Totéž zboží může být v různých obchodech pojmenováno různě. • K přidání nového obchodu stačí zadat jeho adresu • Nechceme nejdříve rozebírat zdrojáky jeho stránek a někam si zapisovat, že např. <div class=“cena”> obsahuje cenu zboží. http://ufal.mff.cuni.cz/course/popj1

  37. Další jednoduché úlohy • Hranice slov a vět • Kromě tokenizace nutnost naučit se, kde větu nezalomit, i když je tam tečka. • Háčkování, T9, obnova velkých písmen • Jednoduché statistické modely. • Kontrola pravopisu • Tyto úlohy lze většinou pochopit i bez znalosti látky, která bude náplní semestru. • Vizpzpj03-prvni_ukoly.ppt • Vizpzpj10a-pravopis.ppt http://ufal.mff.cuni.cz/course/popj1

  38. Pojmenované entity • Pojmenované entity • Různé definice • Dobrá aproximace: vlastní jména • Hlavně osoby, místa, firmy, výrobky • Úkolem je naučit se automaticky rozpoznávat pojmenované entity v textu • Vizpzpj03-prvni_ukoly.ppt http://ufal.mff.cuni.cz/course/popj1

  39. Segmentace slov na morfémy • Rozdělit slovo na předponu, kmen a příponu • Nemáme k dispozici morfologický slovník • K danému jazyku neexistuje nebo je drahý • Program dostane seznam slov a jejich četností v korpusu. • Všímá si opakujících se koncovek, předpon apod. • Situaci komplikují změny souhlásek na konci kmene (matka – matce – matčin) http://ufal.mff.cuni.cz/course/popj1

  40. Chart parser • Úkolem parseru je rozebrat text na hierarchii složek. • Rozbor slova na morfémy, zjištění vztahu mezi aktuálním a základním tvarem slova. • Rozbor věty na větné členy (slova), zjištění vztahů mezi nimi. • Bezkontextová gramatika • Soubor přepisovacích pravidel • Chart parser • Načte bezkontextovou gramatiku a snaží se aplikovat její pravidla na analyzovaný text. • Vizpzpj08-morfologie-cfg.ppt http://ufal.mff.cuni.cz/course/popj1

  41. Tagger • Tagger (značkovač) má pro dané slovo na základě kontextu vybrat správné lemma a značku. • Lemma = základní tvar slova (slovníkové heslo) • Značka = zakódované informace o slovním druhu, rodě, čísle, pádu atd. • Vstup: posloupnost slov, pro každé slovo množina dvojic [lemma, značka], které připouští slovník • Výstup: na základě kontextu vybraná jedna dvojice [lemma, značka], ostatní vyhodit • Metoda: Naučit se jednoduchý statistický model z korpusu, ve kterém jsou správné dvojice označené ručně. • Viz pzpj10-znackovani.ppt http://ufal.mff.cuni.cz/course/popj1

More Related