Obdelava naravnega jezika

Drug ključni vidik pri tem je semantika (pomenoslovje). Največ, kar lahko tehnologija stori pri reševanju jezikovnih vprašanj, je pravzaprav površinske narave: algoritem predlaga odgovor na podlagi določenih skladenjskih pravil. Nič zato, če na koncu besedilo nima nobenega smisla. Podobno bi se lahko zgodilo pri branju besedil učencev – če bi samo popravljali napake, ne da bi zares razumeli, o čem besedilo govori. Bistvo je v seveda v pomenu, ki ga pripišemo besedilom oziroma izrečenim besedam.

Leta 2008 je prišlo do preboja: ustvarjen je bil edinstven jezikovni model, ki se je učil iz velikanske količine podatkov in ga je bilo mogoče uporabiti za različne jezikovne naloge. Dejansko je deloval bolje kot modeli, ki so bili naučeni izvajati posamezne od teh nalog.


Ta model je bil globoka nevronska mreža. Čeprav ni bila niti približno tako globoka kot mreže, ki se uporabljajo danes, so bili rezultati dovolj prepričljivi, da so raziskovalci pričeli verjeti, da bo strojno učenje, natančneje globoko učenje, odgovor na številna vprašanja glede NLP.

Od takrat tehnologije NLP niso več sledile pristopu na osnovi modelov, temveč se je uveljavil pristop, ki temelji na podatkih. Jezikovne naloge v tem smislu razdelimo na dva sklopa: tiste, ki vključujejo ustvarjanje modelov, in tiste, ki vključujejo dekodiranje.

Ustvarjanje modelov

Če želite prepis (transkripcijo), odgovor na vprašanje, dialog ali prevod, morate najprej vedeti, ali je na primer stavek »Je parle Français« res veljaven stavek v francoščini ali ne. In ker pri govorjenem jeziku slovnična pravila niso vedno natančno upoštevana, bo odgovor izražen z verjetnostjo: stavek je bolj ali manj francoski. Na podlagi tega tudi sistem pripravi različne predloge stavkov (transkripcijo slišanega, prevod stavka itd.), in verjetnost ustreznosti tudi razvrsti (oceni). Uporabnik nato lahko izbere stavek z najvišjo oceno (tj. z najvišjo verjetnostjo ustreznosti) ali pa to informacijo kombinira z drugimi viri informacij (pomen stavka).

Prav to počnejo jezikovni modeli: verjetnosti izračunajo na podlagi algoritmov strojnega učenja. Čim več podatkov je na voljo, tem bolje. Za nekatere jezike je na voljo veliko podatkov, na podlagi katerih lahko ustvarimo jezikovne modele, pri drugih jezikih pa ni tako.

Za nalogo prevajanja nista potrebna dva, temveč trije modeli: jezikovni model za vsakega izmed obeh jezikov in še en model za prevode, ki nam pove, kateri prevodi fragmentov jezika so boljši oziroma ustreznejši. Takšne modele je težko izdelati, če je podatkov malo. Medtem, ko je modele za pogoste »jezikovne pare« lažje izdelati, to ne velja za jezike, ki se ne uporabljajo pogosto »v paru« (na primer portugalščina in slovenščina). Tipična rešitev pri tem je uporaba / prevajanje preko vmesnega jezika (običajno angleščine): iz portugalščine v angleščino in nato iz angleščine v slovenščino. To seveda vodi do manj ustreznih rezultatov, saj se napake kopičijo.