Obrada prirodnih jezika

С Википедије, слободне енциклопедије

Obrada prirodnog jezika (OPJ) je oblast veštačke inteligencije i lingvistike koja se bavi proučavanjem problema automatskog proizvođenja i razumevanja prirodnih ljudskih jezika. Sistemi za proizvođenje prirodnog jezika pretvaraju informacije iz računarske baze podataka u ljudski jezik koji prirodno zvuči a sistemi za razumevanje prirodnog jezika pretvaraju primere ljudskog jezika u više formalne predstave sa kojima računarski programi lakše manipulišu.

Zadaci i ograničenja[уреди | уреди извор]

U teoriji, obrada prirodnog jezika je veoma privlačan metod interakcije čoveka i računara. Prvi sistemi poput [SHRDLU-a, jedan od prvih programa koji je napravio Teri Vajngrad (engl. Terry Winograd) i koji je radio u ograničenim ‘svetovima blokova’, program u okviru koga se komandama pomeraju blokovi, sa ograničenim bogatstvom rečnika, funkcionisali su prilično dobro, dovodeći istraživače do preteranog optimizma koji se ubrzo izgubio kada su se sistemi proširili na mnogo realnije situacije sa svim složenostima i dvosmislenostima stvarnog sveta.

Razumevanje prirodnog jezika se neki put naziva problemom celokupne veštačke inteligencije, zato što izgleda da prepoznavanje prirodnog jezika zahteva široko znanje o spoljašnjem svetu i sposobnost da se njime manipuliše. Definicija razumevanja je jedan od glavnih problema u obradi prirodnog jezika.

Konkretni problemi[уреди | уреди извор]

Slede neki primeri sa kojima su se susreli sistemi za razumevanje prirodnog jezika:

  • We gave the monkeys the bananas because they were hungry.
    (Mi smo dali majmunima banane zato što su oni bili gladni.)
  • We gave the monkeys the bananas because they were over-ripe.
    (Mi smo dali majmunima banane zato što su one bile prezrele.)

Ove dve rečenice na engleskom imaju istu gramatičku površinsku strukturu. Međutim, u prvoj rečenici na engleskom jeziku reč they se odnosi na majmune, a u drugoj na banane pa stoga možemo da zaključimo da rečenice ne mogu da se ispravno razumeju bez poznavanja svojstava i ponašanja majmuna i banana.

Niz reči može da se protumači na bezbroj načina. Na primer, niz reči na engleskom: Time flies like an arrow može da se tumači na razne načine:

  • Da se vreme kreće brzo poput strele (u srpskom, vreme leti)
  • Da reč flies ima značenje muve pa da treba da merimo brzinu letećih insekata isto onako kako bismo merili brzinu kretanja strele.
    • (You should) time flies like you would an arrow.
  • Da treba da merimo brzinu letećih insekata isto onako kako bi je strela merila.
    • (Time flies in the same way that an arrow would time them.)
  • Da treba da merimo brzinu onih letećih insekata koji su kao strele.
    • (Time those flies that are like arrows)
  • Da su time-flies vrsta muve i da one vole neku strelu.
    • (time-flies like an arrow)

Engleski jezik predstavlja pravi izazov u ovom pogledu jer ima malo flektivne morfologije uz pomoć koje bi se razlikovale vrste reči.

Engleski jezik i nekoliko drugih jezika ne specificiraju na koju se reč dati pridev odnosi. Na primer, u nizu pretty little girls’ school ne znamo :

  1. Da li je škola mala (little school).
  2. Da li su devojčice male (little girls).
  3. Da li su devojčice lepe (pretty girls).
  4. Da li je škola lepa (pretty school).

Ostali problemi[уреди | уреди извор]

Segmentacija govora[уреди | уреди извор]

U većini govornih jezika, zvuci koji predstavljaju slova u nizu stapaju se, stoga pretvaranje analognog signala u zasebne karaktere može biti veoma težak proces. Takođe, u prirodnom govoru gotovo i da nema pauza između reči u nizu; pri određivanju ovih granica obično treba da se uzmu u obzir semantička i gramatička ograničenja, kao i kontekst.

Segmentacija teksta[уреди | уреди извор]

Neki pisani jezici poput japanskog, kineskog i tajlandskog nemaju jasno izdvojene zasebne reči, pa zato bilo koja značajna analiza rečenice obično zahteva određivanje granica između reči, što nije nimalo trivijalan zadatak.

Razlučivanje dvosmislenosti značenja reči[уреди | уреди извор]

Mnoge reči imaju više od jednog značenja; mi treba da izaberemo ono značenje koje ima najviše smisla u datom kontekstu.

Sintaktička dvosmislenost[уреди | уреди извор]

Gramatika prirodnih jezika je dvosmislena, to jest često postoji više mogućih dijagrama analize za datu rečenicu. Da bi se izabrao onaj koji najviše odgovara obično je neophodna semantička i kontekstualna informacija. Specifične problematične komponente sintaktične dvosmislenosti uključuju razlučivanje nejasnih granica između rečenica.

Nesavršen ili neregularan ulaz[уреди | уреди извор]

Strani ili regionalni akcenat i smetnje u govoru; štamparske ili gramatičke greške, greške optičkog prepoznavanja karaktera u tekstovima.

Ostvarivanje i planovi u govoru[уреди | уреди извор]

Rečenice često ne znače ono što se bukvalno kaže u njima; na primer dobar odgovor na pitanje ‘da li bi mogao da mi dodaš so?’ bio bi da dodaš so; u većini konteksta ‘da’ nije dobar odgovor, mada ‘ne’ je bolji , a ‘bojim se da je ne vidim.’ je još bolji.

Statistička obrada prirodnog jezika[уреди | уреди извор]

Statistička obrada prirodnog jezika koristi stohastičke, probabilističke i statističke metode da bi rešile neke od gore pomenutih teškoća, naročito one koje proizilaze iz toga što su duže rečenice veoma dvosmislene kada se obrađuju sa realističnim gramatikama, pružajuci hiljade ili milione mogućih analiza. Metode razlučivanja dvosmislenosti često uključuju upotrebu korpusa i ‘Markovljeve modele’. Tehnologija za statističku obradu prirodnog jezika dolazi uglavnom iz mašinskog učenja i sakupljanja podataka,a obe su oblasti veštačke inteligencije koje uključuju učenje iz podataka.

Glavni zadaci u obradi prirodnog jezika[уреди | уреди извор]

  • Automatsko rezimiranje
  • Pomoć pri čitanju stranog jezika
  • Pomoć pri pisanju na stranom jeziku
  • Vađenje informacija
  • Prikupljanje informacija
  • Mašinski prevod
  • Proizvođenje prirodnog jezika
  • Optičko prepoznavanje karaktera
  • Odgovaranje na pitanja
  • Prepoznavanje govora
  • Menadžment dijaloga u govoru
  • Pojednostavljivanje teksta
  • Tekst u govoru
  • Impregniranje teksta

Procena obrade prirodnog jezika[уреди | уреди извор]

Cilj procene obrade prirodnog jezika je da se izmeri jedan ili više kvaliteta jednog algoritma ili sistema kako bi se odredilo da li (ili do koje mere) sistem odgovara ciljevima njegovih dizajnera, ili potrebama njegovih korisnika. Mnogo pažnje se obraćalo na istraživanje u oblasti procene obrade prirodnog jezika, zato što definicija kriterijuma za ispravnu procenu predstavlja jedan način da se tačno odredi problem obrade prirodnog jezika, tako da se prevazilazi nejasnoća zadataka koji su definisani samo kao razumevanje jezika ili proizvođenje jezika. Precizan skup kriterijuma za procenu, koji uključuje prevashodno podatke i metriku procene, omogućava da nekoliko timova uporede svoja rešenja za dati problem obrade prirodnog jezika.

Istorijat procene u obradi prirodnog jezika[уреди | уреди извор]

U zavisnosti od procedura procene, tradicionalno se pravi nekoliko razlika u proceni obrade prirodnog jezika.

Unutrašnja-spoljašnja procena[уреди | уреди извор]

Unutrašnja procena uzima u obzir sistem obrade prirodnog jezika izolovano i karakteriše njen rad uglavnom u skladu sa rezultatom ‘zlatnog standarda’, prethodno definisanog od strane procenjivača. Spoljašnja procena, koja se takođe naziva procena u praksi uzima u obzir sistem obrade prirodnog jezika u mnogo složenijem okruženju, ili kao umetnut sistem ili da obavlja tačno određenu funkciju za ljudskog korisnika. Spoljašnji rad sistema se tada karakteriše, u pogledu svoje primene, u skladu sa celokupnim zadatkom kompletnog sistema ili ljudskog korisnika.

Procena crne kutije-staklene kutije[уреди | уреди извор]

Procena crne kutije traži da se pokrene sistem obrade prirodnog jezika na skupu datih podataka i da se izmere neki parametri koji su u vezi sa kvalitetom postupka (brzina, pouzdanost, potrošnja sredstava) i, najvažnije, oni koji su u vezi sa kvalitetom rezultata (na primer: tačnost objašnjenja podataka ili vernost prevoda). Procena staklene kutije promatra dizajn sistema, algoritme koji se primenjuju, lingvistička sredstva koja se koriste (npr. veličina vokabulara) itd. S obzirom na složenost problema obrade prirodnog jezika, često je teško da se predvidi rad samo na osnovu procene staklene kutije,ali ovaj tip procene daje više informacija u vezi sa greškama prilikom analize ili u vezi sa budućim napretkom sistema.

Automatska-manuelna procena[уреди | уреди извор]

U mnogim slučajevima, automatske se procedure mogu definisati da procenjuju sistem obrade prirodnog jezika tako što upoređuju njegov izlaz sa zlatnim ili drugim željenim standardom. Mada cena stvaranja zlatnog standarda može biti veoma visoka, automatska procena može da se ponavlja koliko god je potrebno bez nekih posebnih dodatnih troškova (na iste ulazne podatke). Međutim, za mnoge probleme obrade prirodnog jezika, definicija zlatnog standarda je kompleksan zadatak, i može biti nemoguća kada je saglasnost unutrašnjeg beležnika nedovoljna. Manuelnu procenu izvode ljudi sudije, kojima je naloženo da procene kvalitet sistema, ili najčešće uzorka njegovog izlaza, na osnovu izvesnog broja kriterijuma. Mada možemo da se obratimo ljudima sudijama, zahvaljujući njihovoj kompetentnosti u oblasti lingvistike, za neke zadatke jezičke obrade, takođe postoji poprilična varijacija u njihovim ocenama. Zato se automatska procena ponekad smatra objektivnom, a ljudska se čini više subjektivnom.