Hizkuntza baten tratamendu automatikoan, lehenengo urratsa hitzen osaera morfologikoa aztertzea izan ohi da, hau da, hitz bat osatzen duten osagai morfologikoak bereiztea eta, era berean, osagai horiek bata bestearekin lotzeko arauak definitzea.
Horretarako, lehenik eta behin hitz kontzeptuak ikuspegi konputazionalean hartzen duen zentzua argitu behar dugu. Hitza, zuriunetik zuriunerako karaktere-segida da, eta esaldia zuriunez bereizitako hitzez osatuta dago (Fontenelle et al., 1994).
Hizkuntza guztiak ez dira morfologia-eredu berekoak: zenbaitzuk morfologia sinpleagokoak dira, eta beste batzuk konplexuagokoak (mendietakoa vs the one in the mountains). Ingelesez, esaterako, mountain lema mountain eta mountains hitz bezala (singularra eta plurala adieraziz, alegia) ager daiteke bakarrik; euskaraz, berriz, mendi lemak mendia, mendiak, mendietan, mendietakoa eta ehundik gorako hitz-forma osa ditzake. Horrela izanik, ingelesezko lexikoi konputazional bat osatzeko, ez da hainbesteko lana mountain eta mountains hitzei sarrera ematea; hots, aparteko bi hitz lantzea. Aldiz, hori pentsaezina da euskara moduko hizkuntzetarako. Lemaren eta atzizkien arteko konbinazio guztiak kontuan izanez gero, lema bakoitzeko sarrera kopuru oso handia beharko genuke.
Morfologiarekin lotutako oinarrizko kontzeptuak kontsulta ditzakezu aurrera jarraitu baino lehen.
Hizkuntza baten tratamendu automatikoan, lehenengo urratsa hitzen osaera morfologikoa aztertzea izan ohi da. Morfologian oinarritutako oinarrizko tresna analizatzaile morfologikoa izaten da, hau da, hitz bat emanda dagokion analisia (edo analisiak) lortzen d(it)uena. Hitza morfologikoki anbiguoa ez bada analisi bakarra itzuliko du, baina anbiguoa bada bat baino gehiago. Adibidez, handien hitzaren analisia bikoitza da atzizkia graduatzaile edo genitibo gisa interpreta baitaiteke:
Bestalde, analisiak itzultzen duen informazioa sinplea edo konplexua izan daiteke. Sinpleena lema hutsa itzultzea litzateke, adibidean dagoenak tarteko konplexutasuna eskaintzen du, baina are konplexuagoa izan daiteke bestelako informazio sintaktikoa zein semantikoa nahiko bagenu. Analisi morfologikoa oinarrizko tresna da hizkuntzaren prozesaketan eta, bere horretan oso erabilgarria ez bada ere, hainbat aplikazioren oinarri da: xuxen bezalako ortografia-zuzentzaile edo elebila bezalako bilatzailetik itzulpen automatikoko sistemetaraino.
Analisiaz gain sorkuntza ere interesgarria da. Sorkuntzan analisiaren kontrakoa gertatzen da: lema eta dagozkien morfemak bilduz, programak hitza osatzen du. Erregela bidezko itzulpen automatikoan tresna hau beharrezkoa da helburu-hizkuntzaren hitzak sortzeko analisia eta transferentzia egin ondoren. Lortuko genukeena analisiaren alderantzizkoa litzateke, hau da, analisitik abiatuta jatorrizko forma. Aurreko adibidearen kasuan:
Analisi morfologikoa egin gabe hitzetik lema lortzen duten tresnak ere oso erabilgarriak dira. Sinpleagoak dira eta stemmer izen ingelesarekin ezagutzen dira. Sasi-lematizatzaileak dei diezaiekegu. Orokorrean tresna hauek atzizkiak baino ez dituzte ezagutzen eta hitzen bukaeran atzizkiak kentzen saiatzen dira (sasi)lema lortu arte.
Funtzio osagarri garrantzitsu bat behar izaten da analizatzaile morfologikoaren edo sasi-lematizatzailearen osagarri gisa: hitz-banatzailea edo tokenizatzailea.
Bestalde, analizatzaile morfologikoaren irteera anbiguoa izan daiteke, analisi posible guztiak eskaintzen baititu, baina aplikazio askotarako anbiguotasun hori ebatzi egin behar da. Horretarako desanbiguatzaile morfosintaktiko edo etiketatzaile (tagger ingelesez) deitzen den tresna sortzen da.
Horrez gain, hitz anitzeko terminoak eta espresioak geratzen dira morfologiaren eta sintaxiaren arteko mugan. Tratamendua datu-base batean oinarritzen bada morfologiatik gertuago izango da, baina konbinaketa irekia bada sintaxi aldera joko da. Tartean dago daten eta zenbakien analisia.
Deskribapen morfologiko formal bat egitean komenigarria da bi fenomeno bereiztea: morfotaktika eta morfofonologia.
Osagaien arteko loturak bideratzeko murriztapenak adierazi ohi dira, eta hori morfotaktika edo hitzaren gramatika deskribatuz egiten da; alegia, zer har dezake atzetik aurrizki, lema edo morfema batek, hori da hitzaren gramatikak esan behar duena. Morfotaktikak elkarren segidan dauden morfemen funtzioa bideratzen du, eta horretarako jarraitze-klaseak baliatzen ditu, hauek zehazten baitute lema edo morfema batek atzetik har dezakeen guztia, eta hori bakarrik: lema batek ondoren har ditzakeen atzizkiak, atzizki batek atzetik har ditzakeen beste atzizkiak, edo aurrizki batek har ditzakeen lemak. Azkenean, jarraitze-klasea bera azpilexiko multzo bat da, aurreko guztia definitua duena. Adibide batekin esateko, izen arruntak atzetik muga(gabe)tasuna eta deklinabidea hartuko ditu (etxe+a+k), inoiz ez gradua (*etxe+ago) edo menderagailu bat (*etxe+la). Adjektiboak, aldiz, gradua har dezake muga(gabe)tasunaren eta deklinabidearen aurretik (txiki+ago), baina ez derrigor (txiki).
Deskribatu dugun morfemen kateatze sinplea kasurik arruntena bada ere, badaude formalismo ahaltsuagoak eskatzen dituzten fenomenoak, erro-patroietan oinarritutako fenomenoak, adibidez, hizkuntza semitikoetan gertatzen direnak. Konplexutasunaren aldetik tartean egongo liratekeen beste fenomenoak ere aipa daitezke: artizkien bidezko lotura, morfema-bikoizketa, etab.
Inguruko hizkuntzetan ere, kateatze hutsa ez den urruneko mendekotasuna izeneko fenomenoa dugu, morfema ez-jarraituen arteko baldintzak gerta baitaitezke. Adibidez, ingelesez en-, joy eta -able morfemak elkarren segidan joan badaitezke ere, joy eta -able bakarrik ezin dira lotu (*joyable ezin da erabili ingelesez). Alegia, en- aurrizkiak -able atzizkiaren erabilera baldintzatzen du, edo, beste era batera esanda, en- eta -able artean urruneko mendekotasuna dago. Euskaraz ere antzera gertatzen da bait- aurrizkia, aditz jokatua eta -lako atzizkiaren artean. Aurrizkiaren atzean aditz jokatua joan daiteke (baikara), eta aditz jokatuaren atzetik atzizkia (garelako), baina inola ere ez hirurak batera (*baikarelako).
Aldaketa fonologikoak morfemak biltzean gertatzen diren aldaketak dira. Fonologiak zuzenean eragindakoak izan daitezke batzuetan (azaleko arrazoiei bakarrik erantzuten dietenak, erregular bezain sistematikoak, epentesiak, adibidez; euskaraz eta suomieraz arruntak dira halakoak), ortografiak berak ere eragin ditzake (ingelesez, esaterako), eta morfologikoak ere aurki ditzakegu (gramatikalki baldintzatuak dira hauek eta ez dira sistematikoak; euskaraz baditugu halako batzuk); horrexegatik, morfofonologikoak ere deituko ditugu, bibliografian aurreko izenez gain morfografemika ere agertu arren. Aldaketa hauen kopurua eta horiek gertatzeko baldintzak arras desberdinak dira hizkuntzen arabera. Aldaketa morfofonologikoen adibideak dira:
Fenomeno honen aurrean, analisi morfologikoa egiterakoan, sistema batzuetan alomorfoak erabiltzen dira, hau da, morfema bera adierazteko forma bat baino gehiago zehazten dira lexikoan. Adibidez, euskarazko hau erakusleak hau segida kasu absolutiboan bakarrik mantentzen du, beste kasu guztiak hon segidan oinarrituta osatzen dira (honek, honen, honekin, etab.). Hiztegian, beraz, hon alomorfoa jasoko da hau lemarekin batera. Aldaketa fonologiko konplexuaren adibide gisa, hizkuntza batzuetan gertatzen den bokal-harmoniaren fenomenoa dugu: puntu batean gertatzen den bokal baten aldaketak ondoko edo aurreko bokal guztien aldaketa eragin dezake. Kasu gehienetan, baina, aldaketa horiek lokalak dira, morfema-mugan gertatzen dira-eta.
Konputagailuarentzat morfologia erraz deskribatzeko orduan ez dira ohiko programazio-lengoaiak erabiltzen; morfologiari egokitutako lengoaiak edo formalismoak baliatzen dira, hau da, aurredefinitutako formalismo baten araberako deskribapen linguistikora jotzen da. Formalismo horiek interpretatzeko programak dira analisia edota sorkuntza bideratzen dituzten tresnak.
Analizatzaile/sortzaile morfologiko baten kalitatea ebaluatzeko garaian hainbat irizpide hartu behar dira kontuan: estaldura, doitasuna, gainsorkuntza eta eraginkortasuna.
Formalismo morfologikoen artean arrakasta handiena izan duena 1983an Koskenniemik definitutako bi mailatako morfologia da. Egoera finituetako morfologiari bultzada handia eman zion eredu honek harrera bikaina jaso du ondoko urteetan, besteak beste, dituen ezaugarri hauengatik:
Aurreko ezaugarriak kontuan hartuz, esan daiteke sistemaren konputazio-konplexutasuna ez dela altua eta, ondorioz, makina txikietan sistema errealak ezartzea bideratzen duela. Ikerketaren ondorioz erregela paraleloen bilakaera gertatu da ordezkapen-erregela sekuentzialetara igaroz, kontzeptualki sinpleenak direnak baina arretaz ordenatu behar direnak. Erregela hauek izango dira beheko adibideetan erabiliko direnak.
Xerox laborategietan egindako ikerketan oinarrituta erregela paraleloak ordezkapen-erregela sekuentzialen bidez ordezkatu ahal izan ziren eta diakritikoen erabilera saihestu edo gutxiagotu. Lexiko-itzultzaileak terminoa landu zen eta horrekin lotuta konpiladore eraginkorrak.
Euskarari eta hizkuntza askori (biblio) arrakasta handiz aplikatu zaio. Xerox, Lingsoft eta beste hainbat enpresak merkaturatu dituzte formalismo hauetan oinarritutako tresnak eta aplikazioak.
Morfologia prozesatzeko hamaika programa sortu dira formalismo desberdinetan oinarrituta eta hizkuntza anitzetarako. Gehien interesatzen zaizkigun programak deskribapen berrietara egokitutakoak dira, hau da, deskripzio morfologikoa egiteko aukera eman eta programatu gabe analizatzailea/sortzailea lortzen dutenak. Tresna hauei batzuetan konpiladore esaten zaie eta gure ustez lau interesgarrienak hauexek dira: PC-Kimmo, hunspell, Xerox-toolkit eta foma.
Ondoren foma tresnaren bidezko euskararen deskribapen didaktiko bat azaltzen da. Ez da deskribapen osoa, konplexuegia bailitzateke horrelakorik hemen egitea.
Deskribapena bi multzotan banatzen da: morfemen biltegia eta morfotaktikaren deskribapena den lexikoa batetik, eta aldaketa morfofonologikoak adierazten dituen erregela-multzoa bestetik.
Beheko kodean deskribatzen da euskararen multzo txiki baten lexikoa eta morfotaktika. Honako ohar hauek hartu behar dira kontuan interpretatzeko orduan:
Multichar_Symbols [IZE] [LIB] [IZB] [ADJ] [ADI] +Abs +Erg +Gen +Gel +Konp +Sup +Gehi +Sng +Plu +Mgb +Buru +Ezbu +Gero +Nom +Knpl +Kaus +Erlt +Bald LEXICON Root IZENAK; LEKU_IZENAK; PERTS_IZENAK; ADJEKTIBOAK; ADITZAK; ADITZ_LAG; ADITZ_AUR; ADLAG_AUR; LEXICON IZEN_JK DEKLINAB; LEXICON IZEN_JK2 #; DEKLINAB; LEXICON IZB_JK DEKLINAB2; LEXICON LIB_JK DEKLINAB3; LEXICON ADJ_JK GRADUA; DEKLINAB; LEXICON GERO_JK GERO; LEXICON IZENAK ate[IZE]:ate IZEN_JK; etxe[IZE]:etxe IZEN_JK; ur[IZE]:ur IZEN_JK; hur[IZE]:huR IZEN_JK; zakur[IZE]:zakuR IZEN_JK; ama[IZE]:amA IZEN_JK; zakur[IZE]:zakuR IZEN_JK; LEXICON LEKU_IZENAK usurbil[LIB]:usurbil1 LIB_JK; irun[LIB]:irun1 LIB_JK; gasteiz[LIB]:gasteiz1 LIB_JK; tolosa[LIB]:tolosA1 LIB_JK; LEXICON PERTS_IZENAK maddi[IZB]:maddi IZB_JK; kepa[IZB]:kepA IZB_JK; itziar[IZB]:itziaR IZB_JK; LEXICON ADJEKTIBOAK gorri[ADJ]:gorri ADJ_JK; mozkor[ADJ]:mozkoR ADJ_JK; #deklinabide arrunta LEXICON DEKLINAB +Abs+Mgb:0 #; +Abs+Sng:+a #; +Abs+Plu:+ak #; +Erg+Mgb:+Ek #; +Erg+Sng:+ak #; +Erg+Plu:+ek #; +Ine+Mgb:+Etan #; +Ine+Sng:+Ean #; +Ine+Plu:+etan #; +Gen+Mgb:+Qen IZEN_JK2; +Gen+Sng:+aren IZEN_JK2; +Gen+Plu:+en IZEN_JK2; +Gel+Mgb:+Etako IZEN_JK2; +Gel+Sng:+Eko IZEN_JK2; +Gel+Plu:+etako IZEN_JK2; #pertsona-izenen deklinabidea LEXICON DEKLINAB2 +Abs+Sng:0 #; +Erg+Sng:+Ek #; +Erg+Plu:+ek #; +Gen+Sng:+Qen DEKLINAB; #leku-izenen deklinabidea LEXICON DEKLINAB3 +Abs+Sng:0 #; +Erg+Sng:+Ek #; +Ine+Sng:+En #; +Gen+Sng:+Qen DEKLINAB; +Gel+Sng:+Eko DEKLINAB; LEXICON GRADUA +Konp:+ago DEKLINAB; +Sup:+en DEKLINAB; +Gehi:+egi DEKLINAB; LEXICON ADITZ_AUR ber[AUR]+:beR+ ADITZAK; LEXICON ADLAG_AUR Kaus+:bait+ ADITZ_LAG; Bald+:ba+ ADITZ_LAG; LEXICON ADITZAK egin[ADI]:egiN ADITZA_ATZIZKIAK1; hasi[ADI]:has ADITZA_ATZIZKIAK2; ikuzi[ADI]:ikuz ADITZA_ATZIZKIAK2; erakutsi[ADI]:erakuts ADITZA_ATZIZKIAK2; utzi[ADI]:utz ADITZA_ATZIZKIAK2; ekarri[ADI]:ekaR ADITZA_ATZIZKIAK3; ibili[ADI]:ibil ADITZA_ATZIZKIAK3; ipini[ADI]:ipin ADITZA_ATZIZKIAK3; erabaki[ADI]:erabaki ADITZA_ATZIZKIAK4; jalgi[ADI]:jalgi ADITZA_ATZIZKIAK4; nekatu[ADI]:neka ADITZA_ATZIZKIAK5; findu[ADI]:fin ADITZA_ATZIZKIAK5; saldu[ADI]:sal ADITZA_ATZIZKIAK5; aberastu[ADI]:aberats ADITZA_ATZIZKIAK6; hoztu[ADI]:hotz ADITZA_ATZIZKIAK6; batu[ADI]:bat ADITZA_ATZIZKIAK5; lotu[ADI]:lot ADITZA_ATZIZKIAK5; bota[ADI]:bota ADITZA_ATZIZKIAK4; bete[ADI]:bete ADITZA_ATZIZKIAK4; eraso[ADI]:eraso ADITZA_ATZIZKIAK4; hil[ADI]:hil ADITZA_ATZIZKIAK4; # aditz-erroen flexio desberdinak lexikoan ebatzi dira # eta ez erregela fonologikoez LEXICON ADITZA_ATZIZKIAK1 +Buru:0 GERO_JK; +Ezbu:+ten #; +Nom[IZE]:+te DEKLINAB; #; LEXICON ADITZA_ATZIZKIAK2 +Buru:+i GERO_JK; +Ezbu:+ten #; +Nom[IZE]:+te DEKLINAB; #; LEXICON ADITZA_ATZIZKIAK3 +Buru:+i GERO_JK; +Ezbu:+tzen #; +Nom[IZE]:+tze DEKLINAB; #; LEXICON ADITZA_ATZIZKIAK4 +Buru:0 GERO_JK; +Ezbu:+tzen #; +Nom[IZE]:+tze DEKLINAB; #; LEXICON ADITZA_ATZIZKIAK5 +Buru:+tu GERO_JK; +Ezbu:+tzen #; +Nom[IZE]:+tze DEKLINAB; #; LEXICON ADITZA_ATZIZKIAK6 +Buru:+tu GERO_JK; +Ezbu:+ten #; +Nom[IZE]:+te DEKLINAB; #; LEXICON GERO_JK +Gero:+ko #; #; LEXICON ADITZ_LAG izan+A1+P3:d@ LAG_ATZ; izan+A1+P1:naiz LAG_ATZ; edun+A1+P3:du LAG_ATZ; edun+A1+P1:dut LAG_ATZ; edun+A1+P3P3P3:dio LAG_ATZ; edun+A1+P3P3P1:diot LAG_ATZ; LEXICON LAG_ATZ +Knpl:+Ela #; +Kaus:+Elako #; +Erlt:+En #; +Erlt+Nom[IZE]:+En DEKLINAB; #;
Beheko kodean deskribatzen dira euskararen aldaketa morfofonologiko garrantzitsuenak. Ohar hauek hartu behar dira kontuan interpretatzeko orduan:
########################################## # Definizioak ########################################## #Bokalak define Bokal a | e | i | o | u | E | A | %@ ; define BokalHuts a | e | i | o | u ; # Kontsonanteak define Konts b | c | d | f | g | h | j | k | l | m | n | 8 | p | q | r | s | t | v | x | w | z | N | R ; #Txistukariak define Txis z | s | x ; #Sudurkariak define AlboSud l | m | n ; #Morfema-muga define MM %++ ; # bat edo gehiago ########################################## # Erregelak ########################################## #### T #R1# define T0 t -> 0 || _ (Txis) MM t ; # lot+tu:lotu (R1) # erakuts+te+a:erakustea (R1) #R2# define TD t -> d || AlboSud MM _ u MorfBuk ; # sal+tu:saldu (R2) #### bait aurrizkia #R3# define BAIT1 d -> 0 || .#. b a i t MM _ ; # bait+da:baita (R3) #R4# define BAIT2 g -> k || .#. b a i t MM _ ; # bait+gara:bait+kara:baikara (R4,R5) #R5# define BAIT3 t -> 0 || .#. b a i _ MM [ AlboSud | k ] ; # bait+naiz:bainaiz (R5) # bait+lezake:bailezake (R5) # bait+gara:bait+kara:baikara (R4,R5) #R6# define BAIT BAIT1 .o. BAIT2 .o. BAIT3 ; #### lehen pertsona aditz laguntzailerako #R7# define TDA t -> d a || _ MM KonpErl ; # dut+Ela:duda+Ela:dudala (R7,R22) # dute+Ela:dutela (R21) #### ber aurrizkia #R8# define H0 h -> 0 || # b e R MM _ Bokal ; # beR+has+i:beR+as+i:berrasi (R8,R10) #R9# define EI e -> i || # b _ R MM Konts ; # beR+lot+tu:beR+lo+tu:biR+lo+tu (R1,R9,R11) # beR+erakuts+i:berrerakutsi (R10) ##### R gogorra #R10# define R2 R -> r r || _ MM (Q) Bokal ; # zakuR+a:zakurra (R10) # itziaR+Qen:itziarr+Qen:itziarren (R10,R12) #R11# define RR R -> r ; # ekaR+tzen:ekartzen (R11) ##### r (Q) epentetikoa atzizkietan #R12# define Q0 Q -> 0 || Konts MM _ ; #ur+Qen:uren (R12) #R13# define QR Q -> r ; # amA+Qen:amA+ren:amaren (R13,R16) ##### A bukaera (bukaera markatuen kasuan) #R14# define A0 A -> 0 || _ MM BokalHuts ; # amA+en:amen (R14) #R15# define ABI0 %@ -> 0 || _ MM E ; # d@+En:d+En:den (R15,R21) # d@+Elako:d+Elako:delako (R15,R21) #R16# define AA A -> a ; # amA:ama (R16) #R17# define AA2 %@ -> a ; # d@:da (R17) ##### k:g #R18# define KG k -> g || N MM _ o .#. ; #egiN+ko:egiN+go:egingo (R18,R24) #sal+tu+ko:salduko (R2) #R19, hautazko erregela toki-izenetarako define KG2 E k (->) g || AlboSud 1 MM _ o ; #usurbil1+Eko:usurbil1+go:usurbilgo (R19, R20) ##### Leku-izenak (1 marka dute bukaeran) #R20# define BAT0 1 -> 0 ; #usurbil1+Eko:usurbileko (R19,R20) #irun1+Eko:irun1+go:irungo (R19, R20) #orio1+Eko:orioko (R20,R22) ##### e epentetikoa #R21# define EE E -> e || [ Konts | E ] MM _ ; #zakuR+Eko:zakurr+Eko:zakurreko (R10,R21) #duE+Ela:duE+ela:duela (R21,R22) #ur+Etako:uretako (R21) #uR+Etako:urr+Etako:urretako (R10,R21) #R22# define E0 E -> 0 ; #ate+Etako:atetako (R22) ##### n aukeran #R23# define N0 N -> 0 || _ MM t ; #egiN+te:egite (R23) #R24# define NN N -> n ; # egiN+ko:egiN+go:egingo (R18,R24) ##### Morfema-muga #R25# define PLUS %+ -> 0 ; #morfema-mugaren marka kentzen da bukaeran ########################################## # Konposaketa ########################################## # erregela sekuentzialak konposatu modu ordenatuan (ezkerretik eskuinera) define RULES T0 .o. TD .o. BAIT .o. TDA .o. H0 .o. EI .o. R2 .o. RR .o. Q0 .o. QR .o. A0 .o. ABI0 .o. AA .o. AA2 .o. KG .o. KG2 .o. BAT0 .o. EE .o. E0 .o. N0 .o. NN .o. PLUS ;
Aurrekoa probatzeko, lexikoa eta erregelak fitxategi banatan jarri eta erregelen fitxategiaren bukaeran lerro hauek gehi daitezke:
# lexikoa barneratu read lexc lex_eu.txt define LEX #morfologia konposatu (lexikoa eta erregelak) define MORFO LEX .o. RULES ; #memorian kargatu regex MORFO ; #probak egiteko up erabiliko da analisirako eta down sorkuntzarako #diodan analizatzeko foma[1]: up diodan edun[ADL][A1][P3][P3][P1]+[Erlt][Nom][IZE]+[Abs][Mgb] edun[ADL][A1][P3][P3][P1]+[Erlt] #diodan sortzeko foma[1]: down edun[ADL][A1][P3][P3][P1]+[Erlt] diodan
lanaren aipamena nola egin...