Inimkeele kasutamine Seminariettekanne Mait Vaiksaar Kevad, 2007 Sissejuhatus Antud presentatsiooni lõppedes võiks kuulajad omada põgusat ülevaadet inimkeele kasutamise võimalustest arvutites ning erinevates automatiseeritud süsteemides. Juttu tuleb vastava teema ajaloost, hetkeseisust ning tulevikuväljavaadetest. Minevik Kõigepealt oli olemas unistus unistus arvutist/masinast, millega saab suhelda täiesti loomulikus keeles. Kellele ei meeldiks omada näiteks kodumasinat, kellele saad hõigata, et see kohvi sooja paneks või tolmuimejaga toa üle tõmbaks. Miks mitte dikteerida arvutile teisest toast teksti ja käskida sellel vastav tekst mailiga sõbrale saata? Või suhelda arvutiga nagu teise inimesega? See kõik on juba pikemat aega olemas erinevates ulmefilmides StarTrek, Knight Rider jne. Kuigi ulme-žanr on alati päris mitu suurt sammu reaalsusest eespool olnud, siis kes oleks võinud oma kõige ebatavalisemas unenäos 1000a tagasi ette kujutada, et tänapäeval arvutid meie eest teatud töid teevad ja me 10 tunniga Euroopast Ameerikasse lendame? Esimesed katsed kasutada loomulikku e. Inimkeelt Esimesed edukamad katsed inimkeele kasutamiseks arvutites tehti tõlkimisvallas eesmärgiga tõlkida tavalist inimkeele teksti ühest keelest teise. Kuna aga igas keeles on tohutult erandeid, slängi, palju sõltub intonatsioonist, rõhuasetusest, jne. siis ei ole see üldse lihtne ülesanne. Tihti on vaja tekstide eel-protsessimist (et teha see arvutile üheselt mõistetavaks üldse tõlkima hakkamiseks) ning pärast ka teatud järel-protsessimist, et panna saavutatud tekst inimesele mõistetavasse vormi uues keeles. Alguses väga robustsete ja tahumata automaatsete tõlkimisvõimaluste asemele on hakanud ilmuma järjest paremad, kuid kindlasti on veel pikk tee minna. Samas ei saa kindlasti öelda, et abi pole ka sellest nn. tahumata tõlkimisest. See tuleb kindlasti kasuks teatud olukordades turistidele võõras keeles enda arusaadavaks tegemiseks, keele õppimiseks, mingi info otsimiseks teises keeles. Kui masin kasvõi mingi osa sellisel juhul aitab ära tõlkida, saab inimene saadud info alusel otsustada, kas hakata vastavat dokumenti edasi tõlkima või mitte. Samuti leiab selline asi kasutust otsingumootoris, kus saad kirjutada sõna või fraasi ühes keeles ning valida, mis keeltes vastuseid otsida. Väga palju lihtsustab tõlkimist struktureeritud tekst ilmateated, kindlalt piiritletud meditsiinilised faktid/laused, tehnilised dokumendid. Vastupidiselt on väga raske tõlkida luulet, novelle ja muud ilukirjandust. 1
8.6.1 SUHTLUS INIMKEELES Suhtlemine masinatega (arvutitega) loomulikus keeles. Teadlased loodavad kunagi saavutada nn. Star Trek i stsenaariumi kus oleks võimalik anda käske arvutile sõnadega ning saada tagasi ka vastuseid täpselt samamoodi. Eesmärgiks oleks loobuda menüüdes surfamisest, käskude süntaksi õppimisest jne. Kuna eelneva saavutamine on aga väga raske, siis vastupidiselt üldisele arusaamale ei pea alati arvutiga kasvõi osaliselt inimkeelseks suhtlemiseks olema realiseeritud inimene-inimene tüüpi suhtlus. Arvutid on informatsiooni näitamises ning sellega kindlate reeglite alusel manipuleerimises tuhandeid kordi kiiremad kui inimesed käskude sisestamises, seega on tihti kasulik panna arvutid inimesele näitama/ütlema rohkemat informatsiooni ning laskma teha inimesi erinevate rohkem/vähem sobivate valikute vahel oma otsuseid. Selline võimaluste vahel valimine pole samas siiski kõikide kasutajate jaoks. Näiteks vastava süsteemi ekspertkasutaja vaatenurgast on palju kiirem, kindlam ja lihtsam kasutada võimalikult robustset lähenemist mis tähendab vastavate käskude süntaksi teadmist. Sellisel juhul saab kasutaja sisestada oma käsud otse, kasutamata aeganõudvat ja väsitavat kasutajaliidest. Seoses eelnevaga ning muude tehniliste aspektidega (keerukus, ressursside puudus, jne) on täieliku tehisintellekti loomisel palju piiranguid ning paremad väljavaated on minna kasutajakeskset suunda ehk siis eelnevalt räägitud inimene/inimene suhtlus vs. inimene/arvuti suhtlus. See tähendab süsteemi intelligentsusele mingi optimaalse piiri leidmist ning kasutajal loomulikus keeles mingi kindla maani minna laskmist. Takistused inimkeele kasutamisel Siiani oleme harjunud erinevates kasutajaliidestes liikuma ringi menüüdes ja alamlehtedel, otsides vajalikku informatsiooni. Minnes üle inimkeele kasutamisele (masin küsib, mida kasutajale vaja? Kasutaja küsib masinalt?), tekib koheselt esimene probleem kuidas kasutaja teab, mis võimalused tal üldse vastava süsteemi kasutamiseks on? Palju aeganõudvam on see, kui kasutaja peab mõtlema, mida täpselt küsida või kuidas seda teha, et masin/süsteem teda valesti ei mõistaks. Näiteks just sellepärast ongi hea kuvada kasutajale erinevad menüüvalikud ekraanile ning lasta tal nende vahel valida. Seega kusagil süsteemis inimkeelt kasutades peavad lahendused baseeruma mingitel eeldatavatel kasutajamudelitel ja väga raske on teha süsteemi heaks igale kasutajale. Näide 1981 aastal tehti USAs test, kus lasti katsealustel inimestel kasutada raamatupidamisprogrammi, kuhu nad said sisse kanda ja sealt pärida tsekiraamatu sissekandeid täiesti loomulikus keeles. Näited sealsetest sissekannetest: Pay to Safeway on 3/24/86 $29.30 June 10 $33.00 to Madonna Show me all the checks paid to George Bush Which checks were written on October 29? jne. 2
Selle süsteemi valmides ning mõnda aega toimides mõõdeti (artiklis pole kirjas, kui paljude päringute ja inimeste andmeid kasutades) edukate päringute hulgaks 91% kasutajate tehtud päringutest. Seda võib vaadelda, kui üht loomuliku keele kasutusele võtu edukatest näidetest, kuid nüüd, üle 25 aasta hiljem, ei ole sarnased süsteemid eriti kasutust leidnud. Samale näitele toetudes võib öelda, et hetkel kasutuses olevad sama eesmärki täitvad programmid on palju intuitiivsemad kasutajale antakse ette vastavad lahtrid, mida ta ise täita saab ning programm sisestab seejärel saadud info andmebaasi. Ajakulu antud operatsioonidel ei ole kasutaja jaoks palju suurem, kui eelnevas näites ning kõik on tegelikult palju lihtsam ja selgem. Näiteks otsingud võib sarnastes süsteemides realiseerida samuti vastavatesse lahtritesse kasutajal märksõnu sisestada lubades (näit. Väljend George Bush väljal makse saaja otsib kõik selle isikuga seotud tšekid). Turingi test On läbi viidud paljusid teste inimkeelt kasutavate süsteemidega, kuid kõige vastuolulisem ja kuulsam (selle lahendamiseks korraldatakse ka võistlusi) on arvutiprogrammi loomine, mis suudaks vestelda inimesega nii, et viimane aru ei saaks, et ta arvutiga räägib. (http://www.loebner.net/prizef/loebner-prize.html). Antud programme hinnatakse inimlikkuse skaalal. Kriitikud väidavad kahjuks, et sellisel võistlusel pole selget eesmärgi lähtudes programmi kasulikkusest. Kogemused ja edasimineku suunad Kuna praeguseks on selgeks saanud, et inimkeelse dialoogi realiseerimine arvutiga osutub väga raskeks (kui mitte võimatuks), siis on hakatud rõhku panema natuke teistele suundadele. Olulisele kohale on tõusnud lingvistilised analüüsid näiteks dokumentidest erinevate osade (inimese-, koha-, firmade jne.) nimed, selgitamine, kas otsingumootoris leitud vastet omav veebileht tegelikult ka omab vajalikku infot ning kokku panemaks paari rida teksti, mis kirjeldaks võimalikult hästi otsingumootoris leitud vastet. Samuti näitavad kogemused erinevate testidega (lennufirmade broneerimissüsteemid, automatiseeritud vastused erinevate teenindussfääride süsteemidest, mitmed laiatarbeprogrammid), et kompaktsed visuaalsed võimalused menüüd, checkbox id, vormide täitmised ja erinevad valikmenüüd on palju kergemini õpitavad ning intuitiivsemad, kui inimkeelt kasutavad süsteemid. Kuigi inimesed eelistavad menüüdes surfata ja infot ise otsida, on kõnetuvastussüsteemide arendus siiski üks päris tähtis osa inimkeele kasutuselevõtust arvutimaailmas. (Näide: USA lennufirma broneerimisteenuses telefoni teel pakutakse kasutajale erinevaid võimalusi ning palutakse valida tal mõni võimalus, öeldes lihtsalt vastava valiku number). Sama kehtib ka veebilehtede ja eksponentsiaalselt kasvava mobiiltelefonide kasutuse kohta kasutajatele palju lihtsamini õpitavad ja kiiremad on erinevad menüüd, mille vahel nad liikuda saavad kuni omale vajaliku leiavad. Veebivorme täidetakse endiselt palju meelsamini, kui vabas vormis mingile süsteemile infot kirja pannakse või arvutile lihtsalt öeldakse, mis teha vaja on. 3
8.6.2 INIMKEELSED PÄRINGUD JA KÜSIMUSTELE VASTAMINE Päringud relatsioonilistes andmebaasides Olles veendunud, et inimene-inimene suhtlust arvutiga realiseerida osutub ülimalt raskeks, hakati 1980ndatel aastatel otsima alternatiive. Üks spetsiifilisem uurimissuund, mida saatis ka teatud määral edu olid inimkeelsed päringud relatsioonilistes andmebaasides. Kuna sellisel juhul on tegemist hästi struktureeritud keelega (SQL), siis usuti, et on võimalik arendada süsteem, kust kasutajad saaksid informatsiooni pärida loomulikus keeles, tundmata SQLi süntaksit. 1983 aastal jõuti testideni, kus võrreldi sama andmebaasimudeli peal inimkeelseid ja SQL päringuid. Need viisid tulemuseni, et SQLiga pärides on võimalik saada infot kiiremini ning sama kinnitas ka kasutajate hinnang ekspertkasutajad eelistasid SQL keelt loomulikule keelele. Siiski leidus 1980ndatel ka näide sarnase inimkeelse päringusüsteemi mõningasest edust. Tegemist oli programmiga INTELLECT, mida hinnanguliselt installeeriti ja kasutati üle neljasajas arvutis üle maailma. Erineva valdkonna spetsialistid kasutasid regulaarselt INTELLECTI otsimaks andmebaasidest neile vajalikku infot ning mitmed innovatiivsed implementatsiooni-ideed aitasid muuta seda programmmi neile ligitõmbavamaks. Kõigepealt aitas süsteem parsida päringuid andmebaasist näiteks otsis see inimkeeles sisaldatud päringutest sõnu, mida siduda andmebaasi tabelite vastavate väljadega. Teiseks sai süsteemiadministraator mugavalt piiritleda vastavaid päringuid, lihtsalt osutades INTELLECTILE väljad vastavate küsimuste korral (kes?, mis?, millal?, kus?, miks? Ja kuidas? küsimused). Kolmandaks sõnastas INTELLECT ümber kasutajate päringud ja näitas vastuseid umbes nii: Prindi tšekkide numbrid, kus maksesaaja = George Bush Sellised vastused olid ka kogenematutele kasutajatele arusaadavad, kuid teenisid ka natuke teist eesmärki. Nimelt olid need piisavalt struktureeritud, et kasutaja hakkaks süsteemiga sarnasel viisil suhtlema kasutaja arvab intuitiivselt, et mida selgemini ta süsteemi jaoks oma küsimuse kirja paneb, seda suurema tõenäosusega ja kiiremini saab ta sealt õige vastuse. Kahjuks saatis süsteemi vaid mõningane edu, kuna selle ideaalne kasutaja pidi siiski teadma vastava andmebaasi sisust üsna palju ning INTELLECT aitas tal siis lihtsalt vältida SQL süntaksi õppimist, et omale vajalikku infot andmebaasist kätte saada. Sarnase programmina võib veel välja tuua Symantec i Q&A ja Microsofti 1999 SQL serveri produkti English Query. Viimane saavutas isegi suurema tuntuse ja lubas samuti päringuid andmebaasile loomulikus keeles ning aitas kasutajaid ka päringu tõlgendamisega. (http://databases.about.com/od/sqlserver/a/englishquery.htm) Inimkeelsetele küsimustele vastamine Järgmiseks ideeks inimkeele kasutusele võtul sai loomulikus keeles küsitud küsimustele vastamine. Algne soov oli leida näiteks suvalistele faktiküsimustele lühikesed ja lihtsad vastused, kuid siin tekkisid pea ületamatud raskused nimelt inimeste esitatud küsimused ei ole alati õiged selles mõttes, et tehakse ebaõigeid eeldusi. Näiteks küsimus Kes on Euroopa Liidu president?, samas kui küsija ei ole kindel, kas Euroopa Liidul on üldse president. Samuti isegi inimesele väga lihtsana tunduvaid sõnu võib väga mitmeti tõlgendada olenevalt kontekstist või rõhuasetusest. Raskeks osutub ka opereerimine erinevate sõnadega, mille tähendus võib olla erinevatel juhtudel sama palk, teenistus, sissetulek, netopalk, jne. Just inimeste ettearvamatuse pärast on mindud teed, mida kasutavad praegu kõik suuremad otsingumootorid. Selleks on võtmesõna ja fraasi järgi otsingud, mis annavad tulemuseks mingi 4
hulga veebilehti, kust kasutaja juba ise vastust saab otsida. Selline lahendus on tihti palju informatiivsem ja selgem ning tehniliselt kergemini teostatav, kui mingi kindla vastuse andmine. 8.6.3 INIMKEEL TEKSTIANDMEBAASIDES Inimkeelsed otsingud tekstiandmebaasides Jätkates eelnevat - see valdkond on seotud erinevate otsingumootoritega ning hetkel inimkeele kasutuselevõtu entusiastide hulgas kõige populaarsem uurimissuund. On arendatud erinevaid filtreid ja parsereid loomulikus keeles esitatud päringute jaoks sellistes andmebaasides. Üritatakse lahendada kahte peamist probleemi kasutaja küsimusest võimalikult täpne aru saamine ning talle vastava informatsiooni andmine, vältides üleliigset ja valet infot. Selleks parsitakse tekst grammatiliselt, leitakse süsteemi jaoks tundmatutele sõnadele sünonüümid, lahendatakse ainsuse/mitmuse küsimused ja kontrollitakse muid probleeme nagu kirjavead või võõrsõnad. Seejärel eraldab analüsaator päringu sandardseteks komponentideks (leides märksõnade järgi vastavad teemad) ning kuvab kasutajale kriteeriumitele vastava info. Tüüpiliselt eemaldavad parserid sisestatud tekstist ka müra tekitavad sõnad (inglise keeles näit. the, of, in, jne) ja kuvavad seejärel kasutajale nimekirja vastustest, mis on reastatud võtmesõnade või fraaside esimenissageduste alusel. Kuigi antud lahendusi on ka proovitud mingi kitsa valdkonna töös, siis enamjaolt kasutavad sama lähenemist praegused suurimad otsingumootorid (google, Lycos, jne.) Teksti välja võtmine (Extraction) Teine tekstiandmebaasidega võetud suund on erinevate tekstide välja võtmine baasist. Tähendab see põhimõtteliselt järgmist: inimkeele parser analüüsib salvestatud teksti ja loob sellest rohkem struktureeritud teksti (näit. Relatsioonilise andmebaasi), misjärel muutub otsing üle sellise teksti palju kiiremaks. Kasu annab see suuremate tekstihulkade puhul, kuna struktureerimine on vaja teha vaid üks kord ja igal järgneval korral sealt pärides saab juba kasutada eelnevalt kindlaksmääratud reeglite alusel struktureeritud baasi. Selline lähenemine annab kasu samuti mingite kindlalt piiritletud alade puhul mõni seadustik, meditsiinilised tekstid, ajakirjandus jms. Tegemist on kergema protsessiga, kui eelnevalt kirjeldatud otsene suhtlus, kuna see on n.ö. kokkuvõte pikemast dokumendist ning peamine on edasi anda mõte. Kui viimasega on hakkama saadud, on kasutaja rahul. Kasu võiks selline lahendus tuua paljudes valdkondades näiteks automaatsed tekstianalüüsid, mis tooksid välja teatud soovitud informatsiooni erinevatest online-portaalides ilmuvatest uudistest mingite märksõnade alusel. Selline lähenemine on üsna ahvatlev, sest mõningane vigade protsent sarnastes süsteemides on kasutajate poolt täiesti tolereeritav. 8.6.4 INIMKEELSE TEKSTI GENEREERIMINE See alapunkt inimkeele kasutamises arvutites hõlmab suhteliselt lihtsaid töid nagu etteantud andmetest ilmateadete, meditsiiniliste raportite, psüholoogiliste testide, IQ testide tulemuste jms. koostamist. Vastavaid struktureeritud andmebaasist genereeritud tulemusi on võimalik kasvõi 5
näidata kasutajale üle veebi neid automaatselt kindla ajavahemiku tagant uuendades või saata erinevates keeltes üle erineva meediakanali lõpptarbijani (näit. ka telefonid, faksid). Samuti on võimalik automatiseerida andmetel põhinevaid erinevaid hoiatusi ja soovitusi (näit. meditsiinis, ilmateadetes, sporditulemustes, ametlike juriidiliste dokumentide koostamine jms.) Kunstilise poole pealt on olnud diskussioone luule kirjutamisest arvutite poolt. Tehniliselt ei ole seda raske realiseerida, küsimus jääb rohkem loovuse valda ja see oleks umbes sama, mis fotograafia korral küsida: Kas väga hea foto eest peaks kiitma fotoaparaati või inimest, kes selle pildi tegi? 8.6.5 SEIKLUSMÄNGUD JA ÕPPESÜSTEEMID Mõningal määral on inimkeelt kasutatud ka arvutimängudes kuigi peab möönma, et viimasel ajal ei ole see enam väga populaarne ja sellised mängud on enamjaolt turult kadunud. Selliste lahenduste põhimõte on kasutajalt infot saades mäng vastavalt käituma panna. Näiteks saab kasutaja sisestada mängu lause pööra vasakule, ava uks, vms. ning mäng käitub vastavalt. Muudes rakendustes enamjaolt probleemiks osutuv situatsioon võib siin just mängule põnevust lisada, nõudes kasutajalt mõtlemist ja avastamist. Pedagoogiliste eesmärkide saavutamiseks on kasutatud inimkeelt arvutites mitmeti, kuid kõige enam on leitud sellest kasu olevat õpilaste juhendamises läbi mingi õppeprotsessi: koostades neile ülesandeid lähtudes neid eelnevate ülesannete lahendamisel saatnud edust, andes tagasisidet õpitu kohta loomulikus keeles ehk nagu vesteldes õpilasega. Üheks väga heaks näiteks võib siinkohal tuua AutoTutor i (http://www.autotutor.org/) KOKKUVÕTE Inimkeele kasutamisel arvutites on ahvatlused üsna suured, kuid võimalused samas ka teatud määral piiratud kasutajate harjumuste ning süsteemi keerukusega. Väga raske on arvestada ühte süsteemi kasutavate erineva tasemega kasutajatega ning üheaegselt vastu tulla nende kõikide soovidele. Tuues inimkeelt sisse mõne süsteemi kasutajaliidesesse, tuleb hoolikalt analüüsida, kas antud featuur täidab oma eesmärki ning kui vajalik see tegelikult on. Arvutid ja muud masinad on siiski loodud meile endile kasu tooma ja väga keerukast ning kindla eesmärgita süsteemist ei ole otseselt kellelgi kasu. Võib öelda, et siiani suurim edu inimkeele sisse toomises süsteemi on saatnud erinevaid teksti otsingu, genereerimise ning väljastamisega tegelevaid süsteeme ning ka õppekeskkondi, mis teatud määral loomulikku keelt kasutavad. Kasutatud lingid: http://www.google.com/translate_t http://www.loebner.net/prizef/loebner-prize.html http://databases.about.com/od/sqlserver/a/englishquery.htm http://www.autotutor.org/ http://www.carnegielearning.com/products/ 6
http://www.isoc.org/hmp/paper/016/html/paper.html http://www.cs.utah.edu/~deprice/iui2000.pdf http://www.bcltechnologies.com/rd/nl.htm http://www.dgp.utoronto.ca/~byron/papers/nli.html 7