Date: Mon, 18 May 1998 16:55:06 +0200 Subject: Projekt z ILP: Background knowledge Na artemis:/opt/seminarDB/korpus/desambiguace najdete 3 soubory. Soubor dole je README.bk. Krome toho v adresari /net/aisa/corpus/NLP/new_klara/des/pl soubory des.ng resp. des.vg obsahuji pravidla pro tagovani jmennych resp. slovesnych frazi. lp ----- bk.pl ----- obsahuje unarni predikaty ve forme isKH(SeznamTagu), kde K .. morfologicka kategorie (napr. K=k znamena druh slova) H .. hodnota (napr. 1 znamena podst. jmena). Napr. isk1(X) uspeje, jestlize v seznamu tagu X se vyskytuje podstatne jmeno. Predikaty pairs/2 a pairs0/2 jsou volany kazdym takovym predikatem. Doplnte si je prosim k bk.pl : pairs(A,B) :- name(A,C), pairs0(C,B), !. pairs0([A,B],[C]) :- name(C,[A,B]), !. pairs0([A,B|C],[D|E]) :- name(D,[A,B]), pairs0(C,E), !. Priklad: pred_def(isk0/1,[+tags],[],[]). % deklarace pro WiM isk0(Context) :- ground1(Context), member(Tag,Context), pairs(Tag,Category), member(k0,Category),!. ?- isk1([k1nSc3,k0nPc5]). yes bkpom2 ------ obsahuje binarni predikaty. Plati pro ne totez jako pro bk.pl. Druhy argument obsahuje zbytek toho tagu, v nemz se vyskytoval hledany retez. Napr. isk1([k2c1,k0c5],L) vrati v L [c1]. Doplnte si, krome nahore uvedenych, jeste tyto predikaty: rmCategory(A,B,[C]) :- name(A,D), name(B,E), append(F,D,G), dappend(G,H,E), dappend(F,H,I), name(C,I), !. dappend(A,B,C) :- append(A,B,C), !. Priklad: pred_def(isc5/2,[+tags,-tags],[],[]). isc5(Context,[TagW]) :- ground1(Context), member(Tag,Context), pairs(Tag,Category), member(c5,Category), rmCategory(c5,Tag,[TagW]),!. ?- isc5([k1nSc3,k0nPc5],L). L = [k0nP] ---------------------------------------------