Komunikace mezi člověkem a počítačem v přirozeném jazyce může sloužit k různým účelům: k ovládání operačního systému, pohodlnému využití služeb expertního systému či k práci s databází včetně vkládání nových dat.
Specifickým případem této činnosti může být např. práce s různými rezervačními systémy, vyhledávání informací o spojích či telefonních číslech, elektronické objednávání zboží apod. Také u mnoha počítačových her je výhodná jistá schopnost programu komunikovat s hráčem v přirozeném jazyce. A známe dokonce počítačové hračky, v nichž je plynulá komunikace mezi uživatelem a počítačem v přirozeném jazyce sama o sobě cílem – notoricky známým příkladem z této kategorie je program Eliza.
Co je co?
Lemmatizace… Proces, v jehož rámci jsou slova převáděna na jejich základní slovníkovou jednotku, např. 1. pád jednotného čísla.
Derivace… Proces opačný k lemmatizaci; ze základní slovníkové jednotky je vygenerována množina všech tvarů slova.
Homonymie… víceznačnost; přirozené jazyky jsou homonymní na řadě různých úrovní, od jednotlivých slov po delší úseky textu. Vyřešení homonymie je v automatizovaných systémech zpravidla založeno na analýze textu, který obklopuje homonymní výraz. Pojmem příbuzným homonymii je tzv. polysémie.
Omezení tématu
Dá se asi logicky předpokládat, že omezení na určitou dost úzkou tematickou oblast komunikace může, podobně jako třeba u strojového překladu, podstatně snížit náročnost analýzy a syntézy přirozeného jazyka. Kam až se ale dá v tomto zjednodušování dojít? Je například možné vytvořit efektivní aplikace opírající se jen o přiřazení určitého smyslu jednotlivým slovům?
Příklady ukazují, že i to je možné – alespoň pokud lze předpokládat, že uživatel takové aplikace bude respektovat její předem daná omezení (tzn. nebude se například snažit z rezervačního systému vytáhnout informaci o počasí).
V tomto článku se zaměříme na jednu speciální oblast – na komunikaci mezi člověkem a databázovým, respektive vyhledávacím systémem.
Vyhledávání v textech
Základní realizaci možnosti dotazovat se na textové informační zdroje (tj. na záznamy textové databáze, webové stránky apod.) v neomezeném přirozeném jazyce představuje systém automaticky indexující dotaz v přirozeném jazyce metodou, která je kompatibilní s použitou metodou indexování hledaných textových informačních zdrojů.
To znamená, že ve formulaci dotazu v přirozeném jazyce je třeba především odlišit nepodstatná slova a slova důležitá z hlediska vyjádření hledaného tématu, případně přesněji určit relativní důležitost (váhu) jednotlivých slov. Slova důležitá pro vyhledávání je pak také třeba lemmatizovat. Podle způsobu indexování hledaných textů (a také podle toho, v jakých jazycích tyto texty jsou) může být dále potřebné např. derivovat všechny tvary lemmatizovaných slov, nebo je alespoň opatřit operátory rozšíření, nebo určit, která slovní spojení ve formulaci dotazu mají být chápána jako nedělitelné vyhledávací termíny (selekční znaky), stanovit mezi jednotlivými selekčními znaky optimální logické operátory apod.
Při tom všem je třeba vycházet z poznání, že jak jednotlivá slova, tak i komplexnější výrazy ve formulaci dotazu v přirozeném jazyce mohou být zatíženy homonymií. Některé typy homonymie jsou dokonce specifické právě pro formulace dotazů (nebo bychom snad měli spíše než o typech homonymie hovořit o nejednoznačnosti překladu mezi pojmy přirozeného jazyka a prvky formálního dotazovacího jazyka). Navíc je třeba si uvědomit, že některé metody užitečné při indexování delších textů (dokumentů) – např. analýzu frekvence výskytů jednotlivých slov – nemá smysl aplikovat na formulace dotazů vzhledem k jejich malé délce.
Tím vším se omezují možnosti správného vyhodnocení důležitých výrazů, včetně jejich případných homonymií.
Ještě komplikovanější se úloha vyhledávání textů odpovídajících na dotaz formulovaný v přirozeném jazyce může jevit v případě, že je požadováno vyhledání textů věcně odpovídajících na faktografický dotaz – např.: Mluví se v Kanadě španělsky? Takový dotaz je dnes už možné zadat mimo jiné i různým vyhledávacím strojům na internetu. S tím, jak je zpracování takového dotazu problematické, se tak může každý snadno seznámit.
Když byla anglická verze tohoto dotazu (Is Spanish spoken in Canada?) položena systému Ask Jeeves (http://web.ask.com/), aplikace celkem logicky vyhledala obrovské množství webových stránek obsahujících termíny "Spanish", "spoken" a "Canada". Hned první z nich ve výsledném seznamu (náhodou?) skutečně obsahovala faktickou odpověď na dotaz – byla to stránka o statistice užívání španělštiny v Kanadě. V první desítce se ovšem objevilo i několik stránek, kde různé kanadské knihovny a knihkupectví nabízejí učebnice a slovníky hovorové španělštiny (angl. "spoken Spanish").
Popsaný experiment ukazuje, že úspěšnost přístupu uplatňovaného v systému Ask Jeeves závisí mj. na tom, zda v indexovaném datovém prostoru vůbec existuje text obsahující odpověď na dotaz. Ani při splnění této podmínky však evidentně není jisté, že se tento text tazateli neztratí mezi množstvím jiných, jen zdánlivě relevantních textů.
Relační databáze
Možnosti vyhledávání dat v tabulkových strukturách na základě požadavků formulovaných v přirozeném jazyce jsou předmětem různých experimentů již od 60. let minulého století. První systémy byly navrhovány jednoúčelově – jejich základem byla pravidla převádějící dotazy obsahující určité výrazy na formule definující určitý dotaz v relační algebře; přechod k jiné aplikační oblasti vyžadoval vytvoření nového souboru pravidel. Jedním z takových systémů byl např. Lunar, zpřístupňující databázi výsledků chemických analýz měsíčních hornin. Většina těchto systémů byla orientována pouze na angličtinu; první prototyp podobného systému určeného pro české prostředí, systém Kodas, byl však úspěšně vyzkoušen a popsán už kolem r. 1980, a to vlastně jako studentská práce.
V dalších letech se vývoj zaměřil především na přenositelné nástroje umožňující komunikovat v přirozeném jazyce s různými databázovými aplikacemi (jak z hlediska databázových systémů, tak z hlediska aplikačních oblastí – samozřejmě za předpokladu doplnění určitých doménově závislých lingvistických dat).
Plusy a minusy
Mezi argumenty zdůvodňujícími užitečnost nástrojů pro komunikaci s tabulkově strukturovanými databázemi v přirozeném jazyce bývají uváděny – vedle evidentní výhody, že se uživatel nemusí učit žádný formální dotazovací jazyk – zejména následující:
– Existují typy dotazů, které se v přirozených jazycích formulují velmi snadno, kdežto ve formulářově orientovaných formálních dotazovacích jazycích velmi obtížně a v jazycích typu SQL mohou vyžadovat náročné konstrukce. Jedná se například o určité typy negace (Ve kterém oddělení nejsou programátoři?) nebo o dotazy s obecnou kvantifikací (Která společnost dodává všem oddělením?).
– Dotazujeme-li se na jiný aspekt něčeho, co už bylo vyhledáno, stačí uvést např.: "Vypiš jejich adresy", nebo: "Jaké mají hodnocení?" Ve formálních dotazovacích jazycích je podobné navazování na předchozí požadavky obecně obtížnější.
Přesto bylo už v 90. letech konstatováno, že se aplikace systémů umožňujících komunikaci s tabulkově strukturovanými databázemi v přirozeném jazyce nerozšiřují zdaleka tak rychle, jak se zpočátku očekávalo. Obecné důvody, proč tomu tak je, by se daly shrnout zhruba do těchto bodů:
– Někteří uživatelé mají tendenci na základě schopnosti komunikovat v přirozeném jazyce přeceňovat celkovou inteligenci systému, se kterým takto komunikují. Odtud pak vyplývá konečný dojem nesplněných očekávání.
– Pro většinu opravdu jednoduchých dotazů ve skutečnosti přirozený jazyk není nejefektivnějším prostředkem jejich vyjádření. Přirozený jazyk ve svém fungování příliš často předpokládá schopnost domyslet si, co nebylo jednoznačně řečeno, a těžko se zbavuje s tím souvisících všudypřítomných homonymií. I jednoznačné dotazy typu "Kde bydlí Novák?" zase uživatele zbytečně zdržují – je zřejmě jednodušší/rychlejší realizovat takový dotaz ve formulářovém systému.
– Většina známých systémů umožňujících komunikaci s tabulkově strukturovanými databázemi v přirozeném jazyce vyžaduje poměrně náročnou přípravnou fázi adaptace na konkrétní databázovou aplikaci, teprve poté je lze začít používat k dotazování.
Příklady
Nehledě na otázku, jakou cenu vůbec má možnost formulovat dotazy v přirozeném jazyce tam, kde jsou dnes k dispozici metody jako dotazování formulářem, existují dnes různé podobné systémy nabízené na komerční bázi a stále rozvíjené. Jedním z nich je systém Q&A firmy Symantec. Jiným je např. ELF stejnojmenné společnosti. Další systémy více či méně podobného ražení jsou volně přístupné na internetu. Příkladem může být systém START (http://www.ai.mit.edu/projects/infolab/ailab.html).
Další perspektivy
Firmy a instituce zaměřující se na systémy komunikace mezi uživatelem a relačními databázemi v přirozeném jazyce většinou formulují základní úkol takto: vytvořit a implementovat dost přesnou a zároveň jednoduchou gramatiku, která postihne právě všechny možné formy dotazů k relačním databázím, a přitom minimalizuje analýzu frází, jejichž lingvistická struktura je vzhledem k cíli dotazu irelevantní. Například začátek otázky "Mohl bys mi, prosím, sdělit, kolik" je v takovém systému nejvýhodnější brát prostě jako synonymum výrazu "kolik".
Lze jistě namítnout, že normální uživatel počítače stěží může mít důvod používat v komunikaci s ním tak zbytečně složité fráze. Zde je ovšem třeba si uvědomit, že výzkumy podobného typu už počítají s nedalekou dobou běžné komunikace mezi uživatelem a počítačem v mluvené řeči a v podmínkách, kdy uživateli vůbec nemusí být jasné, zda právě komunikuje s člověkem nebo s počítačem. Pak uvedený argument ztrácí smysl.
Zásady kooperativního dialogu
Specifický problém, který by měly řešit pokročilejší systémy komunikující s uživatelem v přirozeném jazyce, představuje tzv. kooperativnost (vstřícnost) dialogu. Zhruba by se dalo říci, že jde o to, aby systém reagoval na vstupy uživatele nejen striktně logicky, ale tak, jak lze předpokládat, že si to uživatel přeje nebo že mu to bude prospěšné. Jinými slovy, jde o uplatnění jisté minimální pragmatiky.
Možná lépe než definice poslouží na tomto místě ukázka dialogu, který rozhodně kooperativní není:
Telefonní rozhovor.
Otázka: Je tam, prosím vás, pan Novák?
Odpověď: Ano.
Následuje mlčení nijak nenaznačující, že by snad příjemce hovoru měl v úmyslu pana Nováka zavolat. Třeba to opravdu v úmyslu nemá a vyčkává, jestli si o to volající explicitně řekne.
Tato a mnoho dalších (napůl žertem míněných) otázek tohoto typu mají následující klíčový rys: Odpověď je v jistém smyslu logická, ale rozhodně to není to, o co tazateli šlo.
Odborníci dnes všeobecně sdílejí přesvědčení, že kooperativní odpovídání na dotazy by se mělo řídit třemi tzv. Griceovými požadavky.
– Buď stručný.
– Sděluj pravdu (a pokud možno předem zabraň nesprávným dedukcím, které by z tvého sdělení mohly vyplývat).
– Poskytuj skutečně potřebné informace.
Tyto požadavky jsou relevantní pro dialog mezi lidmi stejně jako mezi člověkem a strojem. Rozdíl ovšem spočívá v tom, že zatímco každý člověk si za svou kooperativitu odpovídá sám, u stroje je to jeden z úkolů pro programátora.