Teksti normaliseerimine

Allikas: Vikipeedia
 See artikkel on arvutilingvistikast. Keeleteaduse morfoloogia kohta vaata artiklit sõna normaliseerimine.

Teksti normaliseerimine on loomuliku keele töötluses ebastandardsele tekstile standardse vaste leidmine. Loomuliku keele töötluse programmid on loodud töötama standardse tekstiga, aga leidub mitmeid keelekorpuseid, mille tekst on ebastandardne.[1] Sellised on näiteks vanad tekstid[2], meditsiinitekstid[3], sotsiaalmeedias või telefonis kirjutatud säutsud, SMSid[4] jne ja tavalise teksti kõneks sünteesimine[5] . Ebastandardsused sõltuvad teksti liigist.

Ajalugu[muuda | muuda lähteteksti]

Esialgu kasutati teksti normaliseerimiseks peamiselt õigekirja kontrollile sarnaseid mudeleid. Aastal 2000 Brilli ja Moore’i loodud mudel ületas vanemate mudelite tulemusi. Aastal 2002 Toutanova ja Moore eelmise mudeli edasiarendus põhines reeglite õppimisel ja ennustas ühe tähe hääldust sõnas selle kõrval asuvate tähtede abil.[6]

Aastal 2007 tehti juhendatud õppimisega Markovi peitmudel, mis sõnaraamatu abil normaliseeris lühendeid. 2009 loodud juhendamata õppimisega mudel lähenes igale sõnaliigile eraldi.[6]

Eelnevad mudelid ei arvestanud kontekstiga ja eeldasid, et igale märgendile vastab üksainus standardvorm. Aga paljud sõnastikuvälised sõnad on määratlematud ja kontekst aitab neid õigesti määratleda.[6]

Normaliseerimiseks kasutatakse ka masintõlget ehk võetakse ebastandardsuse probleemi nagu ühest keelest teise tõlkimist. Erinevad mudelid tõlgivad nii sõna- kui sümbolitasemel. Masintõlkel põhinevad mudelid on juhendatud õppimisega ja vajavad annoteeritud andmeid.[6] Annoteerimisega tegelevad keele- või valdkonna spetsialistid. Kuna see käib käsitsi, siis võtab see väga palju aega ja on kallis.

On katsetatud sõnastikel põhinevaid mudeleid, mis leiavad normaliseeritavale sõnale sõnastikust kõige sarnasemad variandid. Sellised mudelid valivad ebastandardsele sõnale leksikaalselt ja foneetiliselt sarnanevaid vasteid ja pikimat alamsõne, mis kattub lähtesõnal ja vastel.[6]

Viimase aja trend on katsetada normaliseerimiseks tehisnärvivõrke.

Vanade tekstide normaliseerimine[muuda | muuda lähteteksti]

Mitmed vanad käsitsi kirjutatud või trükitud tekstid on skannitud ja digiteeritud. Kuna ajalooliselt ei ole alati kehtinud kindlaid keelenorme, leidub vanemates tekstides ühe sõna mitmeid kirjapilte ehk varieerumist. Paljude sõnade ortograafia erineb tänapäeva keelenormingust. Esineb ka kirjavigu, loetamatuid märke ja digiteerimisel tekkinud vigu.[7]

Kuna keeleprogrammid on loodud praeguse standardkeele jaoks, ei saa neid normaliseerimata ajaloolisel tekstil kasutada. Seetõttu on piiratud ka tavakasutajate ligipääs neis tekstides leiduvale infole, sest nad ei ole enamasti kursis sõnade vanemate kirjapiltide ja nende kõigi variantidega. Selle probleemi lahendaks kõigile sõnadele tänapäevase vaste leidmine. Teine võimalus normaliseerimiseks on jätta sõnad algsele kujule, aga valida variantidest üks standardiks ja muuta teised samale kujule.[8]

Teksti saab normaliseerida ka, kui standard või tänapäevane vaste puuduvad. Piisab variatsioonihulkade tuvastamisest. Kõigepealt otsitakse tekstist sõnu, mis võivad olla üksteise variatsioonid ja pannakse ühte hulka. Seejärel vaadatakse hulk läbi ja jäetakse alles ainult sobivaimad kandidaadid. Valik tehakse sõna ja märgi tasemel, et konteksti arvestada.[8]

Variantide leidmiseks kasutatakse tihti Levenshteini kaugust. See algoritm arvutab, kui sarnased kaks sõna üksteisele on, liites kokku mitut tähte peab muutma, et saada ühest sõnast teine. Muutmistehted on ühe tähe kustutamine, juurde lisamine ja asendamine teise tähega.[8]

Meditsiinitekstid[muuda | muuda lähteteksti]

Terviseandmeid hoitakse tänapäeval digitaalsetes andmebaasides, kuhu meditsiini valdkonna töötajad patsientide visiite, diagnoose jne sisestavad. Tihti on vaja kiiresti kirjutada ja seepärast kasutatakse palju lühendeid ja akronüüme. Leidub küll terminite ja lühendite sõnastikke, aga arstid ja õed lühendavad sõnu kirjutamise käigus standardeid järgimata. Inglise keele jaoks on programme, mis suudavad päris hästi meditsiiniliste lühenditega teksti töödelda, sest on olemas head sõnaraamatud, milles on lühendid koos vastetega.[3]

Rootsikeelsete meditsiinitekstide ja neis esinevate lühenditega toime tulevaid teadaolevaid keeletehnoloogiaid ei olnud, seepärast loodi 2012. aastal uus tööriist SCAN (Swedish Clinical Abbreviation Normalizer), mis oli algselt häälestatud kiirabi töötajate sisestatud andmetele.[9] Programmi arendamiseks lisati radioloogia raportid.[3]

On ka uuritud, milliseid lühendeid neis kahes meditsiinitekstide korpuse alamkorpuses leidub. Meditsiinitekstid erinevad tavatekstidest ja ka alamvaldkondade tekstid on üksteisest erinevad. Selgus, et kiirabitöötajad kasutavad rohkem lühendeid ja radioloogid akronüüme.[3]

Sotsiaalmeedia tekstid[muuda | muuda lähteteksti]

Internetikeelekorpused on väga suured ja neis on palju huvitavat infot, aga seda on raske kätte saada, sest need on tihti ebastandardses kirjas. Kasutatakse väga palju lühendeid (2nite – tonight), slängi, internetiväljendeid (lol - laughing out loud), emotikone ( :) – naerunägu), metainfot (#põhupunk ja www.facebook.com) ebastandardset süntaksit ning teisele keelele ümber lülitumist (Käisime ujumas, I love summer.), foneetikat (ai lav juu), mitmekordseid tähti (apppppiiiii).[10]

Kõnesüntesaatorid[muuda | muuda lähteteksti]

Teksti kõneks muutmisel on vaja teisendada tekst kirjalikust vormist suulisesse ehk ühest standardit teise. Kõnesüntesaatorid on tänapäeval väga levinud (Alexa jms). Kõne tekstiks teisendamine ja teksti kõneks teisendamine on loomuliku keele töötluse haru, milles masinõpe ei suuda normaliseerida ning seega kasutatakse tehisnärvivõrke. Teksti kõneks muutmisel on raske lugeda arve, sest nende kuju sõltub kontekstist. Kõnetehnoloogias on normaliseerimine semiootiliste klasside tekstiliste kujutuste verbaliseerimine näiteks 3 m muudetakse kõnevormi kolm meetrit.[5]

Keerulised juhud on kuupäevad, kellaajad, rahasummad, mõõdud. Inglise keeles tuleb tihti ka sõnade järjekorda muuta ($30 loetakse thirty dollars).[5]

Kahjuks teevad tehisnärvivõrgud vahel vigu, mis võivad jääda kasutajale märkamatuks, aga osutuda väga ohtlikuks. Kui kõnesüntesaator loeb raamatut ja ütleb mõne sõna vales käändes, siis saab inimene ikka lausest õigesti aru. Aga kui GPS loeb 45 km kui kolmkümmend viis kilomeetrit, ei saa kasutaja arugi, et tegu on veaga, enne kui kraavi sõidab. Tehisnärvivõrgud teevad just viimati mainitud vigu, küll harva, aga see muudab ikkagi mudeli kasutuskõlbmatuks.[5]

Kõnesüntesaatorites kasutatakse seepärast industriaalseid teksti normaliseerimise süsteeme, mis põhinevad keerulisel käsitsi kirjutatud grammatikal.[5]

Viited[muuda | muuda lähteteksti]

  1. Plank, Barbara. "What to do about non-standard (or non-canonical) language in NLP" (PDF). Proceedings of the 13th Conference on Natural Language Processing (KONVENS 2016). Vaadatud 5.12.2020.
  2. Tang, Gongbo & Cap, Fabienne & Pettersson, Eva & Nivre, Joakim (2018). "An Evaluation of Neural Machine Translation Models on Historical Spelling Normalization". Vaadatud 09.12.2020.{{netiviide}}: CS1 hooldus: mitu nime: autorite loend (link)
  3. 3,0 3,1 3,2 3,3 Kvist, Maria & Velupillai, Sumithra (september 2014). "SCAN: A Swedish Clinical Abbreviation Normalizer". 62–73. Vaadatud 09.12.2020.{{netiviide}}: CS1 hooldus: mitu nime: autorite loend (link)
  4. Kobus, Catherine and Yvon, François and Damnati, Géraldine (jaanuar 2008). "Normalizing SMS: are Two Metaphors Better than One ?". Coling 2008 – 22nd International Conference on Computational Linguistics, Proceedings of the Conference. 441–448. Vaadatud 09.12.2020.{{netiviide}}: CS1 hooldus: mitu nime: autorite loend (link)
  5. 5,0 5,1 5,2 5,3 5,4 Zhang, Hao and Sproat, Richard and Ng, Axel and Stahlberg, Felix and Peng, Xiaochang and Gorman, Kyle and Roark, Brian (märts 2019). "Neural Models of Text Normalization for Speech Applications". Computational Linguistics. 1–49. Vaadatud 10.12.2020.{{netiviide}}: CS1 hooldus: mitu nime: autorite loend (link)
  6. 6,0 6,1 6,2 6,3 6,4 Sonmez, Cagil and Ozgur, Arzucan (oktoober 2014). "A Graph-based Approach for Contextual Text Normalization". Vaadatud 09.12.2020.{{netiviide}}: CS1 hooldus: mitu nime: autorite loend (link)
  7. Michael Piotrowski (September, 2012). Natural Language Processing for Historical Texts Synthesis Lectures on Human Language Technologies. Toronto: Morgan and Claypool. {{raamatuviide}}: kontrolli kuupäeva väärtust: |aasta= (juhend)
  8. 8,0 8,1 8,2 Barteld, Fabian and Biemann, Chris and Zinsmeister, Heike (detsember 2019). "Token-based spelling variant detection in Middle Low German texts". Language Resources and Evaluation. Vaadatud 10.12.2020.{{netiviide}}: CS1 hooldus: mitu nime: autorite loend (link)
  9. Isenius, N. & Velupillai, Sumithra & Kvist, Maria (2012). "Initial results in the development of SCAN: A swedish clinical abbreviation normalizer". CEUR Workshop Proceedings. 1178. Vaadatud 04.01.2021.{{netiviide}}: CS1 hooldus: mitu nime: autorite loend (link)
  10. Muller, Benjamin and Sagot, Benoît and Seddah, Djamé (jaanuar 2019). "Enhancing BERT for Lexical Normalization". 297–306. Vaadatud 09.12.2020.{{netiviide}}: CS1 hooldus: mitu nime: autorite loend (link)