< eelmine | 5. OSA Keeletehnoloogia | järgmine > |
5.3 Kuidas toimib ...? autor: Mark Fišel
Ühe loenguga on muidugi võimatu kirjeldada kasulikku detailsusega tervet valdkonda. Selle asemel toome siin näiteid konkreetsetest keeletehnoloogia ülesannetest ning sellest, kuidas neid tänapäeval kõige edukamalt lahendatakse. Toome näiteid mõnedest komponentidest ja lõppkasutaja rakendustest, ning viitame ka töötavatele demodele, mida saab ise katsetada.
Komponendid
Morfoloogiline analüüs ja süntees
Sõnadel on oma ehitus, ning selle uurimist ja modelleerimist nimetatakse morfoloogiaks. Sõnad koosnevad morfeemidest, mõned morfeemid tohivad koos ja järjest esineda, teised mitte; mõned morfeemid on tähenduslikud (nagu sõna tüvi) ning teised on pigem grammatilised ja funktsionaalsed (nagu käändelõpud jt). Morfoloogiline analüüs tegeleb tekstis esinevate sõnavormide algvormi, käänete, sõnaliigi jt. info leidmisega; morfoloogiline süntees on selle pöördülesanne, kus etteantud algvormi ja morfoloogilise info põhjal peab genereerima sõnavormi.
Automaatne morfoloogiline analüüs ja süntees on keelemudelite levinud komponendid ning neid kasutatakse mitmes rakenduses: nt. juturobot näeb sisendit “mul on vaja bussipiletit Tartust Tallinna reedel” ning just morfoloogiline analüüs on see komponent, mille abil võib juturobot aru saada, et sisendis esineb “Tartu” seestütlevas, “Tallinn” sisseütlevas, “reede” alalütlevas käändes ning sõna “bussipilet” osastavas käändes. Ilma morfoloogilise analüüsita läheks juturoboti käitumise kirjeldamine palju keerukamaks, kuna siis peaks arvestama iga sõna erinevaid sõnavorme erinevate sõnadena (sest me ei teaks ju, et tegu on sama sõna eri vormidega). Morfoloogilist sünteesi kasutatakse samuti juturobotites, et sõnu õiges käändes kasutavaid vastuseid genereerida; samuti on sellest kasu nt. keeleõppe puhul, kui on vaja kontrollida, kas õpilase pakutud sõnavorm on korrektne: nt. mis on sõna “hulk” mitmuse osastav.
Nagu juba kirjeldatud peatükis 5.2, lahendatakse eestikeelset morfoloogilist analüüsi ja sünteesi kõige edukamalt just reeglipõhise lähenemisega. Reeglipõhist morfoloogilist töötlust saab ise proovida veebis aadressil www.filosoft.ee, sh. nii analüüsi kui sünteesi. Analüüsi juures võib aga märgata seda, et see ei üritagi mitmesust lahendada: nt lauses “ema sai kirja” ütleb analüsaator, et “ema” on kas nimetavas, omastavas või osastavas; “sai” on kas tegusõna “saama” kolmanda isiku ainsuse minevikus või nimisõna “sai” nimetavas ning “kirja” võib olla nii nimisõna “kiri” (omastavas, osastavas või sisseütlevas) või ka adverb (nagu “kirja panema”).
Joonis 9. Eesti keele morfanalüsaatori vastus päringule ‘ema sai kirja’: “ema” on kas ainsuse nimetavas, omastavas või osastavas käändes; “sai” on kas tegusõna “saama” kolmanda isiku ainsuse minevikuvorm või nimisõna “sai” nimetav vorm. Sõna “kirja” võib olla nii nimisõna “kiri” (omastavas, osastavas või sisseütlevas), omadussõna või tegusõnaga koos esinev partikkel (nagu “kirja panema”). Notatsiooni selgitus asub siin.
Asi on selles, et mitmesuse lahendamise probleem eristatakse lihtsustuse eesmärgil morfoloogilisest analüüsist ning selle nimeks on morfoloogiline ühestamine, mida see Filosofti demo ei toeta. Põhjus selle eristamiseks on lihtne: analüüsi on kõige otstarbekam teha reeglite abil, ühestamist aga tehakse masinõppe meetoditega, ning seega on tegu kahe täiesti erineva ülesandega.
Morfoloogilist ühestamist modelleeritakse edukalt tõenäosuste abil, nimelt:
- võetakse tekstikorpus, mis sisaldab käsitsi kontrollitud õiget morfoloogilist märgendit (iga sõna kohta on märgendatud sõnaliik, kääne jm. morfoloogiline info)
- selle põhjal hinnatakse tõenäosusi, millega üks sõnaliik / kääne / vms järgneb teistele morfoloogilistele kategooriatele. Näiteks, järjend “omadussõna tegusõna” on väga ebatõenäoline, kuid “omadussõna nimisõna” on vägagi tõenäoline: see aitab otsustada nt, et fraasis “pehme sai” on “sai” suure tõenäosusega nimisõna, mitte tegusõna
- terve lause kõikidele sõnadele õigete vormide valimiseks võib kasutada tehisnärvivõrke, klassikaliselt kasutati ka nn. Markovi peitmudelit1, mille kirjeldamine on käesoleva kursuse jaoks liiga spetsiifiline
Sõnatähendused: WordNet
WordNet on keeleressurss, mis on sarnane sõnastikuga: see sisaldab kirjeid, kus iga kirje sisaldab sõna ja selle tähenduse kirjeldust. Lisaks sellele sisaldab WordNet ka seoseid nende kirjete ehk sõnade vahel: näiteks, mis sõnad on sünonüümid (sama või sarnase tähendusega), antonüümid (vastupidise tähendusega sõnad), hüponüümid (ehk alammõisted), hüperonüümid (ehk ülemmõisted) jne.
Eestikeelset WordNet’i nimetatakse ka TEKsauruseks; selle koostamise ja täiendamisega on tegeletud Tartu Ülikoolis aastast 1998 praeguseni; 2018. aasta oktoobris avaldatud versioon 2.4 sisaldab üle 139 tuhande sõna ja 239 tuhat suhet.
TEKsaurusega saab tutvuda veebis, saates päringuid sõnade kohta; nt. sõna “sai” kirje illustratsioon, mis on võetud sellest samast demost, näeb välja järgmiselt:
Joonis 10. Sõna “sai” kirje TEKsauruses, ning selle suhted teiste sõnadega.
Näeme, et sõna “sai” ülemmõiste on “pagaritoode”, sellel on alammõisted “palmiksai” ja “stritsel”, jne. Täpsemat tekstilist infot saab pigem teisest päringukeskkonnast.
WordNet’i lähenemine tähenduste modelleerimisele on sarnane reeglipõhise keeletehnoloogiaga: kirjas on konkreetne info iga sõna kohta, mida võib kasutada ühe komponendina keeletöötluse rakendustes. Selle tugevus ja nõrkus on aga selles, et kasutada saab ainult olemasolevat infot, mis on täpselt defineeritud ja käsitsi kontrollitud. Nende sõnade kohta, mis on WordNet’ist puudu (nt. “tassikook” või “verikäkk”) ei ole võimalik saada mingit infot.
Sõnatähendused: vektoresitused
Alternatiivne lähenemine sõnatähenduste modelleerimisele põhineb sügavõppe poolt õpitud sõnade vektoresitustel. Siinkohal, keskendume 2013. aastal avaldatud meetodile word2vec, mis on näide juhendamata masinõppest keeletehnoloogias, nimelt kasutab see märgendamata korpust, mis sisaldab ainult “toorest” teksti ilma mingi seotud märgendita.
word2vec süsteem koosneb närvivõrgust, mis õpib ennustama etteantud sõna põhjal teisi sõnu, mis esinevad selle vahetus kontekstis ehk mitte kaugemal kui 5 sõna vasakule või paremale samas lauses. Muidugi ei ole võimalik neid kontekstisõnu ennustada üheselt (pole õiget vastust, samale sõnale võib eelneda ja järgneda erinevaid sõnu), küll aga suudab sellist ennustust tegema treenitud mudel hinnata iga sõnapaari kohta, kui tõenäoliselt võib neid sõnu lauses üksteise lähedal näha.
Olles treeninud sellise sõnade lähedust ennustava mudeli, kasutatakse sõnatähenduste mudeldamiseks mitte treenitud närvivõrku tervikuna, vaid selle poolt õpitud vektoresitusi igale sõnale. Kuna võrk õpib iga sõna puhul konteksti modelleerima, siis sarnases kontekstis esinevad sõnad saavad endale sarnaseid vektoresitusi võrgu peidetud kihtides. Sarnaselt esitatud sõnade hulgas on nii sünonüümid , sõnad, mille vahel on teistsugused seosed, kui ka sarnase funktsiooniga sõnad, nagu “kass”, “koer” ja “hamster”.
Kuigi word2vec vektorite suurus on tüüpiliselt 100 kuni mitu sada reaalarvu, siis nende dimensionaalsust saab vähendada, et neid vektoreid koos sõnadega saaks näidata kahemõõtmelisel graafikul. Illustratsiooniga näidatuna näeb see järgmiselt välja:
Joonis 11. Sõnade “armastus”, “kirg” ja “bürokraatia” vektoresituste kahemõõtmeline illustratsioon. See illustratsioon on saadud viies word2vec mudeli abil saadud 100 elemendiga sõnade vektorkujutised kahemõõtmelisele kujule, et neid saaks visualiseerida. Võib näha, et sõnad armastus ja kirg asuvad lähestikku. See on nii, sest need sõnad on tähenduselt sarnased ning esinevad tihti sarnases kontekstis (seega on neid ümbritsevad sõnad sarnased). Bürokraatia seevastu on esitatud hoopis erineva vektoriga, sest sel pole ei sisulist ega funktsionaalset seost teise kahe sõnaga.
Joonis 12. Päriselu näide sõnade word2vec vektoritest (ingliskeelse mudeli baasil), mille dimensionaalsust on vähendatud nii, et neid saaks 2D joonisel kujutada. On näha, et “usa”, “canada” ja “australia” asuvad lähestikku, samuti nagu ka paljud Euroopa riigid. Riikide pealinnad ja teised suured linnad on eraldi grupis vasakul koos. Teatud teiste riikide nimetused “israel”, “iraq” ja “kosovo” on samuti lähestikku, mis näitab, et see word2vec mudel ei grupeeri riike ainult geograafilise asukoha järgi (Kosovo asub Iisraelist ja Iraagist üsna kaugel) -- neid on lihtsalt mainitud sarnastes kontekstides (sõjalised konfliktid).
Eestikeelsete word2vec’i vektoritega saate tutvuda ühes praktilises ülesandes; kahjuks on veebidemo on pakkuda ainult inglisekeelsetele fraasidele, mida on vektorkujul esitama õpitud samasugusel printsiibil nagu word2vec (ehk millised fraasid esinevad sarnastes kontekstides). Eestikeelsete sõnade vektoreid saab ise luua ja katsetada praktilises ülesandes.
Teksti liigitamine
Teksti liigitamine on ülesannete hulk, mille alla mahuvad kõik keeletehnoloogia ülesanded, kus mõnda lauset või teksti tuleb klassifitseerida üheks mitmest klassist. Selle alla kuuluvad sellised lahendused nagu rämpsposti tuvastamine (liigitamine rämpspostiks ja mitte-rämpspostiks), meelsusanalüüs (liigitamine positiivseks, negatiivseks või neutraalseks tekstiks), samuti žanri, teema või teksti tüübi tuvastamine (nt uudised, teaduslikud, juriidilised, tehnilised vm. tekstid).
Tekstide liigitamist on pikka aega tehtud klassikalise masinõppe abil, kasutades klassifitseerimismeetodeid, ning seda lähenemist kirjeldasime näitena peatükis 5.2. See masinõppel põhinev lähenemine seisneb sisendteksti kirjeldamises mingite tunnuste abil ning seejärel klassifitseerija treenimises.
Joonis 13. Erineva otstarbega tekstid sisaldavad erinevaid sõnu. Vasakul enamesinenud sõnad lehelt armastuskirjad.com ja paremal sõnad põhikooli riiklikust õppekavast.
Üks universaalne tunnuste tüüp, mida tihti tekstide klassifitseerimisel kasutatakse, kannab nime sõnahulgad (bag-of-words). See lähenemine seisneb selles, et iga treenimiskorpuses esinev sõna moodustab kahendtunnuse: kas see sõna esineb selles konkreetses tekstis (või lauses) või ei. Tulemuseks on suur hulk binaarseid tunnuseid, mis jätavad arvesse võtmata sõnade järjekorra ja esinemissageduse, ning alles jääb ainult info iga sõna olemasolu kohta. Kuigi juba intuitiivselt võib aimata, et see lähenemine on pigem naiivne, võimaldab see siiski leida selliseid võtmesõnu, mis osutavad kindlalt konkreetse liigi või klassi peale.
Teksti ID | kallis | ilus | õpilane | hinne | patsient | ravikuur |
---|---|---|---|---|---|---|
tekst_1 | 1 | 1 | 0 | 0 | 0 | 0 |
tekst_2 | 0 | 0 | 1 | 1 | 0 | 0 |
tekst_3 | 1 | 0 | 0 | 1 | 1 | 1 |
Tabel 1. Tekstide kujutamine sõnahulkade kujul ehk märkides 1 või 0 abil, kas iga sõna esines tekstis või ei. Ilmselt pole keeruline selliste tunnuste põhjal järgi arvata, milline kolmest tekstist on pärit lehelt armastuskirjad.com, milline põhikooli riiklikust õppekavast ning milline arstiteaduse õppekavast.
Targem on muidugi arvesse võtta mitte kõiki sõnu, vaid ainult neid, mille kohta teame, et need aitavad teksti liike eristada. Üks tüüpiline võte, mida tehakse sõnahulga vähendamiseks, on mitte-sisuliste sõnade (sidesõnad, eessõnad, asesõnad jms) eemaldamine. See on mõistlik, kuna neid sõnu esineb tekstis sõltumata selle liigist, ning seetõttu ei anna nad infot sellest, mis liiki antud tekst võiks olla.
Hiljuti on sügavõppepõhised lähenemised samuti toonud kvaliteetseid lahendusi tekstide liigitamise ülesannetele. Seejuures õpetatakse närvivõrke algusest lõpuni (end-to-end) sellisel meetodil, et teksti sõnade lähevad jälle otse närvivõrgu sisendiks, ilma neid tunnusteks (nagu sõnahulgad vms) käsitsi teisendamata ning pärast õpib süsteem teksti klassi ennustama.
Siin on eesti ettevõtte MindTitan kommentaar masinõppe, keeletöötluse ja teksti liigitamise kohta praktilisema kallakuga. Markus Lippus, MindTitani juhtiv andmeteadlane ja kaasasutaja, räägib, mis probleemid ettevõtte lahendab kasutades tehisintellekti.
Rakendused
Masintõlge
Automaatne tõlkimine inimkeelte vahel ehk masintõlge on üks esimestest keeletehnoloogia ülesannetest, mida arvutite abil üritati lahendada ning kus esimesi katseid tehti juba 50ndate alguses. Selle aja jooksul on püütud masintõlget lahendada reeglipõhise lähenemisega (valdavalt kuni 80ndateni), siis statistiliste mudelitega (lähenemine, mis tegi masintõlke kasutatavaks praktikas ning domineeris seda valdkonda umbes kuni 2014-2016 aastani) ning hiljuti sügavõppe abil neuromasintõlke lähenemises. Siin kirjeldame pealiskaudselt just neuromasintõlget.
Neuromasintõlkes kasutatavat lähenemist nimetatakse järjendite teisendamiseks (ingl sequence-to-sequence ehk seq2seq) ning see ei ole ainult tõlkimisele spetsiifiline idee. See lähenemise toetab suvaliste järjendite (näiteks lausete) teisendamist teisteks järjenditeks (näiteks lauseteks teises keeles). Juhul, kui andmed sisaldavad tõlkenäiteid (lause ja selle tõlge), õpib taoline süsteem tõlkimist; kui korpus koosneb hoopis vigaste lausete parandamise näidetest (vigane lause ja parandatud lause), lause lihtsustamisest või teisiti ümber sõnastatud lausetest, õpib süsteem hoopis neid ülesandeid täitma.
Kõigepealt vaatleme tõenäosusliku teksti genereerimist närvivõrgu abil sihtkeeles, ilma lähtekeele sisendit vaatamata. Korraldame genereerimist “vasakult paremale”: kõigepealt ennustab närvivõrk lause esimese sõna tõenäosusjaotust, ning selle abil võime valida välja lause esimene sõna. Seejärel ennustab närvivõrk teise sõna tõenäosusjaotust, mis on tingitud esimesele sõnale. Kolmanda sõna tõenäosusjaotus on tingitud esimesele kahele sõnale, jne. Sellist genereerimist nimetatakse autoregressiivseks.
Näiteks, otsustatakse juhuslikult/tõenäosuslikult, mis võiks olla esimene sõna. Olgu selleks “kui”.
Edasi, teades, et esimene sõna oli “kui”, genereerime järgmise sõna, milleks olgu nt. nimi “Arno”.
Teades, et lause algus on “kui Arno”, genereerime järgmise sõna “isaga”, jne.
Sellise lause jätkamisega saab inimene hästi hakkama: kerge on jätkata lauset “kas te soovite teed või …?” sõnaga “kohvi” (isegi kui “õlut” oleks samuti grammatiliselt ja tähenduse poolest täiesti aktsepteeritav variant). Samuti on kerge tuvastada, et lause algust “lugupeetud …” võib jätkata mitmel viisil, nagu “daamid ja härrad”, “vanemad”, “tudengid”, “reisijad” vms, aga tõenäoliselt mitte “kurgid” või “siniseks”. Samamoodi õpib tehisnärvivõrk juba olemasolevale lausealgusele järgneda võivate sõnade jaotust, et genereeritud lause saaks grammatiliselt korrektne ja sorav.
Joonis 14. “Kas soovite teed või …” ulmeraamatu illustratsioon robotist inimesele kohvi serveerimas.
Et aga juhuslikult genereeritud lause asemel genereerida mingile sisendlausele vastav tõlge, peame me lisama genereerimise tingimuste hulka ühe väga olulise lisaklausli. Me soovime genereerida järgmise sõna väljundlauses, arvestades nii seni genereeritud väljundiga (just nagu enne) kui ka kogu meie sisendlausega (tõlkimist vajava lausega sisendkeeles). Tõlkides inglise keelest eesti keelde, olgu sisendiks näiteks “dear travellers”, ning juba genereeritud osaliseks väljundiks olgu “lugupeetud”. Võttes arvesse nii eesti keele genereerimise reegleid (sõnale “lugupeetud” järgnevad tõenäoliselt teatud sõnad) kui sisendlauset, on lihtne jätkata lauset kui “lugupeetud reisijad”.
Protsessi illustreerib järgmine animatsioon, mis näitab prantsuskeelse lause “Je suis étudiant” tõlkimist inglise keelde:
Joonis 15. Illustratsioon neuromasintõlke tööst. Vasakul on roheliselt kujutatud kodeerija, mis leiab sisendlause sõnadele (“je”, “suis”, “étudiant”) vastavad vektorid. Paremal roosa taustaga on dekodeerija: animatsioon näitab, kuidas dekodeerija genereerib väljundlause sõnu ükshaaval. Kodeerija ja dekoodri vahel on sinist ja oranži värvi tähelepanumehhanismi elemendid, mis tagavad dekoodril võime ligi pääseda sisendsõnade vektoritele. Allikas: http://jalammar.github.io/illustrated-transformer/
Selle illustratsiooni põhjal saame nüüd üldiselt kirjeldada, milline on seq2seq meetodite ehitus:
- sisendi sõnu töötleb kodeerija (ingl encoder) ning leiab igale sõnale vektoresituse, mis sõltub nii sõnast endast kui ka ülejäänud lause kontekstist. Nii on nt. sõna “sai” vektorid erinevad, sõltuvalt sellest, kas tegu on tegusõna või nimisõnaga.
- väljundit genereerib dekooder (ingl. decoder), mis läheneb genereerimisele autoregressiivselt, ehk iga järgmise sõna genereerimine tugineb juba genereeritud sõnadele
- dekooderi ja kodeerija vahel on nn. tähelepanumehhanism (joonisel on sellest K ja V elemendid; tegelikkuses on dekoodri igal kihil ühendus kodeerija väljundiga läbi tähelepanumehhanismi), mis annab dekoodrile ligipääsu terve sisendlause vektoritele, aga arvestab ka seda, millised sisendi elemendid on vajalikud, et järgmist väljundisõna genereerida
- seda, milliste vektoritega esitada sisendit, juba genereeritud väljundit ja ka seda, kuidas otsustada, millised sisendsõnad on vajalikud milliste väljundsõnade genereerimiseks, õpib tehisnärvivõrk korraga, algusest lõpuni (ehk end-to-end stiilis).
Masintõlke näiteid on veebis rohkelt saadaval, sh. TÜ keeletehnoloogia uurimisrühma masintõlke süsteemi veebidemo.
Grammatiliste vigade parandamine
Joonis 16. Põhikooli õpilase õigekirja vigu parandab tema eesti keele õpetaja.
Viimasel ajal domineerib grammatiliste vigade parandamises samasugune lähenemine nagu masintõlke puhul: seq2seq, täpsemalt tähelepanumehhanismiga kodeerija-dekooder tüüpi tehisnärvivõrk. Selle ülesande eripära on aga selles, et sisendiks on vaja lauseid, mis potentsiaalselt sisaldavad grammatilisi vigu, ning väljundiks on lause samas keeles, kus see viga on parandatud. Põhiline erinevus masintõlkega seisneb selles, et tõlkimist tehakse maailmas massiliselt, mis tähendab, et tõlkenäiteid, mida saab treeningandmetena taaskasutada, on palju rohkem. Grammatilisi vigu aga parandatakse oluliselt vähem. Konkreetselt, eesti keele puhul on veaparandatud korpus väga väike, ning väiksematel keeltel (võru, komi, lapi, jne) sellist korpust üldse ei olegi.
Joonis 17. Microsoft Word teeb õigekirja kontrolli ning pakub valesti kirjutatud sõnadele asendust. Mitte alati edukalt, esineb nii valepositiivseid (sõnu, mis on tegelikult õiged, aga märgitakse valeks) kui valenegatiivseid (parandamata jäetud sõnu).
Seega, tutvustame alternatiivset lähenemist, millega tegeleb TÜ keeletehnoloogia uurimisrühm, ning mida saab ise katsetada TÜ tõlkedemo veebilehel (link). Sel lehel saab “tõlkida” vigast eestikeelset teksti korrektsesse eesti keelde:
Joonis 18. TÜ tõlkedemo lehel saab tõlkida vigast eestikeelset teksti korrektsesse eesti keelde. Näiteks kui sisestada “me parandab vead”, on väljundiks “me parandame vigu”.
Selle lahenduse printsiip seisneb selles, et tõlkimise jaoks kasutatakse mitmekeelset tehisnärvivõrku, mida õpetati nii inglise-eesti, eesti-inglise, vene-eesti, eesti-läti kui teiste keelepaaride tõlkenäidete abil. Iga kord on aga sisendi ja väljundi keeled erinevad. Tulemuseks on süsteem, milles:
- tõlkesüsteemi kodeerija õpib kodeerima erinevates keeltes antud sisendeid vektoriteks
- sisendkeelest sõltumatult õpib tõlkesüsteemi dekooder õiges keeles väljundit genereerima. Dekooderi õpetamisel kasutame ainult grammatiliselt korrektseid tekstinäiteid (tõlkenäidete sihtkeelsed laused), mis tähendab, et isegi kui sisend on vigane, ei hakata neid vigu väljundisse kopeerima.
- kui sisend on eestikeelne ning väljundi palume samuti genereerida eesti keeles, suudab kodeerija leida mõistlikud vektorid, mille põhjal suudab dekooder genereerida parandatud väljundi
Muidugi ei ole see lahendus ideaalne, ning mõnede vigade parandamisega ei saa see lahendus hakkama. Siiski on tähelepanuväärne ja kasulik, et suudame luua mingisugusegi veaparandamise mudeli, ilma et oleksime kasutanud märgendatud andmeid (vigaste ja korrektsete lausete paare).
Kõnesüntees
Tehisnärvivõrkudega võimalik seq2seq lähenemine on piisavalt võimekas, et see saab hakkama mitte ainult teksti töötlemisega vaid ka heliandmetega. Nii kasutab viimasel ajal ka kõnesüntees, ehk teksti automaatne ettelugemine, järjendite teisendamise meetodeid, kuid sisendjärjenditeks on seekord tekst ja väljundjärjendiks kõne helijupid.
Täpsemalt, õpib närvivõrk genereerima väljundkõne spektrogrammi, ehk seda, kui hästi on igal millisekundil kuulda igat helisagedust. Seejärel teisendatakse genereeritud spektrogramm helilaineteks.
Sellise sõnade järjendist helide järjendit genereeriva mudeli treenimiseks on jälle vaja suurt hulka andmeid, kus sel korral on andmeteks laused tekstina ja nende ettelugemise lindistus. Nt. TÜ kõnesünteesi veebidemo mudelite loomiseks on korjatud kokku ligikaudu 70 tundi transkribeeritud kõnet neljalt kõnelejalt.
Joonis 19. TÜ kõnesünteesi veebidemo asub aadressil neurokone.ee
Nagu teistegi ülesannete puhul, ei ole see sügavõppel põhinev lahendus ideaalne. Neurokõne veebidemos võib leida lauseid või sõnu, mida närvivõrk hääldada ei taha, või mille puhul hakkab ta “kokutama”. Siiski, võrreldes eelmiste lähenemistega (proovige, nt.,postimees.ee artikli peal “kuula artiklit”) on tulemuse kõla palju loomulikum.
Lisainfo
Lisaks siin loengus mainitud TÜ teadlaste loodud lahendustele tegeldakse TTÜs väga edukalt kõnetuvastusega, ehk kõne automaatse transkribeerimisega tekstiks. Selle kohta on olemas veebileht, kuhu saab üles laadida helifaile, ning laadida transkriptsiooni alla teksti või subtriitrite kujul. Kõnetuvastuse kvaliteet sõltub tugevalt helikvaliteedist, kuid arusaadava kõne puhul töötab see väga väikese veamääraga.
Viimase 4-5 aasta jooksul on Eestis tekkinud mitu ettevõtet ja idufirmat, mis tegelevad keeletehnoloogia ülesannetega. Nende hulgas on
- Texta, mis arendab vabavaralist texta teeki, mis toetab tekstide liigitamist, meelsusanalüüsi, tekstist info eraldamist jne.
- AlphaBlues, mis arendab eesmärgi-spetsiifilisi juturoboteid
- Tilde, mis arendab masintõlget ja pakub ka tõlketeenuseid
- MindTitan, kus samuti arendatakse nii juturoboteid kui ka teisi tehisintellekti ja keeletehnoloogia rakendusi
Ülikoolidest ja uurimisrühmadest rääkides, tegelevad keeletehnoloogia teadus- ja arendustegevusega peamiselt TÜ arvutiteaduse instituudi keeletehnoloogia uurimisrühm, TTÜ keeletehnoloogia labor ja Eesti Keele Instituudi keeleressursside ja keeletehnoloogia osakond ning kõneuurimise ja kõnetehnoloogia osakond. Samuti on olemas väiksemad rühmad, kes samuti panustavad Eesti keeletehnoloogia arendamisse. Nende hulgas on nii ettevõtted nagu Texta ja Tilde, kui ka konkreetsema suunitlusega uurimisasutused nagu Võro insituut.
Joonis 20. Otsing Võru keele instituudi keelekorpusest näitab sisestatud otsisõna sisaldavaid lauseid. Päringuid saab veebis esitada.
Rohkem ja sügavamalt saab keeletehnoloogiat õppida nii Tartu Ülikooli informaatika bakalaureuse- ja magistriprogrammis kui ka TTÜs arvutiteaduse magistriõppes.
Eesti keele keeletehnoloogia arendamist toetab Haridus- ja Teadusministeeriumi Eesti keeletehnoloogia riiklik programm, mis rahastab masintõlke, kõnetuvastuse, veaparanduse, morfoloogilise- ja süntaktilise analüüsi, WordNeti täiendamise, korpuste korjamise ja täiendamise ning teisi projekte.
1 https://en.wikipedia.org/wiki/Hidden_Markov_model
< eelmine | 5. OSA Keeletehnoloogia | järgmine > |