Válka s homonymií

Programy svádějí těžký boj s nejednoznačností přirozeného lidského jazyka Systémy pro automatické zpracování te...


Programy svádějí těžký boj s nejednoznačností
přirozeného lidského jazyka
Systémy pro automatické zpracování textu, ať už jde o překladače, internetové
vyhledávače či libovolné nástroje sloužící k indexování, se při své práci
potýkají s řadou problémů. Jedním z největších je víceznačnost přirozeného
lidského jazyka neboli homonymie.
Homonymní mohou být různě velké úseky textu (různě složité výrazy), bereme-li
je samy o sobě; vyřešit homonymii pak zpravidla znamená porozumět většímu úseku
textu, který obklopuje náš homonymní výraz, jako celku. Pro systémy
automatického indexování, jejichž schopnosti zpravidla nepřesahují mez
"porozumění" jednotlivým slovům textu, případně některým typům slovních
spojení, díky tomu homonymie představuje zvlášť obtížný problém. Ale i
nejkvalitnější systémy automatického překladu, schopné dokonalé syntaktické
analýzy každé věty (resp. souvětí), budou mít vždy problémy s některými typy
homonymie.

Problém koncovek
Jako první se podíváme na tzv. morfologickou homonymii.
V jistém smyslu nejmenší jednotkou, která může v češtině a některých jiných
jazycích nést nejednoznačný význam, jsou některé ohýbací koncovky. Například
koncovka -y ve slovním tvaru "kontroly" může znamenat jak 2. pád jednotného
čísla, tak 1. nebo 4. (a teoreticky i 5.) pád množného čísla. Kdybychom chtěli
dokázat, že ve větě "Termíny kontroly je třeba dodržovat" je slovo "kontroly"
ve 2. pádě jednotného čísla, museli bychom dokázat, že při každé jiné
morfologické interpretaci by celá věta byla gramaticky chybná. K tomu bychom
museli provést úplnou syntaktickou analýzu věty. Člověk si je na první pohled
jistý, protože syntaktickou analýzu čtených vět provádí, aniž si to neuvědomuje.
Praktické řešení tohoto problému v automatizovaných systémech zpracování
informací bývá obvykle založeno na jakémsi "univerzálním pozitivním
předpokladu": je-li možné interpretovat slovo určitým způsobem, který se hodí
pro aplikaci určitého komplexního interpretačního pravidla, nechť je tak
interpretováno.
I tak se ovšem může stát, že "hodících se" interpretací je více. Například ve
větě "Autobus předjíždí tramvaj" jak slovo "autobus", tak slovo "tramvaj" může
být interpretováno jako podstatné jméno v prvním nebo čtvrtém pádě. Následkem
toho může být celá věta interpretována na syntaktické úrovni dvěma způsoby:
"autobus" je podmět, "tramvaj" je předmět nebo naopak.

Stejná slova
Druhým typem homonymie je tzv. obecná homonymie slov (lexikální homonymie).
Vezměme například tuto (hypotetickou) větu: "Mezi plesy letošní sezony nebyly
vidět velké rozdíly v úrovni." Z čeho lze soudit (je-li to vůbec možné logicky
soudit), že se v této větě jedná o plesy a ne o plesa (jezera)? Z klasického
větného rozboru rozhodně ne. Snad jediné, o co se tady člověk může opřít, jsou
dva obecné fakty: že totiž pleso je jezero a jezera se nerozlišují podle sezon.
Co si ale počne automatický systém? Rozpoznání vyžaduje buď skutečnou umělou
inteligenci, anebo nějakou další znalost třeba vědět, že všechny indexované
texty jsou z jedné širší tematické oblasti, např. společenského života, a že
slovo "ples" je v nich mnohem častější než "pleso".
Je zajímavé, že v češtině jsou mnohem častější homonymie jiných než základních
tvarů slov. Skutečnými homonymy v základním tvaru jsou např. slova los zvíře a
los něco, co se losuje. Takový případ homonymie může být problémem pro
derivátor slovních tvarů: je-li jako vstup zadáno slovo "los", není jasné, zda
do výstupu má či nemá být zařazen např. tvar "losi". Pokud bude derivátor
"maximalistický", vygeneruje všechny možné tvary obou homonym, a tím v konečném
důsledku sníží přesnost vyhledávání.
Jako extrémní případ se mohou v jazyce vyskytnout i dvě slova různého původu
homonymní ve všech svých tvarech, např. kolej kudy jede kolo a kolej
vysokoškolská.
Kumulace homonymních slovních tvarů ve větách může obecně vést i k homonymii
celých vět, která nemusí být řešitelná ničím jednodušším než analýzou širšího
kontextu věty, případně logickým porovnáním možných interpretací věty s
obecnými znalostmi o světě, které pravděpodobně autor textu předpokládá u
čtenáře. V literatuře na téma počítačového zpracování angličtiny najdeme řadu
příkladů podobných větě "Time flies like an arrow", ve které každé z prvních
tří slov může být slovesem a podle toho se mění slovní druhy ostatních slov a
věta může česky znamenat např. "Časuj mouchy jako šíp", "Čas letí jako šíp"
nebo "Časové mouchy mají rády šíp". V angličtině se takové věty zřejmě mohou
vyskytnout i v odborném textu je představitelná např. věta "The information
lacks press experts", kterou bychom snad mohli česky vyjádřit buď "Nedostatky
informací tlačí experty" anebo "Informacím chybí tiskoví experti".
I v češtině existují hříčky typu "Ženu holí stroj" zde každé slovo může být
slovesem, a podle toho má věta tři různé významy. Čeština však není náchylná
tvořit takové věty v odborném stylu.

Obsah slovníku
Zajímavým problémem pro automatické systémy je homonymie selekčně významného a
nevýznamného slova.
Tento speciální typ lexikální (či lexikálně-morfologické) homonymie se objevuje
jako zvláštní problém systémů automatického indexování textů. Typický příklad
tohoto jevu je dokumentován v angličtině a je jím slovo "can". V naprosté
většině případů jeho výskytu v textu jde o modální sloveso, které by tudíž mělo
být prvkem negativního slovníku (slovníku "stop-slov", kterými se neindexuje).
Může se však stát, že toto slovo v určitém místě určitého textu figuruje jako
podstatné jméno ve významu "konzerva", a pak může být velmi žádoucí zařadit je
do indexového souboru.
Jak situaci řešit? Dokonce i kdyby se indexovací procedura pokaždé u tohoto
slova zastavila a žádala inteligentní supervizi od nějakého k tomu
kvalifikovaného operátora systému, bylo by to dost problematické vzhledem k
tomu, jak často se slovo "can" v anglických textech vyskytuje. A pokud bychom
připustili, že prakticky všechny texty budou pro jistotu indexovány slovem
"can", způsobilo by to takovou nepřesnost vyhledávání při zadání "can" jako
podstatného jména, že by nemělo smysl takový vyhledávací požadavek vůbec
zadávat.
Pro tento případ tedy zřejmě neexistuje žádné univerzálně přijatelné řešení.
Snad jediným způsobem, jak tento problém obejít, by mohlo být pojmové
vyhledávání v duchu systému Topic firmy Verity: v pomocných datových
strukturách tohoto systému nadefinujeme např. pojem (téma) "canning
(konzervování)" pomocí určitého typu souvýskytů slova "can" a různých dalších
konzervárenských termínů; uděláme-li to správně, máme naději, že samotné slovo
"can" nezpůsobí označení dokumentu jako relevantního k uvedenému tématu, avšak
vyskytnou-li se v textu (či přesněji ve vhodném kontextu) jiná slova z oblasti
konzervování, může i slovo "can" přispět svým dílem k označení dokumentu jako
relevantního.
Příkladem stejného jevu v češtině může být výskyt slovního tvaru "při". Může
jít o předložku, která by jako taková nejspíš měla být obsažena v negativním
slovníku. Může ale také jít o tvar podstatného jména "pře" a z toho důvodu
tento řetězec do negativního slovníku nepatří! (A konečně může jít také o tvar
slovesa "přít se".) Řešení uplatněné při vytváření systému ASPI
(Automatizovaného systému právních informací) za pomoci technologie ByllBase
předpokládá při každém výskytu slovního tvaru "při" v automaticky indexovaném
textu lidské rozhodnutí, zda jde o předložku nebo o podstatné jméno.

Odborné výrazy
Dostáváme se k další kategorii problémů, kterou je homonymie odborného termínu
s neterminologickým užitím formálně stejného výrazu.
Také tento jev je specifickým problémem automatického indexování. Například v
textu z fyzikální oblasti může mít specifický odborný význam slovo "práce"
označuje ekvivalent působení určité síly po určité dráze, resp. vydávání
určitého výkonu po určitou dobu. I v tomto textu se však můžeme setkat stejně
jako ve většině vědeckých textů se slovem "práce" použitým v jiném významu,
např. ve spojení "významná práce Alberta Einsteina". Vyřešení tohoto případu
homonymie (k úplné spokojenosti uživatelů informačního systému hledajících
někdy texty na téma práce jako fyzikální veličiny) by nejspíš vyžadovalo, aby
byly texty indexovány s pomocí slovníku odborných termínů, ve kterém by byl
termín "práce" (označující fyzikální veličinu) asociován s určitými
"pozitivními kontextovými indikacemi" v podobě typů syntaktických vazeb, ve
kterých se obvykle vyskytuje jako např. "práce x joulů", "vykon(áv)at práci"
ap. Případně by také bylo možno asociovat termín "práce" s "negativními
kontextovými indikacemi" typy syntaktických vazeb, ve kterých o tento termín
nejde, přestože se tam vyskytuje slovo "práce" například "práce někoho", "práce
publikovaná", "práce z roku x", "napsat/sepsat práci", "proslavit se prací"
apod.

Zrádné čárky
Homonymie grafických prvků interpunkčního typu je výsledkem historicky
utvářených pravidel pravopisu všech evropských jazyků.
Grafickými prvky interpukčního typu míníme např. tečku na konci věty, ale také
velké písmeno na jejím začátku. Jde o to, že tyto prvky většinou mohou mít i
jiné než interpunkční funkce. Na základě čeho vůbec muže být rozpoznáno, zda
například určité konkrétní použití velkého písmena na začátku slova slouží jen
označení začátku věty, nebo zda zároveň označuje vlastní jméno?
Vezměme například tuto českou větu (snadno představitelnou v nějakém sportovním
zpravodajství): "Dohnal zvítězil." U této věty lze teprve na základě
syntaktické analýzy (rozboru větné skladby) rozhodnout, že její první slovo je
jméno a ne sloveso. (Jinak by totiž věta obsahovala dva přísudky a žádný
podmět.) To může představovat nepříjemný problém pro automatické indexování,
protože vlastní jména jsou zpravidla selekčně významná, zatímco tvary sloves
často nikoli. Ale je to zajímavý argument i ve vztahu k automatizaci překladu:
vidíme, že ani v případě tak jednoduché věty jako "Dohnal zvítězil" nemá smysl
snažit se o překlad bez syntaktické analýzy.
V některých případech může tento druh homonymie vést dokonce k tomu, že není
jasné (a to ani na základě syntaktické analýzy), odkud kam sahá v textu věta.
Uvědomme si, jakou poměrně složitou "logiku věcí" bychom museli použít, abychom
zdůvodnili, že řetězec slov "Plk. Dohnal předešel gen. Kvapila" je
(nejpravděpodobněji) jedna věta, obsahující dvě zkratky vojenských hodností a
dvě vlastní jména, a ne tři samostatné věty.
Problémem ovšem může být i samotné velké písmeno na začátku věty, bez ohledu na
její hranice a strukturu. Například slovo "Arab" psané důsledně s velkým
počátečním písmenem označuje v češtině příslušníka arabského národa, zatímco
slovo "arab" s malým počátečním písmenem označuje arabského koně; na začátku
věty pak formálně vůbec nelze tato dvě slova od sebe odlišit. Pokud by měla být
automaticky odlišena, pak by to opět vyžadovalo buď určitou míru věcné analýzy
nadvětného kontextu (totiž zjištění, zda text celkově hovoří o Arabech nebo o
arabech), anebo logické porovnání obou možných interpretací právě zpracovávané
věty s nějakou bází obecných znalostí o světě.
Dnešní jednodušší systémy automatického zpracování textů zpravidla nejsou
schopny řešit podobné případy formální homonymie, které jsou pro nás jako lidi
obvykle de facto jednoznačné. Naznačený problém by mohli velmi snadno odstranit
kodifikátoři spisovných jazyků a jejich uživatelé, kdyby přijali některá nová,
"logičtější" pravidla psaní, navržená s ohledem na to, že texty mají být také
automaticky zpracovatelné, nejen srozumitelné svým cílovým čtenářům. (Vždyť
nakonec automatická zpracovatelnost textu dnes už často rozhoduje o tom, zda se
text vůbec někdy dostane ke svému cílovému čtenáři!)

Problém 7 bitů
Čistě gramatická homonymie i homonymie celých slov výrazně narůstá,
zaznamenáváme-li české texty bez diakritických znamének (háčků, čárek, kroužků).
Nenechme se mýlit tím, že pro člověka je "telegraficka ci pocitacova cestina"
vcelku srozumitelná. Jde právě o to, že jen "vcelku", zdaleka ne vždy po
jednotlivých slovech. Vezměme si jako příklad tuto větu zapsanou bez
diakritiky: Je rada dolu, kde se tezi med.
Intuitivně můžeme usoudit, že tato věta je jako celek (skoro) jednoznačná.
Pokud ji však budeme chtít analyzovat zdola nahoru, tj. počínaje jednotlivými
slovy, zjistíme, že za předpokladu potenciálních diakritických znamének nad
libovolnými písmeny je pět ze sedmi slov nejednoznačných.

Zrádné závorky
Homonymie se může vyskytovat i na úrovni syntaktických struktur.
Příkladem tohoto jevu může být výraz "pozorování úniku oknem". Jde tady o "únik
oknem", který je pozorován (třeba z pozice na chodníku před domem), anebo o
"pozorování oknem", jehož předmětem je únik? V tomto případě nelze zvolit
jedinou interpretaci, která by měla být považována za správnou ledaže bude opět
analyzován (gramaticky i věcně) širší kontext, ve kterém byl výraz "pozorování
úniku oknem" použit.
Problém homonymie syntaktických konstrukcí vlastně odpovídá problému nalezení
správného (tedy autorem zamýšleného) uzávorkování textu.
Vezměme např. takovýto nadpis textu: "Funkce rezistoru a zesilovače v
radiotechnice". Je pravděpodobné, že význam tohoto nadpisu je stejný, jaký by
mělo znění "funkce rezistoru v radiotechnice a funkce zesilovače v
radiotechnice" (což by ovšem nikdo nenapsal), anebo "funkce obou zmíněných
prvků v radiotechnice". Grafickými prostředky podobnými těm, které známe z
české mluvnice, bychom mohli tento význam zachytit tak, jak ukazují jednotlivé
obrázky.

text ON-LINE
Kompletní podobu tohoto článku najdete na portálu Science World s datem 28. 3.
2003

Problém logických operátorů
Následující typ homonymie představuje problém pro každý systém, který by měl
umožňovat dotazování k textové databázi v přirozeném jazyce. Představte si, že
byl v přirozeném jazyce formulován dotaz:
"Které texty pojednávají o funkci rezistoru a zesilovače v radiotechnice?"
Jak má systém takovou větu formalizovat? Jak mají být konkrétně logickými
operátory spojena jednotlivá slova, ze kterých se dotaz skládá? Paradoxně,
přestože neformalizovaný dotaz obsahuje spojku "a", nepůsobí příliš uspokojivě
selekční obraz:
funkc* AND rezistor* AND zesilovač* AND radiotechni*
Tato interpretace dotazu by byla namístě, jen pokud tazateli šlo právě o funkci
kombinace obou zmíněných prvků v radiotechnice. Spíš bychom mohli předpokládat,
že tazatele zajímá všechno o funkci rezistoru v radiotechnice, stejně jako
všechno o funkci zesilovače v radiotechnice. Pak by ovšem selekční obraz dotazu
měl vypadat spíše takto:
funkc* AND (rezistor* OR zesilovač*) AND radiotechni*
Obecně jsou před námi dvě možnosti: buď bude systém vyhodnocování dotazů v
přirozeném jazyce spojku "a" nahrazovat vždy operátorem AND, a pak často
poskytne odpověď příliš malého rozsahu, resp. prázdnou, anebo bude spojku "a"
nahrazovat vždy operátorem OR, a pak někdy poskytne odpověď příliš velkého
rozsahu, "zašuměnou" velkým množstvím textů pro tazatele nezajímavých.









Komentáře
K tomuto článku není připojena žádná diskuze, nebo byla zakázána.