{{Stub}} {{TOC float}}

{{Sources| Zdroje: Wikipedia, E. Reiter, R. Dale -- Building Natural Language Generation Systems, Cambridge Univ. Press, 2000 }}

Úvod

Problémy NLG (Natural Language Generation): Jak by měly počítače komunikovat s člověkem? Jaké chování od nich lidi očekávají? (Někdy je lepší vyplivnout graf nebo tabulku.) Co je "srozumitelný" jazyk v dané situaci? Jak převést reprezentaci znalostí (často hromada numerických dat) do "lidské podoby" (typicky malý počet abstraktních pojmů)?

Zahrnuje AI, lingvistické formální modely. Vlastně inverzní k analýze, k porozumění -- nejde tu ale o zabývání se hypotézami, ale výběr vhodné strategie sdělení. "Dvojsměrný" systém se staví dost těžko -- analýza musí počítat s nekorektním vstupem, ale neřeší srozumitelnost svého výstupu. Reprezentace znalostí v obou typech systémů je většinou odlišná.

Aplikace: většinou prezentace informací, které vznikají automaticky, případně (částečná) automatizace rutinní dokumentace (lékařské, programátorské atd.). Důležité, protože interní reprezentace databází nejsou člověku srozumitelné.

Důvody použití:

  • Konzistence textů a dat

  • Splnění standardů pro formát výstupu

  • Rychlost produkce dokumentů

  • Mnohojazyčnost

  • Lidi to prostě nudí, je-li to monotónní úkon.

Historie

Od 50-60. let, v rámci MT systémů, první formální gramatiky pro náhodné generování korektních vět. V 70. letech první pokusy o NLG pro interpretaci dat. Skutečné nasazení systémů v 90. letech.

Struktura NLG systému

Není úplně ustálená, je mnoho možností.

  • Vstup: zdroj znalostí, komunikativní cíl (konkrétního použití -- např. "shrnout data o počasí za poslední měsíc"), uživatelský model ("charakterizace cílového publika"), historie diskurzu ("co už bylo řečeno")

  • Výstup: text (formátování záleží na aplikaci - často např. HTML)

Typická základní architektura -- pipeline:

  • Plánovač dokumentu (plánovač textu) (určí obsah a strukturu výstupu)

    • Vytváří obsah ("zprávy"), určuje, které z nich je třeba vypsat pro splnění komunikativního cíle (content determination -- výběr relevantních informací)

    • Strukturuje výstupní dokument, aby bylo možné vygenerovat srozumitelný a souvislý text (document structuring) -- podle očekávání čtenáře (žánr), seskupování související informace (např. "vše o teplotě napsat za sebou")

    • Rozdělení do vět a jazykové otázky se tady zatím neřeší

  • Mikroplánování (plánovač vět) (jaká slova, syntaktické struktury atp. použít)

    • Někdy je výstupem už text, někdy mezireprezentace (např. specifikace času věty apod.)

    • Lexikalizace (jaká slova a konstrukce použít -- "pršelo od 11. do 14. / pršelo 11.,12.,13.,14."?), generování označení (refering expression generation -- jak označovat entity? -- první / následné zmínky)

    • Agregace (mapování struktury dokumentu na jazykovou strukturu -- co vecpat do které věty/odstavce?) -- např. "Minulý měsíc byl chladný" + "Minulý měsíc byl suchý" = "Minulý měsíc byl chladný a suchý"

  • Povrchová (lingvistická) realizace (převod abstraktní reprezentace použité mikroplánovačem do skutečného textu)

    • Realizace lingvistická i strukturální (formátování textu)

    • Některé systémy (PEBA) mají dost jednoduchou jazykovou realizaci -- jde vlastně o šablony doplňované údaji

    • Jiné (ModelExplainer) používají abstraktní synt. struktury, hodí se i pro mnohojazyčný výstup

    • Systemic Grammar, Functional Unification Grammar

Datové mezistupně:

  • Plán dokumentu -- typicky stromová struktura, vnitřní uzly -- sturkturní informace, listy -- obsah ("zprávy")

  • Specifikace textu -- opět stromy, vnitřní uzly -- sturktura textu, listy -- věty ("specifikace frází")

    • Specifikace fráze: ortografický řetězec (vše vyřešené) / canned text (nutné řešit velká písmena, interpunkci apod.), abstraktní syntaktická sturktura (lexémy a jejich rysy, závislostně uspořádané), lexicalized case frame (spíše lexikalizovaný sémantický strom).

Příklady NLG systémů

  • KPML -- obecný NLG systém, Systemic Functional Grammar (pro několik jazyků, vč. EN, CZ)

    • SFG -- výběr z alternativ: povrchová realizace je důsledkem výběru funkčních rysů (z popisu/taxonomie celého jazyka -- systemic network), znamená projití sítí (krok = výběr rysu) bez backtrackingu (každý přechod má určité podmínky, napojení = závislost jazyk. elementů)

Počítač jako pomůcka

  • FoG -- generování předpovědi počasí (v Kanadě -- EN/FR)

  • PlanDoc -- dokumentace navrhovaných změn v telefonních sítích

  • AlethGen -- pomůcka při psaní odpovědí zákazníkům :-)

  • Drafter -- pomůcka pro psaní manuálů k softwaru

Počítač jako samostatný autor

  • IDAS -- poskytuje informace o používání přístroje na základě reprezentace znalostí

  • ModelExplainer -- vysvětluje strukturu objektově-orientovaných programů

  • PEBA -- popisy taxonomické báze znalostí

  • Piglet -- vysvětluje pacientům v nemocnici jejich lékařské zprávy

  • STOP -- generuje personalizovanou informaci o škodlivosti kouření :-)

Evaluace

  • Založená na úkolech (jak systém pomáhá člověku zvládnout daný úkol)

  • Lidská (lidi posuzují srozumitelnost)

  • BLEU nebo něco podobného

{{Statnice I3}}