La paĝo priskribas miajn spertojn pri programado de programo "esperantilo". Mi ne estas lingvisto sed programisto, tial la vidpunkto estas alia kiel lingvista vidpunkto. Multe de fenomenoj devas esti konata por spertaj esperantistoj. La teksto ne havas nun la necesan kvaliton, sed mi volas ĝin iom post iom plibonigi.

Vortfarado - Morfologio

Mi programis en "Esperantilo" vortarajn kaj gramatikajn korektadon kaj okupis multe pri esperanta morfologio kaj analizis grandajn tekstarojn por kompletigi vortlistojn aŭ testi la programon. La ideo estis ankaŭ rekoni nekonatajn vortojn kiel eblaj derivaĵoj kaj eĉ aŭtomate lerni novajn derivaĵojn. Mi komencis la programon per la plej simplaj metodoj kaj poste mi devis uzi pli kaj pli komplikajn metodojn por ekhavi la bonajn rezultatojn.

Sufiksoj kiel finparto de radiko

La unua ideo estas analizi la vorton de komenco kaj de fino kaj fortranĉi la sufiksoj kaj prefiksoj. Tio ne funkcias, ĉar ekzistas multaj de radikoj kiu enhavas sufiksojn, kiel normalan parton sen sufiksa signifo.
  krokodilo - krokod-ilo
  monato - adjektiva participo - mon-at-o

Aŭtomata rekonigo de derivaĵoj

En la unua eldono mia vortaro enhavis 19000 derivaĵojn. Tiu nombro estis tro malgranda por sukcese analizi tekstarojn (nur 40% de frazoj povis esti plene rekonata). Sed la programo kalkulis 70% de tiuj vortoj al eblaj derivaĵoj. Mi pensis pri aŭtomata lernado de derivaĵoj el esperanto tekstaro, sed feliĉe mi unue ekzakte rigardis la kalkulitaj proponataj derivaĵoj. Multe de ilin estis malkorektaj.
Ekzemploj:
  galopi -> gal-op-i
  dumonata - du-mon-at-a
Mi devis havi la ilon por diversigi malkorektaj derivaĵoj de tre eblaj derivaĵoj. Mi rimarkis, ke multe de derivaĵoj oni povas kalkuli preskaŭ aŭtomate aŭ la probablokalkulo per certaj derivaĵoj estas tiel alta, ke ili povas esti akceptita sen duboj.
Ekzemple:
a -> i -> igi. Adjektivo al Verbo
o -> ego -> eto 
i -> adi -> ado
i -> ebla (por transitivaj verboj)
o -> -hav-a

Ankaŭ por prefiksoj
a -> mal-a
a -> ne-a
o -> sen-a
Ekzistas ankaŭ evidentaj ekzemploj, ke ne ĉiu vojo eblas
mon-o , mon-e pagi, mon-a puno, mon-i ?
En la programo mi neniam kalkulis la derivaĵojn aŭtomate. Mi uzis la tekstaron por havigi nekonatajn derivaĵojn kaj poste akceptis aŭtomate nur derivaĵojn, se la farado ŝajnis logika laŭ la supre priskribitaj reguloj. La reston mi devis akcepti mane, sed la programo kalkulas eblajn vortfaradojn.

Participoj kiel memstaraj derivaĵoj

Participoj devenas de verboj sed aspektas kaj funkcias kiel substantivoj, adjektivoj aŭ adverboj. Mi decidis, ke mi ne konservu participojn, sed aŭtomate kalkuli eblajn participojn el basa verba formo. Poste mi rimarkis, ke kelkaj participoj kiel verboj estas tre malofte (eĉ neniam) uzata kaj sonas strange.
artefarita -> art-e-far-i ?
tielnomata -> tiel-nom-i ?
La afero eĉ plimalfaciligas, se oni volas konstrui multlingvan vortaron, ĉar tradukoj ekzistas ofte nur por participo. Ankaŭ en aliaj lingvoj la vortfarado de substantivaj participoj ne estas tiel evidenta kiel en esperanto kaj konservado de tradukoj estas necesa.

Danĝeraj radikoj

Malfeliĉe por literumado, preskaŭ "ĉiu sekvo" de literoj, povas esti korekta aŭ ebla esperanta vorto. La problemo ĉu la litersekvo estas vorto aŭ nevorto ne estas evidenta. Ĉar la vortfarado en esperanto ne havas limojn, eblas multege. Mi limigis tiujn eblojn por praktikaj kialoj. La vortfarada modelo estas simpla (?prefikso?-?rad1?[o]-rad2-?suf1?-?suf?-finilo). Sed tiu ne sufiĉas. Problemojn faras tre mallongaj radikoj, kiu ne havas grandan statistikan signifon. Ĉar en esperanto sufiksoj estas memstaraj radikoj, eblas tre strangaj sed mallongaj ŝajne korektaj vortoj. "op-i, on-el-a , al-eg-i, dis-obl-i, unu-obl-a". Mi frontis la problemon, tiamaniere ke la programo ne akceptis nekonatajn derivaĵojn faritaj nur de sufiksoj. Tiuj vortoj estas markita kiel malkorektaj (ne eblaj). Mi esperas, ke plejparto de tiaj vortaj estas ĵus konata en la programo. La ne solvita problemo estas ankaŭ maloftaj kaj mallongaj radikoj. "ril-o (vestaĵo), gal-o (fluaĵo)". La lasta radiko kaŭzis, ke nekonata vorto "galopi" estas rekonata kiel "gal-op-i". La solvo povas esti marki maloftaj radikoj kaj sufiksoj "-op, -obl" post la statistika analizo de granda tekstokorpuso.

komplika vortfarado

La simpla modelo (?prefikso?-?rad1?[o]-rad2-?suf1?-?suf?-gram-finilo) por vortfarado ricevis rapide sian limon. Jen la problemoj: Mi decidis ne plivastigi la programon ankaŭ por akcepti ĉiujn tiaj eblaj derivoj. La programo devas esti simpla kaj samtempa rapida. Due mi timis, ke plivastigo de morfema parto de programo kaŭzis, ke plejparto de malkorektaj vortoj estus rekonataj kiel eblaj derivaĵoj. Mi plivastigis la analizon de ebleco ke inter la radikoj povas esti ankaŭ sufiksoj kaj prefikson, sed nur tiuj kiu ekzistas en aliaj konatoj derivaĵoj.
   derivaĵoj "urbo" kaj "pristribo" estas konataj.
   "urbpriskribo" aŭ "urbopriskribo" estus rekonataj kiel eblaj derivaĵoj.
Mi konstruis specialajn sufiksojn de aliaj sufiksoj, kiu estas ofte parto de sufiksa grupo (ar-an ist-in an-in ul-in em-ul). Aliaj komplikaj derivaĵoj devas esti enskribita en la programvortaro mane.

Landonomoj - "io"

Landonomoj kaŭzis kelkajn problemojn. Unue la nomoj ne estas unuecaj, due ŝajnas, ke ekzistas nova neoficiala sufikso "i". Ekzemple en: "Danio, Ĉinio, Francio" sed "dana, ĉina, franca". Mia programo ne konis unue la sufikson "i", sed tiuokaze multaj landonomoj ne povis esti rekonata. La unu solvo por la problemo estu difini du radikojn (helpradikon) por ĉiu lando ("ĉini-o" kaj "ĉin-a"). Tiu al mi ne plaĉis, ĉar la programo kalkulus ankaŭ "ĉinia" al ebla derivaĵo. Mi programis por tiu kazo la specialan escepton. Landonomoj povas havi "i" sufikson. La programo akceptas la sufikso nur por substantivoj (o-vortoj) kaj nur por propraj nomoj, kiujn estas speciale markita en vortaro.

Gramatiko

Verba valento - implikata de derivaĵoj

Velento signifas kiel la verbo povas esti uzita. Verbo "vidi" povas havi objekton kaj estas tial "transitiva". En vortaro ani trovis la mallongigon "tr". Mi necesis la informojn pri la valento de ĉiu verbo por gramatika korektado. Sed kiel ricevi la informoj aŭtomate. Unue oni povas analizi tekstokorpuson. Mi rimarkis, ke ĉiuj transitivaj verbaj havas derivaĵon "*ebla". Multe de transitivaj verboj povas esti ekkonata tiamaniere. Mi havis duboj pri verbo "iri", kiu en mia vortaro estas markita kiel "intr". En tekstokorpuso mi trovis tamen kelkajn ekzemplojn "mi iras la saman vojon" ktp.

Kejkaj sufiksoj signifas ankaŭ la valenton. Verbo kun sufikso "ig-i" estas ĉiam transitiva.

Ekzistas ankaŭ verboj kun tiel nomataj "indirektaj objektoj" ekzemple "doni". En esperanto malantaŭ la indirekta objekto staras prepozicio "al". Malfeliĉe la prepozicio "al" signifas ankaŭ movon. Mi rimarkis, ke verboj, kiuj signifas movon, havas ofte prefiksoj "al, el, en" ekzemple "eniri, eliri, eniri". Sed ankaŭ "don-i" havas derivaĵo "al-don-i". Por diferenci tion oni povas uzi nur la prefikso "en". Tiukaze la korekta klasifiko ne estas facila. Oni devas analizi ĉu objekto malantaŭ prepozicio "al" estas ejo aŭ persono.

Modelo de verba velenco en Esperantilo

Nomo Mallongigxo Priskribo Ekzemplaj verboj Frazo
transitivaj verboj (kun direkta objekta)  obj ebla substantiva epiteo en akuzativo vidi, fari, doni Mi vidis domon
indirekta objekto iobj 'al' komplemento doni, helpi Mi donas tion al vi
sensubjekta verbo sensubj Frazo sen subjekto esti, necesi estas bone
reporta verbo rep Subpfrazo kun "ke" diri, vidi mi vidis, ke estas preta
substantiva perverba priskribo de subjekto scomp Frazo kun subjektiva komplemento esti, sxajni, igxi, farigxi Mi estas programisto
adjektiva perverba priskribo de subjekto acomp esti, sxajni, igxi, farigxi Li estas dika
substantiva perverba priskribo de objekto socomp Nur kiam objekto ekzistas elekti, nomi Li elektis lin prezidanto
adjektiva perverba priskribo de objekto aocomp Nur kiam objekto ekzistas farbi, bati Li farbis la domon blua
signifas muvigon mov Propozicioj 'de' kaj 'al' havas muvan signifon iri, veturi, meti mi veturas de londono al pariso
infinitivo kiel objekto aux tielnomataj helpoverboj devi, povi Mi devas lerni

Sintaksa analizo

Sintaksa analizo de frazoj estas kondiĉo por gramatika korektado en programo esperantilo kaj ankaŭ por venonta aŭtomata traduko. Mi ne volas priskribi la teorion, kiun oni povas legi de aliaj fontoj, sed priskribi la funkcionado de "esperantilo" kaj kelkaj specifaj esperantaj apartaĵoj. La plej bona priskribo de esperanto sintakso estas Plena Manlibro de Esperanta Gramatiko.

Ĉi tie vi povas rigardi ekzemploj de sintaksa analizo fare de programo "esperantilo"

La celo de analizo estas trovi funkciojn por ciu vorto en frazo kaj funkcion de vortgrupoj. Por videbligi funkciojn de unuopaj vortoj oni uzas tielnomatajn sintaksarbojn. Ĉiu vorto havas tipon kaj funkcion en frazo. Ofte uzataj estas CG2 analiziloj. La analizo estas kutime farita en kelkaj ŝtupoj

  1. Ekstraktado de vortoj kaj frazoj
  2. tielnomata "Tagging" - analizo de unuopaj vortoj (Programo nomas "Tagger")
  3. analizo laŭ speciale (CG2) difinitaj reguloj (por angla lingvo pli ol 1000)
"Tagging" serĉas gramatikon kategorion de vorto kaj kutime ĉiujn eblajn funkciojn de vorto en frazo. Ekzemple;
faras - Verbo (baza formo: fari) tempo: a
hundon - Substantivo (baza formo: hundo) kazo: adjektivo nombro: singularo. Eblas funkcioj: direkta objekto
La lingvistika programado pritraktis plej parte la anglan lingvon kaj la metodoj de analizo estas kutime konvena por tiu lingvo. CG2 metodo bone analizis anglan lingvon, kiu estas tre malfacila por analizo. Ĉar fleksio en angla lingvo estas tre facila unu vorto povas havi multajn funkciojn en frazo. La funkcio de vortoj en angla lingvo estas difinita plejparte per ordo de vortoj en frazo kaj najbaraj vortoj (interligiteco).
Rezulto de "Tagger" por angla lingvo:
TextBaseformPhrase syntax and part-of-speech
I I nominal head, pro-nominal 
see see main verb, indicative present 
you you nominal head, pro-nominal, sentence boundary 
La CG2 analizilo provas trovi laŭ difinitaj reguloj ĉiujn funkciojn de vortoj en frazo. La analizo finiĝas kiam: En esperanta lingvo oni povas tre facile trovi eblajn funkciojn de unuopaj vortoj. (a-Vortoj estas adjektivoj, o-Vortoj estas substantivoj) Ekzistas nur kelkaj vortoj kiu povas havi kelkajn funkciojn en frazo. Ekzemple "tiu" povas roli kiel: primitiva adjektivo (tiu homo), primitiva substantivo aŭ pronomo (tiu estas bona). Por tio multaj da analizaj problemoj de angla lingvo ne ekzistas en esperanto.

Duavice esperanto, simile al slavaj lingvoj, ne havas fiksan ordon de vortoj en frazo.

Li amas ŝin.
Li ŝin amas.
Amas li ŝin.
Amas ŝin li.
En angla lingvo eblas nur
Hi loves she.
Analizilo por esperanta lingvo devas solvi aliajn problemojn ol angla analizilo. Por tio mi decidis programi novan analizilon por esperanto, mi esperis, ke la analizilo devus esti malpli kompleksa ol angla analizilo. La "Esperantilo" laboras ĝenerale ankaŭ en tri ŝtupoj.

Analizŝtupoj en Programo "Esperantilo"

Alie ol CG2 la analizo estas devigita ankaŭ en kelkaj ŝtupoj, kaj ĉiu ŝtupo uzas aliaj metoj por analizo kaj estas speciale programita.

Verbo kiel frazradiko

Plej ofte lingvaj analiziloj pritraktas verbon kiel difinilo de frazo (aŭ radiko de frazo). Aliaj partoj de frazo estas funkcioj (plivastigoj) de verbo. Verbo mem difinas, kiuj funkcioj eblas (valency theory). Plej gravaj estas funkcioj por substantivoj (kaj substantivaj elementoj)

Aliaj funkcioj de verbo

Indirekta objekto en esperanto estas konstruita helpe de propozicio "al". Sed Prepozicio "al" povas havi ankaŭ alian rolon kiel direkto por verbon, kiu signifas movon (ekz: "Li iras al polando"). La diferenco estas grava ĉefe por aŭtomata traduko.

Gravas ankaŭ tielnomataj AUX-Verboj (Helpoverbo) kiel: "voli, povi, ami", kiu povas havi infinitivan verbon kiel parametro.

Leksikonbazita analizo

Por bona analizo oni bezonas bonaj plian priskribon de vortoj de leksikono. Tio estas grava ne nur por verboj sed ankaŭ por aliaj gramatikajn kategoriojn. Oni povas dividi adverboj je tiu kiu povas priskribi nur verbojn aŭ tiu kiu priskribas nur aliajn vortojn.
Li konas lin sufiĉe longe.
La hundo estas tre nigra.
Pliaj priskriboj de vortoj gravas por korekta analizo Ofte oni devas decidi, ĉu la informo apartenas al leksikono aŭ estas analizregulo.
Mi volas priskribi kelkajn malfacilaĵojn:

Ne plenaj subfrazoj

La unua estas la plej bona.
Mi volas la malgrandan.

Participoj kiel plenaj verbofrazoj

En esperanto participoj rolas kiel substantivoj, adjektivoj kaj adverboj. Ofte la participoj aperas post subjekto kaj estas priskribita per adverboj. Sed ili ofte ne perdas la verban karakteron kaj ofte povas roli kiel plenaj verbaj subfrazoj.
Li skribis konatan libron.
Detruita de milito urbo estis rekonstruita.
Leganta librojn reĝo estas saĝa.
Mi konas homon devenantaj de rusio.

Malofte uzataj frazformoj

En esperanto eblas multe frazformoj, kiuj tamen estas malofte uzata.

Konjunkcioj

Kunigiloj estas plej malfacilaj por analizi ĉar ili povas havi multajn funkciojn. Konjunkcio "kaj" povas kunligi vortojn, frazpartojn kaj tutajn frazojn.
Li havas katon kaj hundon.
Li devas legi la libron kaj lerni.
Li loĝas en urbo kaj ŝi loĝas en vilaĝo.
En analizo oni ofte devas serĉi ne infinitivaj verboj en malproksimo de konjunkcio por bone ekkoni la propran funkcion.

Komo

Simile al konjunkcioj komo ankaŭ kaŭzas multaj problemoj en analizo. Komoj povas havi multajn roloj
Li volas dormi, ŝi volas kanti.
La urbo, en kiu mi loĝas, estas granda.
La prezidanto, jam ne unuan fojon, promesis multegon.
Ho, Tio ne eblas.
Ŝi volonte legas, ĉu ne.
Krome ne ekzistas klaraj reguloj por uzado de komo en esperanto. Plejparto personoj uzas regulojn de sia gepatra lingvo. Tiu povas kaŭzi trouzadon kaj malsufiĉan uzadon de komo. En germana lingvo antaŭ "kaj" (und) ne devas esti komo, sed antaŭ "ke" (daß) oni devas komon skribi. En esperantaj tekstoj mi trovis multajn diferencajn skribmanierojn. Fine mi decidis akcepti multajn skribmanierojn.

Konstantoj kaj Propraj nomoj

Konstantoj estas neesperantaj vortoj en esperantaj tekstoj. Plej ofte tiuj estas fremdlingvaj propraj nomoj. Tiuj vortoj estas parto de ignorlisto por literumado. La afero plimalfaciligas por gramatika korektado, ĉar la funkcio de vorto ne estas konata. Esperantilo tiuokaze traktas tiujn vortojn kiel priskriboj de subjektoj.
   La prezidanto Kwasniewski estas en germanio multfoje.

multfunkcia Simbolo (")

En tekstoj " povas ofte enkonduki ne esperantan vorton aŭ citaĵoj, kiu povas esti eĉ multfrazaj.
  La usona filmo "star wars" estas tre konata.
  Li aldonis poste: "Mi estas sata. Mi volas dormi".
Fremdlingvaj vortoj aŭ plenaj frazoj en esperantaj tekstoj igas multajn problemojn por gramatika analizo. En XML-tekstoj ili estu markita per speciala XML-markilo.

retaj ligiloj pri sintaksa lingvanalizo

Mi serĉas lingvajn materialojn pri tiu kampo. Bonvolu informi min pri interesaj retpaĝoj.