Mi regule traserĉas la interreton je projektoj en la kampo de komputila ligvistiko. Nun mi trovis la projekton Denise-Myth. La projekto estis kreita kiel fina laboraĵo de pola universitato de Szymon Jessa. La celo de projekto estis krei la programon, kiu povus per natura lingvo komuniki kun uzanto kaj
krei bazon de kono (bazo de faktoj). La programo kolektas per dialogo kun uzanto informojn. Ĝi povas mem demandi. Fine la programo povas respondi je demandoj. Kvankam ĝenerale la problemo estas tre malfacila, la programo en komenca stato plenigas bone siajn taskojn. Ĝi povas analizi kaj kompreni simplajn polajn frazojn. Se oni povas bone demandi, la programo povas ankaŭ bone respondi. La programo regas ankaŭ la bazan logikon kaj povas rezoni. La aŭtoro de projekto devis solvi multajn problemojn. Ĉiu de tiuj problemoj estas por si mem tre ambicia kaj ĝis nun ne
sufiĉe solvita.
Tiuj problemoj estas:
- Kompreno de natura lingvo
- Konservado de faktoj en programaj strukturoj
- Traserĉado de bazo de faktoj
- Rezonado kaj provado de faktoj
- Genero de respondoj en natura lingvo
Interesa estas ankaŭ la teknika aspekto de projekto. La problemoj estus kutime la domeno de altnivelaj lingvoj kiel prolog kaj lisp. Pro rezonado kaj konservado de faktoj la programa lingvo „prolog“ havas specialajn funkciojn, kiuj estas normala parto de tiu programa lingvo. Tamen la aŭtoro decidis programi en simpla programa lingvo „C“. Li volis, ke la programo rulos sur ĉiu ebla sistemo. Nun tre ofte sistemoj de altnivelaj lingvoj kiel: calm, prolog, schema, haskel, tcl, python kuras sur multaj operaciumaj sistemoj. Tio estas ebla, ĉar ili ofte esta programite en C, do tiu argumento ne estas pro mi tre konvinka. Mi supozas, ke aŭtoro simple tre ŝatis tiun programan lingvon. En bona maniero de programistoj la aŭtoro enmetas kompleksan logikon kaj multajn regulojn en specialjn dosierojn laŭ propra teksta formato. Por mi la plej interesa parto en tiu projekto estis la analizo de pola lingvo. Tiu tasko estas multe pli komplika ol analizo de esperanta lingvo, kiun mi programis en la programo Esperantilo. Bedaŭrinde la plena priskribo de analizo ne ekzistas kiel iu dokumento, do la nura eblo estas legi la programan kodon. La programo enhavas tabelojn kun finiloj de pola lingvo kaj povas de tiuj informoj mem derivi la kazon, arton kaj bazan formoj de vorto.
Tiu estas alia maniero de prilaboro ol la projekto de morfologik, kiu enhavas la grandegan bazon de ĉiuj eblaj polaj vortoj kun gramatika priskribo kaj baza formo. La kompleta sintaksa analizo ne estas farata, ĉar la programo akceptas nur kutimajn frazojn en kutima ordo de pola lingvo. La faktoj estas konstruitaj helpe de tiel nomataj ŝlosilaj vortoj kiel: „esti“, „signifi“, „estas parto de“. La programo me povas rekoni ĉu la uzanto aldonas novan fakton aŭ ĉu ili demandas pri io. La programa teksto ne estas eĉ tro longa kaj tamen funkcias por siaj celoj.
Interesa fakto en tiu projekto estas, ke en bazo de faktoj la ĉefan rolon havas subjekto. Aŭtoro diras pri tn.
lineaj frazoj. Do la programo transformas la sintaksaj arboj de frazo al lineaj strukturoj. Laŭ tiu modelo la frazo: „Roberto iras rapide sur la vojo“ havas 2 lineaj frazojn: „Roberto iras rapide“ kaj „Roberto iras sur la vojo“.
La kutima semantika prezento de tiu frazo estas: iri(Roberto,sur(vojo),rapide). Do predikato havas la unuan pozicion. En la sistemo Denise tio estus Roberto -> iri -> rapide.
Kial la aŭtoro elektis alian metodon? Ĉu ekzistis la kultura kialo por tio? Mi pensas, ke por slavoj la substantivo estas pli grava elemento de frazo. En rusa lingvo kutime mallongaj frazoj tute ne havas verbon (ekzistas do nur latenta predikato).
La laboraĵo donas ankaŭ multajn ekzemplojn kiel ekstrakti logikaj faktoj de frazoj. La programo povas rezoni laŭ logikaj reguloj kaj regas la vortetojn: „iu, ĉiu, neniu“. Mi iom ludis kun la programo, kaj povas eĉ kelkfoje ricevi veraj informoj. Tio estas tre ĝoiga sperto.
Projekto Cyc
Dum la legado de laboraĵo mi ankaŭ eksciis pri pli fama projekto Cyc. La celo de tiu projekto estas la kolekto de ĉiuj faktoj de baza nivelo.
Ekzemple:
- Homo, kiu studas, estas studanto.
- Oni studas en universitato.
- Studanto estas homo.
Tiu bazo povus servi por krei programon, kiu mem elektos informojn de tekstoj en natura lingvo. Poste la sistemo povos mem derivi novajn faktojn de konataj faktoj. Ĝi povos respondi je ĉiuj demandoj. La sistemo estas nun evoluita dum multaj jaroj kaj jam povas funkcii kaj plenumi planitajn taskojn. Do eĉ kompleksa rezonado funkcias.
La bazo de faktoj estas libere atingebla. Tiuj faktoj (precipe ontologio) estas tre similaj al projekto WordNet.
Ankaŭ en maŝina tradukado la aŭtomata kompreno de teksto estas tre grava por bona kvalito de traduko. Mi pensas, ke kun metodoj de similaj programoj kaj bazoj de sistemoj Cyc aŭ WordNet la kvalito de tradukado povos atingi la akcepteblan kvaliton. Tie la vorto „akceptebla“ signifas, ke la maŝina tradukado estas same bona kiel la homa tradukado.
Kvankam oni nun pensas, ke komputiloj neniam povus kompreni tekstojn en natura lingvo, tio tamen iom post iom okazas.
„Komprenado“ en tiu kazo ne estas egala al homa komprenado. Tamen maŝinoj povas kolekti faktojn de tekstoj kaj rezonadi sur bazo de tiuj faktoj. La laboraĵo de Szymon Jess enhavas kelkajn interesajn pensojn pri tiu temo. Se mi observas la serĉmaŝinon „Google“, mi pensas, ke nun ĝi estas la plej granda leganto de interreto. Tiu sistemo laboras nun laŭ tre primitivaj metodoj, tamen tiuj metodoj pliboniĝas konstante. La celo de google ne estas kompreno, sed komerca varbado, tamen iam tiu funkciado similos al komprenado.
Nun tekniko kaj interreto helpos al Esperanto ĉe ĝi evoluo kaj disvastigado. Sed la evoluo de tekniko povus signifi ankaŭ la morton de Esperanto. Tio okazos, kiam la komputiloj povus kompreni tekstojn, kaj estos mem la plej grandaj legantoj de tekstoj. Tiuj programoj plej verŝajne komprenus unue nur kelkajn lingvojn. Tiuj lingvoj certe estos: „angla, franca, japana, ĉina, germana, …“.