Prieš daugybę metų, kai programavau (Taip, buvo toks etapas, buvo! Nesvarbu, kad dabar kompo suinstaliuot nemoku! O tada – programavau!), sugaišau kelis mėnesius, bandydamas padaryti bent jau primityvų Elizos (tokio su žmonėmis bendraujančio boto) ekvivalentą lietuvių kalbai. Ir praktiškai įsitikinau tuo, apie ką iki tol girdėjau tik teoriškai. Ir žinote, koks gavosi vienintelis veiksmingas sakinio analizės būdas, kuriuo remiantis galima būtų sukurti atsakymą? Ogi visiškai kategoriškai nusispjaut į visą gramatiką ir tiesiog naudoti žodynus. Dar daugiau – ar pakiši botui taisyklingus sakinius, ar išvis žodžių kratinį – visvien vienodai supras, kiek besistengtum. Nes visvien ta lietuvių kalba nesiparsina.
Tiesą sakant, net ir generuojant (o ne tik interpretuojant), žodynai tampa svarbesni. Nes net ir sugeneruot nepavyksta viso to makarono, kokį sugebam pasakyti paprasčiausiai kalbėdami. Giliau žvelgiant – problema yra ne ženklų atpažinimo tikslume, o sugebėjime kompleksiškai manipuliuoti prasmėmis, ženklais ir reikšmėmis. Netgi nedidelis semantinio ir pragmatinio aspektų pagerinimas sugeba nemenka dalimi kompensuoti gramatinius nerišlumus. Beje, tą galim pastebėti ir savo sugebėjime suprasti netgi nerišliai kalbančius pašnekovus.
Ant temos užmetė diskusija, kilusi d.g. vklase asmeniniame žurnale.
Rokiškis Rabinovičius rašo jūsų džiaugsmui
Aš esu jūsų numylėtas ir garbinamas žiurkėnas. Mano pagrindinis blogas - Rokiškis Rabinovičius. Galite mane susirasti ir ant kokio Google Plus, kur aš irgi esu Rokiškis Rabinovičius+.
- Web |
- Google+ |
- More Posts (1489)
Ta lietuvių kalba nesiparsina =) Kompiliatorius – programinė įranga, kuri sugeba tam tikra programavimo kalba parašytą programą transliuoti į ekvivalenčią programą kita kalba.
Ir ką tamsta tuo norite pasakyti?
Pirma karta skaitau lietuviskai apie kompiliatorius 🙂
Nedaug tos medžiagos lietuviškos. Transliacijos teorija gan sudėtinga, besigilinančių į ją mažai, tad ir straipsnių trūksta. Pats į rusų kalbą verstus amerikietiškus vadovėlius graužiau, nes per visą SSRS beveik nieks medžiagos apie tai neruošė :-/
Nors… Jei prisimenate senus laikus, buvo toks leidinukas „Infected voice“, platintas internetais iš kažkur iš Ukrainos. Tai ten straipsniukų labai įdomių būdavo šia tema 🙂
Ale vienok, visvien nesupratau, kuo čia tamstai tie kompiliatoriai užkliuvo 🙂
O aš dar kartą užminsiu ant letenos: jei lietuvių kalbai taip trūksta struktūros ar pavyko tuomet tvarkingai išanalizuoti tarkim anglų kalbos sakinius? 🙂
Kalba pati savaime sudėtingas žvėris, todėl vienai ar kitai gramatikai prikaišioti prigimtinį luošumą -- beprasmiška. O žodynai nėra toks jau prastas sprendimas. Kartais genialu tai, kas paprasta 🙂
Aš kadais irgi žaidžiau su sakinių analizėm bei automatinių vertimo sistemų kūrimu. Visai smagu, nors ir donkichotiška 🙂
Apie „ar pavyko anglų kalbai“ -- neabejotinai. Anglų kalbos sakinių analizė kraštutinai paprasta. „Išimtims“ puikiai taikomas atskiras rinkinys taisyklių (beje, ne sakinio gramatikos, o žodžių darybos), tad viskas vėlgi be problemų parsinasi. Tarp kitko, puikiausiai tai demonstruoja būtent ta pati dar bene prieš 40 metų sukurta Eliza.
O apie „prikaišioti vienai ar kitai gramatikai luošumą“ -- drįstu įtarti, kad tamstai nežinomos tokios sąvokos, kaip sintetinė ir analitinė kalba (dėl to ir manote, kad priešstata gramatinei analizei -- luošumas), tad neatsakinėsiu į šitą nesąmonę. Jūs jau nesupykit. Tiesiog žinokit, kad kitoks -- tai dar nereiškia, kad blogas. Tai tiesiog kitoks. Ir jo įvardinimas kitokiu -- tai ne įžeidimas.
Aš esu studijavęs lingvistiką 😉 Ypač su vertimais susijusią.
Dėl luošumo -- gi pats sakai, kad lietuvių kalba neturi gramatikos 🙂 O aš sakau, kad turi kuo puikiausią gramatiką, tik tiek, kad ji kitaip išreikšta (žodžių galūnių kaitymu, linksniais), o ne tarkim prielinksniais kaip anglų kalboje.
Ir būtent -- kitoniškumas dar nereiškia, kad lietuvių kalbos struktūra kažkuom prastesnė ar neapibrėžtinesnė 🙂 Praktiniams sumetimams man kuo puikiausiai užtenka. Nurodai: vą šitą daiktavardį pateik kilmininko linksniu, o va aną -- naudininko. Ir viskas 🙂
Vienareikšmiškai išparsinkite sakinį „sūkury nėrė vėgė“ be žodyno. Vien gramatinėmis priemonėmis. Alaus pastatysiu, jei sugalvosit, kaip tai padaryt.
Ir, jei jau tamsta užsiimate programavimu ir lingvistika, tai dar kartą grąžinu tamstą prie gramatikos pilnatvės. Kaip programuotojas, tamsta glaimai girdėjote apie metateoriją, kurios vienas iš postulatų teigia, kad sistema, kurioje galimi apibrėžimai, neatitinkantys sistemos taisyklių, yra nepilna, t.y., viduje prieštaringa, neveiksni, nepilnavertė, netinkama daugeliui praktinių atvejų.
Taigi, kaip bebūtų liūdna, tenka pripažinti, kad (pilnavertės) gramatikos mes neturim. Vėlgi, stebina mane tik tamstos požiūris -- argi tokia fantastiškai kompleksiška kalba, kuriai net gramatikos nepavyksta sukurti, gali būti pavadinta luoša? Jei ką ir turėtume vadinti luoša, tai tik tą pačią lietuvių kalbos gramatiką. Taigi, kodėl sukeitinėjate sąvokas? 🙂
Na dievaži, anglų kalboje pilna tų pačių išimčių. Tarkim būtojo laiko konstravimas: iš „walk“ nesunku gauti „walked“ remiantis bendrąja taisykle, o iš „know“->“knowed“ jau nepadarysi. Reikia žinoti išimtį -- „knew“.
Kad su lietuvių kalba sunkiau knebinėtis programiniu atžvilgiu, nes sugeneruoja gerokai daugiau formų nei belinksnės kalbos -- taip. Bet lietuvių kalbos gramatika vienareikšmiškai pilna 🙂
O mokslų nauda tokia, kad supranti: užuot išradinėjus dirbtinio lingvistinio intelekto dviratį, verčiau užsiimti kad ir nedidukais, tačiau praktiniais pritaikymais 🙂 Kad ir minėtas vardų/pavardžių linksniavimas, remiantis 12 daiktavardžio linksniuočių (nurodytos gramatikoje). Kuriai linksniuotei priklauso žodis galima nustatyti vien pagal žodžio galūnę.
Kokių dar išimčių, mielasis? Visoms išimtims apsirašo išimtys. Jūs geriau pamėginkit padaryti gramatiką, kuri leistų parsinti 🙂 Pradžiai, identifikuokit tamsta, kokiai linksniuotei priklauso žodis „kvaišo“, kurį, kaip minėjote, atpažinsite iš galūnės 🙂 Ar sakote, tai ne veiksmažodis? 🙂 Tikrai tikrai? 🙂
Pasakymas „sunkiau, knebinėtis“ negarantuoja, kad gramatika pilna. Tarp kitko, įrodyti gramatikos pilnumą -- nelengvas uždavinys, gyvųjų kalbų atveju paremtas tik tuo, kad sudaromas taisyklių rinkinys, atitinkantis visus gyvai suprantamus atvejus.
Suprantu, kad tamstą užgauna mano pasisakymai („kaip aš čia tiek mokinausi nežinia ko, nesąmonė“), bet būkim tiesiog realistais -- vargu ar vertėtų tikėtis, kad refleksyvūs aprašomieji metodai, kuriais paremta mūsų gramatika, duotų analitinius įrankius -- netgi anglų kalbos gramatika tapo pakankamai analitiška, tik Chomskiui sukūrus generatyvinę gramatiką 🙂
Beje, jei dar nenusivylėte, bandydamas identifikuoti linksniuotę veiksmažodžiui „kvaišo“, pabandykit identifikuoti linksniuotę žodžiams „bebrai“ ir „bebre“! 🙂
Verslui bebrų nereikia 🙂 Verslas renka klientų vardus bei pavardes vienaskaitos vardininko linksniu, o iš jų reikia išgauti likusias formas -- labai praktiškas uždavinys, kuris nesunkiai išsisprendžia taikant lietuvių kalbos gramatikos taisykles.
Aš tave lygiai taip pat galiu gaudyti su anglų kalba. Tarkim, „walk“ yra veiksmažodis ar daiktavardis? Be konteksto nepasakysi 🙂
Kaip matau, tamsta nutarėte neatsakinėti 🙂 Teisingas pasirinkimas 🙂
O anglų kalboje žodžio funkciją visada aiškiai apibrėžia jo pozicija, kitaip tariant, tai visada galima nustatyti, remiantis paprastomis gramatinėmis taisyklėmis.
Tarp kitko, konteksto sąvoka labiau taikytina kalbant apie sakinį, tad nevertėtų ja piktnaudžiauti, kalbant apie paskirus žodžius, kurių funkcija apibrėžiama, naudojant žymiai aiškesnius gramatinius metodus.
O apie automatines sistemas -- nežinau, kas ten darė Google vertėjus, ale vambzdec. Puikus pavyzdys, kad gramatinės pastangos neduoda rezultatų. Žodynai gi šiuo atveju -- priemonė, nieko bendra neturinti su gramatikomis.
Tai tik demonstracija, kad belenkaip sumėtę žodžius, gauname tą pačią prasmę. Palyginkite aukščiau esantį sakinį su šiuo: Tik demonstracija, belenkaip tai žodžius sumėtę, gauname tą prasmę pačią. Arba su šiuo: Belenkaip prasmę, žodžius, sumėtę, tą tai tik demonstraciją pačią gauname. Smegenys jau susisuko, ar dar kartot? 🙂
O dabar pabandykite tokius fokusus pademonstruoti angliškai, truputį gal pagausite skirtumų tarp sintezės ir analizės 🙂
O šiaip, pasigirkite, ką sukūrėte.
Aš tai buvau kažkada paleidęs IRC botą, vardu Grožytė. Kad atrodytų įtikinamiau, iš kažkokio porno puslapio suradau jai nuotraukų, kurias įmečiau į kažkokį pažinčių portalą. Grožytė buvo kraštutinai silpnaprotė. Atsakinėdavo randominiais sakiniais iš rinkinio, pagal atpažintus raktinius žodžius. Ale visvien patikėdavo daugelis, esą tai žmogus. Eiles jai rašydavo, į pasimatymus atkakliai kviesdavo. Kažkas netgi tuoktis siūlė. Pinigus siūliusių kadrintojų tarpe buvo netgi kažkoks universiteto (jei atmintis nemeluoja -- VU) dėstytojas.
Tiek širdžių sudaužei.
Tai buvo mokslinis eksperimentas, todėl kažkas turėjo dėl to aukotis.
Ghrmz. Atleiskite už nekorektišką klausimą. Bet visgi, klausiu, kaip Grožytės tėvas, tad manau turįs tokią moralinę teisę. Gal ir tamstai teko susidurti su ja? Tiesą sakant, pažinojau ne vieną žmogų, kuris žinojo, jog tai botas, tačiau tiesiog šiaip bendraudavo kažkodėl.
Kaip suprast? Šito lj jau seniai nenaudoju ir jis private…
Ėėėė… Kas kaip suprast… A, supratau 🙂 Tiesiog šiaip užklydau pas tamstą ir įdomu pasirodė 🙂 Viskas labai paprasta 🙂
Nėra prasmės kritusi_vuki domėtis, nes dabar naudojuosi šiuo username 🙂
Gerai, domėsiuosi jumis dabar 🙂
aš gal neteisingai suprantu žodį gramatika… ar čia kalba tiesiog apie žodžių tvarką sakinyje?
O gal tiesiog neišeina skirtigų dalykų užtempti ant to paties kurpalio? Kam tempti lietuvių kalbą ant angliškojo? Pastarąjai gramatiškai artimesnės yra kinų ir japonų, o ne lietuvių.
Sakykim, gal ne tiek gramatiškai, kiek analitiškumo lygiu.
O! Štai ką reiškia vakare anksti išjungti kompą, o ryte ilgai kuistis. Kokia įdomi disksusija vyksta.
Tamsta Rokiški esi užkietėjęs generatyvistas. Taip, sintetinę kalbą sunku formalizuoti, bet formalizuotas aprašas – ne vienintelis galimas. Lietuvių kalbai, kaip ir kitoms sintetinėms, taikomas tradicinis gramatikos aprašas, kuris yra daugiau negu pakankamas. Paprastas pavyzdys: sen. graikų ir lotynų kalbos. Gyvu pavidalu jos nebeegzistuoja, tai yra jų neišmoksi iš tėvų ar bendraudamas su žmonėmis. Bet kalbos aprašytos, ir iš tų tradicinių aprašų jas galima kuo puikiausiai išmokti. Kai kas gi išmoksta (pagarba tokiems).
Beje, ar nieko, jei čia kartais pasiklausčiau, ką reiškia koks žodis? Pvz, ką reikškia parsiti(s)? Pabandyčiau su tuo „sūkury nėrė vėgė“, bet nesuprantu, ką siūlai su tuo sakiniu daryti.
Nuo angliško žodžio „parse“, t.y. programiniu būdu nuosekliai išanalizuoti duotą tekstą/sakinį/žodį taip, kad kompiuteris išgautus elementus sugebėtų sudėlioti į teisingas prasmines dėžutes.
Rokiškis, kaip suprantu, prikibo prie pernelyg lanksčios lietuvių kalbos žodžių tvarkos (kur objektas, o kur subjektas), nors atsiribojimas nuo žodyno, mano supratimu, beprasmis 🙂 Nes aš tokį uždavinį spręsčiau visų pirma nukreipdamas sakinį į pilnai sugeneruotą visų žodžių formų žodyną (su sužymėtom gramatinėm kiekvieno žodžio funkcijom), gaučiau atgal abstrakčius sakinio struktūrinius rėmus ir tuomet lyginčiau su gramatikos taisyklėm.
T.y. vietoj „Sūkury nėrė vėgėlė“
dirbčiau su
daiktavardis (vietininkas) :: veiksmažodis (būtasis kartinis laikas) :: daiktavardis (vardininkas)
Tuomet būtų nesunku pirmąjį komponentą sukeisti vietomis su trečiuoju -- norint sumažinti variacijų skaičių, tačiau neprarasti prasmės.
Suabstraktinus turinį, uždavinys gerokai supaprastėja.
Taigi, kiek matau, visgi jau imate sutikti, kad sintaksinė analizė yra nepakankama lietuvių kalbai, tiesa? 🙂 Tarp kitko, iš kitos sferos pastebėjimas -- pasakymą „lanksti tvarka“ taiko įmonių bei padalinių vadovai, norintys gražiai apibūdinti savo kontorose esantį chaosą. Pagal tą pasakymą tai ir identifikuojama 🙂
Gerai, tarkim, naudojame žodyną. Taigi, dabar pasakykit, kaip mes, remdamiesi savo galvose esančiais žodynais, išparsiname sakinį „Glokioji kūzdra štėkiai pabudlino bokrą ir kurdinėja bokriuką“? 🙂
O tu man pasakyk kiek procentų tautiečių išvis supras šį sakinį? :))
Mus domina praktiniai kasdieniai tekstai ir jų mašininis suvokimas, o ne įmantrioji kūryba 🙂
O koks skirtumas, kas jį supras, o kas nesupras -- svarbu, kad žmonės jį išparsina, nors žodynuose (ir galvose) tų žodžių nėra. Tai reiškia, kad parsinimas puikiai vyksta, nenaudojant žodyno. Bet kaip?
Taip. Aš žiūriu į kalbą analitiniu požiūriu. Ir manau, kad formalizuotas aprašas -- ne tik vienintelis galimas, bet ir vienintelis, kokį išvis galime pavadinti aprašu. Vėlgi, graikų ir romėnų kalbų mokymas yra paremtas tradicija. Tad jei jau lygintume formalių taisyklių būtinybę, geriau pasirinkime pavyzdžiu kalbą, kurios mokymo tradicija tikrai neišlikusi, pvz., senovės asirų (juk turime daugybę dantiraščio pavyzdžių).
O parsinti -- kaip Versmės jau pastebėjo -- tai reiškia pilną sakinio analizę, išskaidant jį į elementus pagal žodžių atliekamas funkcijas.
Dėl parsinti -- taip, galėjau susiprotėti, kad iš angliško žodžio, ir pasižiūrėti, ką jis reiškia.
Glokioji kūzdra štėkiai pabudlino bokrą ir kurdinėja bokriuką.
Gramatiškai taisyklingas sakinys.
Kūzdra -- veiksnys, glokioji -- pažyminys (įvardžiuotinis būdvardis), pabudlino ir kurdinėja -- vienarūšiai tariniai (tranzityviniai veiksmažodžiai), štėkiai -- prieveiksmis, bokrą ir bokriuką -- vienarūšiai papildiniai.
„Mokymo tradicija“. O tai kaip ta tradicija perduodama, jei ne taisyklėmis ir išimtimis iš taisyklių?
Formalizuotas aprašas idealiai tinka tik vienai kalbai -- esperanto, kurioje nėra nė vienos išimties ar nukrypimo nuo sugalvotos sistemos. Tarp natūralių kalbų tokių nėra.
Anglų, kiniečių kalbos -- gali lygintis savo taisyklių rinkiniais su esperanto.
O dėl glokiosios kūzdros -- puikiai tikiu, kad tamsta jį kažkaip išparsinote, bet parašėte tiktai parsinimo rezultatą. Turėjau omeny, kad išparsintumėt formaliai -- t.y., pateiktumėt taisykles, pagal kurias atpažįstate, jog „kūzdra“ yra veiksnys, o „glokioji“ -- pažyminys ir t.t. 🙂
O apie mokymo tradiciją -- pasikartosiu: ar galime teigti, kad kažkas iš mokslininkų kalba senovės egiptiečių ar senovės asirų kalba? Apie lotynų kalbą esu girdėjęs įdomų anekdotą -- esą kažkas iš katalikų kunigų, išgirdęs, kaip lotyniškai kalba kažkokioj anglų mokykloj ruošti mokiniai, baisiai pakraupo -- anie tarė lotyniškus žodžius taip, lyg jie būtų užrašyti angliškai 🙂 Ir įdomu, ar kas nors įstengtų atkurti hebrajų, praleidžiančių balses, tarimą? Noriu pasakyti, kad gyvoji tradicija neretai perduoda tokius dalykus, apie kuriuos niekas nei neįtaria 🙂 Kažkurie gramatikos elementai irgi panašiai persiduoda 🙂
Kitą pavyzdį galiu jums papasakoti apie tai, jog norint rašytinį tekstą paversti kalbamu, reikia milžiniško kiekio tarimo taisyklių -- nors nuo mokyklos laikų mes galvojame, jog raidės atitinka garsus, pasirodo, jog išties tų garsų atitiktis yra vos ne kaip devintas vanduo nuo kisieliaus 🙂 Visgi, būdami žmonėmis, kažkaip sugebame tas atitiktis sugeneruoti, nors kompiuteriams prireikia gan sudėtingais algoritmais paremtos transliacijos į tekstą, užrašytą visai kitu, daugiau, nei 100 simbolių turinčiu raidynu.
oho. aš sukrėstas, nustebintas, sužavėtas.
😉
neapsirikau, kažkada pradėjęs rašyti būtent LJ.
Alternatyvios pozicijos turi būti atstovaujamos. Tikiuosi, dar ne tokių dyvų išvysite.
🙂