Етап №3. Аналіз роботи автоматичного морфологічного аналізатора.
Виконання 3 етапу я здійснювала за наступним кроками:
Скопіювала файли ukrainian.yaml ukrainian.lex в директорію з програмою kimmo.py;
Переглянула та проаналізувала вміст файлів ukrainian.yaml та ukrainian.lex;
Запустила програму kimmo.py зазначеним нижче способом: в IDLE (Python GUI) виконала наступну послідовність дій:
>>> from kimmo import * >>> k=load("ukrainian.yaml ")
>>> k.gui()
4. Розробила програму морфологічного аналізу всіх граматичних форм наступнихслів: рука, ткаля, миша, село, коваль, горіх, піч, лоша, летіти, свистіти,писати, тесати, топтати, радіти, бити, смажити, дружити. Здійсниламорфологічний аналіз всіх граматичних форм вказаних слів.
Попередньо у файлі ukrainian.rec зберегла всі граматичні форми.
>>>from kimmo import * >>>k = KimmoRuleSetload('ukraiman.yamV) >>>recfile = open('ukrainian.rec') >>>for line in recfile: line = line.strip() if not line: continue if line.startswith(';'): print line continue
print list(k.recognize(line)), '< = ', line >>>recfile.close()
ulVEIIfNEIfl.r^C- t:\f"/!(]'jfl25\LfcfElifNEIfl.r»C I—II В II H
File Edit Format Run Options Windows Help
cuka
uuky
ruci
cuku I
uukoU
uukemi
uukemiy
uukah
tkalA
tkali
tkalU
tkaleU
tfcale
tkalE
tkalAm
tkalAmy
tkalAh
mySa
mySi
mySu
mySeU
mySe
mySej T
|Ln: 174|Col: 0
Файл икгаіпіап.гес
ruka
gorisi
pysaty
radila
ruky
gorihy
PУSu
radilo
ruci
gorihiv
pySeS
radily
гики
goriham
PУSe
raditymu
rukoU
gorihamy
pySemo
raditymeS
ruko
gorihah
pySete
radityme
ruk
ріС
pySutB
byty
rukam
реСі
pysav
ь'и
rukamy
ріССи
pysala
rukah
peCej
pysalo
b'E
tkalA
реСат
pysaly
b'Emo
tkali
реСату
pysatymu
b'Ete
tkalU
peCah
pysatymeS
b'UtB
tkaleU
pysatyme
Ьуу
tkale
loSaty
tesaty
byla
tkalB
loSati
teSu
ЬуІо
tkalAm
loSam
teSeS
ЬуІу
tkalAmy
loSata
teSe
bytymu
tkalAh
loSat
teSemo
bytymeS
mySa
loSatam
teSete
bytyme
mySi
losatamy
teSutB
smaZyty
mySu
loSatah
tesav
smaZu
mySeU
letity
tesala
smaZyS
ІеСи
tesalo
smaZutB
mySej
letyS
tesaly
smaZymo
mySam
letytB
tesatymu
smaZyte
mySamy
letymo
tesatymeS
smaZatB
mySah
letyte
tesatyme
smaZyv
БЄІО
letAtB
toptaty
smaZyla
letiv
topCu
smaZylo
letila
topCeS
smaZyly
letilo
topCe
smaZytymu
letily
topCemo
smaZytymeS
5ІІ
ІеШути
topCete
smaZytyme
letitymeS
topCutB
druZyty
БеІату
letityme
toptav
druZu
selah
svystity
toptala
druZyS
коуаІВ
svyHu
toptalo
druZytB
коуаІА
svystyS
toptaly
druZymo
коуаЮ
svystytB
toptatymu
druZyte
коуаІет
svystymo
toptatymeS
druZatB
коуаП
svystyte
toptatyme
druZyv
svystAtB
radity
druZyla
коуаІАт
svystiv
гасШ
druZylo
коуаІАту
svystila
radiES
druZyly
kovalAh
svystilo
radiE
druZytymu
gorih
svystily
radiEmo
druZytymeS
goriha
svystitymu
radiEte
druZytyme
gorihu
svystitymeS
gorihom
svystityme
radiv
Морфологічний аналіз всіз форм вказаних у файлі Ukrainian.rec слів
File Edit Shell Debug Options Windows Help
my
ruk+a1, 1 ruk+y1, 1 <= ruci ruk+u1, 1 ruk+oU1, ruk+o1, 1 <= ruk ruk+am1 , ruk+amy1 , ruk+ah1, tkal+A1, tkal+i1, tkal+U1 , tkal+eU1, tkal+e1, tkal+B1, tkal+Am1, tkal+Amy1
tkal+Ah1, inyS+a1 , myS + i 1 , inyS+u1 , myS+eU1, myS+e1,
<= ruka
No un_l_Tv(r uk) +a_Nominative сазє,зд' )] Noun 1 Tv(ruk)+y ')] <= ruky
Noun_l_Tv(ruk)+u_accusative сазе,зд')] <= ruku 1Noun_l_Tv(ruk)+oU_possesive сазе,зд')] <= rukoU Noun_l_Tv(ruk)+o_vocative сазе,зд')] <= ruko
1Noun_l_Tv(ruk)+am_dative case,pl')] <= rukam
1 Noun_l_Tv (ruk) +amy_posses ive case,pl')] <= rukamy 1Noun_l_Tv(ruk)+ah_locative case,pl')] <= rukah 1 Noun_l_Hj (tkal) +A_Nominative case,sg' ) ] <= tkal A 'Noun_l_Hj(tkal)+i_')] <= tkali
1Noun_l_Hj(tkal)+U_accusative case,sg')] <= tkalU 1Noun_l_Hj(tkal)+eU_possesive case,sg')] <= tkaleU
1Noun_l_Hj(tkal)+e_vocative case,sg')] <= tkale
1Noun_l_Hj(tkal)+B_genitive case,pl')] <= tkalB 1Noun_l_Hj(tkal)+Am_dative сазе,pi1)] <= tkalAm
, 'Noun 1 Hj(tkal)+Amy possesive case,pi1)] <= tkalA
1Noun_l_Hj(tkal)+Ah_locative case,pl')] <= tkalAh Noun_l_Hi (inyS) +a_Noininative case,sg' ) ] <= mySa Noun_l_Hi(my5)+i_')] <= my5i
Noun_l_Hi (inyS) +u_accusative case,sg')] <= inySu 1Noun_l_Hi(myS)+еи_роззезive case,sg')] <= mySeU Noun_l_Hi(myS)+e_vocative case,sg')] <= mySe
[('ruk+a', 'Noun_1_Tv(ruk)+a_Nominative case,sg')] <= ruka [('ruk+y', 'Noun_1_Tv(ruk)+y_')] <= ruky [] <= ruci
[('ruk+u', 'Noun_1_Tv(ruk)+u_accusative case,sg')] <= ruku [('ruk+oU', 'Noun_1_Tv(ruk)+oU_possesive case,sg')] <= rukoU [('ruk+o', 'Noun_1_Tv(ruk)+o_vocative case,sg')] <= ruko [] <= ruk
[('ruk+am', 'Noun_1_Tv(ruk)+am_dative case,pl')] <= rukam [('ruk+amy', 'Noun_1_Tv(ruk)+amy_possesive case,pl')] <= rukamy [('ruk+ah', 'Noun_1_Tv(ruk)+ah_locative case,pl')] <= rukah [('tkal+A', 'Noun_1_Mj(tkal)+A_Nominative case,sg')] <= tkalA [('tkal+i', 'Noun_1_Mj(tkal)+i_')] <= tkali [('tkal+U', 'Noun_1_Mj(tkal)+U_accusative case,sg')] <= tkalU [('tkal+eU', 'Noun_1_Mj(tkal)+eU_possesive case,sg')] <= tkaleU [('tkal+e', 'Noun_1_Mj(tkal)+e_vocative case,sg')] <= tkale [('tkal+B', 'Noun_1_Mj(tkal)+B_genitive case,pl')] <= tkalB [('tkal+Am', 'Noun_1_Mj(tkal)+Am_dative case,pl')] <= tkalAm [('tkal+Amy', 'Noun_1_Mj(tkal)+Amy_possesive case,pl')] <= tkalAmy [('tkal+Ah', 'Noun_1_Mj(tkal)+Ah_locative case,pl')] <= tkalAh [('myS+a', 'Noun_1_Mi(myS)+a_Nominative case,sg')] <= mySa [('myS+i', 'Noun_1_Mi(myS)+i_')] <= mySi [('myS+u', 'Noun_1_Mi(myS)+u_accusative case,sg')] <= mySu [('myS+eU', 'Noun_1_Mi(myS)+eU_possesive case,sg')] <= mySeU
Ln: 235 Col: 4
[('myS+e', 'Noun_1_Mi(myS)+e_vocative case,sg')] <= mySe
[('myS+ej', 'Noun_1_Mi(myS)+ej_pl')] <= mySej
[('myS+am', 'Noun_1_Mi(myS)+am_dative case,pl')] <= mySam
[('myS+amy', 'Noun_1_Mi(myS)+amy_possesive case,pl')] <= mySamy
[('myS+ah', 'Noun_1_Mi(myS)+ah_locative case,pl')] <= mySah
[('sel+o', 'Noun_2_Tv(sel)+o_sg')] <= selo
[('sel+a', 'Noun_2_Tv(sel)+a_Genitive case,sg')] <= sela
[('sel+u', 'Noun_2_Tv(sel)+u_Genitive case,sg'), ('sel+u', 'Noun_2_Tv(sel)+u_Dative case,sg')] <= selu
[('sel+om', 'Noun_2_Tv(sel)+om_possesive case,sg')] <= selom [('sel+i', 'Noun_2_Tv(sel)+i_locative case,sg')] <= seli [] <= sil
[('sel+am', 'Noun_2_Tv(sel)+am_dative case,pl')] <= selam
[('sel+amy', 'Noun_2_Tv(sel)+amy_possesive case,pl')] <= selamy
[('sel+ah', 'Noun_2_Tv(sel)+ah_locative case,pl')] <= selah
[('koval+B', 'Noun_2_Mj(koval)+B')] <= kovalB
[('koval+A', 'Noun_2_Mj(koval)+A')] <= kovalA
[('koval+U', 'Noun_2_Mj(koval)+U_sg')] <= kovalU
[('koval+em', 'Noun_2_Mj(koval)+em_possesive case,sg')] <= kovalem
[('koval+i', 'Noun_2_Mj(koval)+i')] <= kovali
[('koval+iv', 'Noun_2_Mj(koval)+iv_pl')] <= kovaliv
[('koval+Am', 'Noun_2_Mj(koval)Am')] <= kovalAm
[('koval+Amy', 'Noun_2_Mj(koval)+Amy_possesive case,pl')] <= kovalAmy
[('koval+Ah', 'Noun_2_Mj(koval)+Ah_locative case,pl')] <= kovalAh
[] <= gorih
[] <= goriha
[] <= gorihu
[] <= gorihom
[] <= gorisi
[] <= gorihy
[] <= gorihiv
[] <= goriham
[] <= gorihamy
[] <= gorihah
[] <= piC
[] <= peCi
[('piC+U', 'Noun_3(piC)+U_Possesive case,sg')] <= piCCU
[] <= peCej
[] <= peCam
[] <= peCamy
[] <= peCah
[] <= loSa
[('loS+at+y', 'Noun_4(loS)+at_+y_Genitive case,sg')] <= loSaty [('loS+at+i', 'Noun_4(loS)+at_+i_sg.')] <= loSati
[] <= loSam
[('loS+at+a', 'Noun_4(loS)+at_+a_')] <= loSata [] <= loSat
[('loS+at+am', 'Noun_4(loS)+at_+am_'), ('loS+at+am', 'Noun_4(loS)+at_+am_')] <= loSatam [loS+at+amy (Noun_4(loS)+at_+amy_possesive case.pl)] <= loSatamy
[('loS+at+ah', 'Noun_4(loS)+at_+ah_locative case.pl')] <= loSatah
[] <= letity [] <= leCu [] <= letyS [] <= letytB
[('let+y+mo', 'Verb(let)+y_+mo_ imperative. pl. 1 pers'), ('let+y+mo', 'Verb(let)+y_+mo_ imperative. pl. 1 pers')] <= letymo
[('let+y+te', 'Verb(let)+y_+te_imperative. pl. 2 pers'), ('let+y+te', 'Verb(let)+y_+te_imperative. pl. 2 pers')] <= letyte
[] <= letAtB
[('let+i+v', 'Verb(let)+i_+v_sg.past'), ('let+i+v', 'Verb(let)+i_+v_sg.m.past'), ('let+i+v', 'Verb(let)+i_+v_sg.m.past'), ('let+i+v', 'Verb(let)+i_+v_sg.past')] <= letiv [('let+i+la', 'Verb(let)+i_+la_sg.fem.past'), ('let+i+la', 'Verb(let)+i_+la_sg.fem.past'), ('let+i+la', 'Verb(let)+i_+la_sg.fem.past'), ('let+i+la', 'Verb(let)+i_+la_sg.fem.past')] <= letila [('let+i+lo', 'Verb(let)+i_+lo_sg'), ('let+i+lo', 'Verb(let)+i_+lo_sg.n.past'), ('let+i+lo',
'Verb(let)+i_+lo_sg.n.past'), ('let+i+lo', 'Verb(let)+i_+lo_sg')] <= letilo
[('let+i+ly', 'Verb(let)+i_ly_pl.past'), ('let+i+ly', 'Verb(let)+i_+ly_pl.past'), ('let+i+ly',
'Verb(let)+i_+ly_pl.past'), ('let+i+ly', 'Verb(let)+i_+ly_pl.past')] <= letily [('let+ity+mu', 'Verb(let)+ity_mu_sg.1 pers. future'), ('let+ity+mu', 'Verb(let)+ity_+mu_sg.1 pers. future'), ('let+ity+mu', 'Verb(let)+ity_+mu_sg.1 pers. future'), ('let+ity+mu', 'Verb(let)+ity_+mu_sg.1 pers. future')] <= letitymu
[('let+ity+meS', 'Verb(let)+ity_+meS_sg.2 pers. future'), ('let+ity+meS', 'Verb(let)+ity_+meS_sg.2 pers. future'), ('let+ity+meS', 'Verb(let)+ity_+meS_sg.2 pers. future'), ('let+ity+meS', 'Verb(let)+ity_+meS_sg.2 pers. future')] <= letitymeS
[('let+ity+me', 'Verb(let)+ity_+me_sg.3 pers. future'), ('let+ity+me', 'Verb(let)+ity_+me_sg.3
pers. future'), ('let+ity+me', 'Verb(let)+ity_+me_sg.3 pers. future'), ('let+ity+me',
'Verb(let)+ity_+me_sg.3 pers. future')] <= letityme
[] <= svystity
[] <= svyHu
[] <= svystyS
[] <= svystytB
[] <= svystymo
[] <= svystyte
[] <= svystAtB
[] <= svystiv
[] <= svystila
[] <= svystilo
[] <= svystily
[] <= svystitymu
[] <= svystitymeS
[] <= svystityme
[] <= pysaty [] <= pySu [] <= pySeS [] <= pySe
[] <= pySemo [] <= pySete [] <= pySutB [] <= pysav
[] <= pysala [] <= pysalo
[] <= pysaly
[] <= pysatymu [] <= pysatymeS [] <= pysatyme [] <= tesaty
[] <= teSu [] <= teSeS [] <= teSe
[] <= teSemo [] <= teSete
[] <= teSutB
[] <= tesav [] <= tesala [] <= tesalo [] <= tesaly [] <= tesatymu [] <= tesatymeS [] <= tesatyme [] <= toptaty [] <= topCu [] <= topCeS [] <= topCe [] <= topCemo [] <= topCete [] <= topCutB
[('topt+a+v', 'Verb(topt)+a_+v_sg.past'), ('topt+a+v', 'Verb(topt)+a_+v_sg.m.past'), ('topt+a+v', 'Verb(topt)+a_+v_sg.m.past'), ('topt+a+v', 'Verb(topt)+a_+v_sg.past')] <= toptav [('topt+a+la', 'Verb(topt)+a_+la_sg.fem.past'), ('topt+a+la', 'Verb(topt)+a_+la_sg.fem.past'), ('topt+a+la', 'Verb(topt)+a_+la_sg.fem.past'), ('topt+a+la', 'Verb(topt)+a_+la_sg.fem.past')] <= toptala
[('topt+a+lo', 'Verb(topt)+a_+lo_sg'), ('topt+a+lo', 'Verb(topt)+a_+lo_sg.n.past'), ('topt+a+lo', 'Verb(topt)+a_+lo_sg.n.past'), ('topt+a+lo', 'Verb(topt)+a_+lo_sg')] <= toptalo [('topt+a+ly', 'Verb(topt)+a_ly_pl.past'), ('topt+a+ly', 'Verb(topt)+a_+ly_pl.past'), ('topt+a+ly', 'Verb(topt)+a_+ly_pl.past'), ('topt+a+ly', 'Verb(topt)+a_+ly_pl.past')] <= toptaly [('topt+aty+mu', 'Verb(topt)+aty_mu_sg.1 pers. future'), ('topt+aty+mu', 'Verb(topt)+aty_+mu_sg.1 pers. future'), ('topt+aty+mu', 'Verb(topt)+aty_+mu_sg.1 pers. future'), ('topt+aty+mu', 'Verb(topt)+aty_+mu_sg.1 pers. future')] <= toptatymu [('topt+aty+meS', 'Verb(topt)+aty_+meS_sg.2 pers. future'), ('topt+aty+meS', 'Verb(topt)+aty_+meS_sg.2 pers. future'), ('topt+aty+meS', 'Verb(topt)+aty_+meS_sg.2 pers. future'), ('topt+aty+meS', 'Verb(topt)+aty_+meS_sg.2 pers. future')] <= toptatymeS [('topt+aty+me', 'Verb(topt)+aty_+me_sg.3 pers. future'), ('topt+aty+me', 'Verb(topt)+aty_+me_sg.3 pers. future'), ('topt+aty+me', 'Verb(topt)+aty_+me_sg.3 pers. future'), ('topt+aty+me', 'Verb(topt)+aty_+me_sg.3 pers. future')] <= toptatyme [] <= radity [] <= radiU [] <= radiES
[] <= radiE
[] <= radiEmo [] <= radiEte [] <= radiUtB [] <= radiv [] <= radila [] <= radilo [] <= radily
[('radi+ty+mu', 'Verb(radi)+ty_mu_sg.1 pers. future'), ('radi+ty+mu', 'Verb(radi)+ty_+mu_sg.1 pers. future'), ('radi+ty+mu', 'Verb(radi)+ty_+mu_sg.1 pers. future'), ('radi+ty+mu', 'Verb(radi)+ty_+mu_sg.1 pers. future'), ('radi+ty+mu', 'Verb(radi)+ty_mu_sg.1 pers. future'), ('radi+ty+mu', 'Verb(radi)+ty_+mu_sg.1 pers. future'), ('radi+ty+mu', 'Verb(radi)+ty_+mu_sg.1 pers. future'), ('radi+ty+mu', 'Verb(radi)+ty_+mu_sg.1 pers. future')] <= raditymu [('radi+ty+meS', 'Verb(radi)+ty_+meS_sg.2 pers. future'), ('radi+ty+meS', 'Verb(radi)+ty_+meS_sg.2 pers. future'), ('radi+ty+meS', 'Verb(radi)+ty_+meS_sg.2 pers. future'), ('radi+ty+meS', 'Verb(radi)+ty_+meS_sg.2 pers. future'), ('radi+ty+meS', 'Verb(radi)+ty_+meS_sg.2 pers. future'), ('radi+ty+meS', 'Verb(radi)+ty_+meS_sg.2 pers. future'), ('radi+ty+meS', 'Verb(radi)+ty_+meS_sg.2 pers. future'), ('radi+ty+meS', 'Verb(radi)+ty_+meS_sg.2 pers. future')] <= raditymeS
[('radi+ty+me', 'Verb(radi)+ty_+me_sg.3 pers. future'), ('radi+ty+me', 'Verb(radi)+ty_+me_sg.3 pers. future'), ('radi+ty+me', 'Verb(radi)+ty_+me_sg.3 pers. future'), ('radi+ty+me', 'Verb(radi)+ty_+me_sg.3 pers. future'), ('radi+ty+me', 'Verb(radi)+ty_+me_sg.3 pers. future'), ('radi+ty+me', 'Verb(radi)+ty_+me_sg.3 pers. future'), ('radi+ty+me', 'Verb(radi)+ty_+me_sg.3 pers. future'), ('radi+ty+me', 'Verb(radi)+ty_+me_sg.3 pers. future')] <= radityme
[] <= byty [] <= b'U [] <= b'ES
[] <= b'E
[] <= b'Emo [] <= b'Ete [] <= b'UtB
[('b+y+v', 'Verb(b)+y_+v_sg.past'), ('b+y+v', 'Verb(b)+y_+v_sg.m.past'), ('b+y+v', 'Verb(b)+y_+v_sg.m.past'), ('b+y+v', 'Verb(b)+y_+v_sg.past'), ('b+y+v', 'Verb(b)+y_+v_sg.past'), ('b+y+v', 'Verb(b)+y_+v_sg.m.past'), ('b+y+v', 'Verb(b)+y_+v_sg.m.past'), ('b+y+v', 'Verb(b)+y_+v_sg.past')] <= byv
[('b+y+la', 'Verb(b)+y_+la_sg.fem.past'), ('b+y+la', 'Verb(b)+y_+la_sg.fem.past'), ('b+y+la', 'Verb(b)+y_+la_sg.fem.past'), ('b+y+la', 'Verb(b)+y_+la_sg.fem.past'), ('b+y+la', 'Verb(b)+y_+la_sg.fem.past'), ('b+y+la', 'Verb(b)+y_+la_sg.fem.past'), ('b+y+la', 'Verb(b)+y_+la_sg.fem.past'), ('b+y+la', 'Verb(b)+y_+la_sg.fem.past')] <= byla [('b+y+lo', 'Verb(b)+y_+lo_sg'), ('b+y+lo', 'Verb(b)+y_+lo_sg.n.past'), ('b+y+lo', 'Verb(b)+y_+lo_sg.n.past'), ('b+y+lo', 'Verb(b)+y_+lo_sg'), ('b+y+lo', 'Verb(b)+y_+lo_sg'),
('b+y+lo', 'Verb(b)+y_+lo_sg.n.past'), ('b+y+lo', 'Verb(b)+y_+lo_sg.n.past'), ('b+y+lo', 'Verb(b)+y_+lo_sg')] <= bylo
[('b+y+ly', 'Verb(b)+y_ly_pl.past'), ('b+y+ly', 'Verb(b)+y_+ly_pl.past'), ('b+y+ly',
'Verb(b)+y_+ly_pl.past'), ('b+y+ly', 'Verb(b)+y_+ly_pl.past'), ('b+y+ly', 'Verb(b)+y_ly_pl.past'), ('b+y+ly', 'Verb(b)+y_+ly_pl.past'), ('b+y+ly', 'Verb(b)+y_+ly_pl.past'), ('b+y+ly', 'Verb(b)+y_+ly_pl.past')] <= byly
[('b+yty+mu', 'Verb(b)+yty_mu_sg.1 pers. future'), ('b+yty+mu', 'Verb(b)+yty_+mu_sg.1 pers. future'), ('b+yty+mu', 'Verb(b)+yty_+mu_sg.1 pers. future'), ('b+yty+mu', 'Verb(b)+yty_+mu_sg.1 pers. future'), ('b+yty+mu', 'Verb(b)+yty_mu_sg.1 pers. future'),
('b+yty+mu', 'Verb(b)+yty_+mu_sg.1 pers. future'), ('b+yty+mu', 'Verb(b)+yty_+mu_sg.1 pers.
future'), ('b+yty+mu', 'Verb(b)+yty_+mu_sg.1 pers. future')] <= bytymu
[('b+yty+meS', 'Verb(b)+yty_+meS_sg.2 pers. future'), ('b+yty+meS', 'Verb(b)+yty_+meS_sg.2
pers. future'), ('b+yty+meS', 'Verb(b)+yty_+meS_sg.2 pers. future'), ('b+yty+meS',
'Verb(b)+yty_+meS_sg.2 pers. future'), ('b+yty+meS', 'Verb(b)+yty_+meS_sg.2 pers. future'),
('b+yty+meS', 'Verb(b)+yty_+meS_sg.2 pers. future'), ('b+yty+meS', 'Verb(b)+yty_+meS_sg.2
pers. future'), ('b+yty+meS', 'Verb(b)+yty_+meS_sg.2 pers. future')] <= bytymeS
[('b+yty+me', 'Verb(b)+yty_+me_sg.3 pers. future'), ('b+yty+me', 'Verb(b)+yty_+me_sg.3 pers.
future'), ('b+yty+me', 'Verb(b)+yty_+me_sg.3 pers. future'), ('b+yty+me',
'Verb(b)+yty_+me_sg.3 pers. future'), ('b+yty+me', 'Verb(b)+yty_+me_sg.3 pers. future'),
('b+yty+me', 'Verb(b)+yty_+me_sg.3 pers. future'), ('b+yty+me', 'Verb(b)+yty_+me_sg.3 pers.
future'), ('b+yty+me', 'Verb(b)+yty_+me_sg.3 pers. future')] <= bytyme
[] <= smaZyty
[] <= smaZu
[] <= smaZyS
[] <= smaZutB
[] <= smaZymo
[] <= smaZyte
[] <= smaZatB
[] <= smaZyv
[] <= smaZyla
[] <= smaZylo
[] <= smaZyly
[] <= smaZytymu
[] <= smaZytymeS
[] <= smaZytyme
[] <= druZyty
[] <= druZu
[] <= druZyS
[] <= druZytB
[] <= druZymo
[] <= druZyte
[] <= druZatB
[] <= druZyv
[] <= druZyla
[] <= druZylo
[] <= druZyly
[] <= druZytymu
[] <= druZytymeS
[] <= druZytyme
Оцінка результатів аналізу
Наступним кроком при виконанні 3 етапу оцінка результатів аналізу, знаходження помилок та пояснення причин їх вининення.
Для здійснення морфологічного аналізу всіх граматичних форм наступних слів: рука, ткаля, миша, село, коваль, горіх, піч, лоша, летіти, свистіти, писати, тесати, топтати, радіти, бити, смажити, дружити я зберегла всі граматичні форми даних слів у файлі ukrainian.rec, транслітеруючи їх, оскільки програма працює лише з літерами латинського алфавіту. В результаті морфологічного аналізу були знайдені нерозпізнані слова, неправильно розпізнані або частково нерозпізнані словоформи.
Аналіз іменників
iw Аналізуючи всі граматичні форми слова «ruka» система не розпізнала словоформу
ruci і ruk і частково розпізнало словоформу гику.
Правило заміни букви «к» на «ц» при аналізі словоформи ruci не спрацювало, хоча воно і
записане в файлі ukrainian.yaml:
k to c: | FSA
k i @
c i @ 1: 2 1 1 2: 0 1 0
Також система не розпізнала форму ruk, хоча у файлі ukrainian. lex записано основу слова N_ROOT_1_TV:
ruk AfterNoun_1_Tv Noun_1_Tv(ruk), та вказано на нульове закінчення в іменника 1 відміни твердої групи в Родовому відмінку множини +0 AfterNounEnding genitive case,pl.
Частково розпізнала система словоформу ™ку, оскільки ця форма притаманна Родовому відмінку однини та Називному відмінку множини. В цьому випадку розпізнало лише основу та закінчення,
N_ROOT_1_TV:
ruk AfterNoun_1_Tv Noun_1_Tv(ruk) - основа N_ENDING_1_TV:
+y AfterNounEnding +y_ - закінчення іменника І відміни твердої групи.
але даних про відповідну форму множини та відмінок однини у файлі ukrainian.lex немає.
Інші словоформи були розпізнані.
[('ruk+a', 'Noun_1_Tv(ruk)+a_Nominative case,sg')] <= ruka [('ruk+y', 'Noun_1_Tv(ruk)+y_')] <= ruky [] <= ruci
[('ruk+u', 'Noun_1_Tv(ruk)+u_accusative case,sg')] <= ruku [('ruk+oU', Noun_1_Tv(ruk)+oU_possesive case,sg')] <= rukoU [('ruk+o', 'Noun_1_Tv(ruk)+o_vocative case,sg')] <= ruko
[] <= ruk
[('ruk+am', 'Noun_1_Tv(ruk)+am_dative case,pl')] <= rukam [('ruk+amy', 'Noun_1_Tv(ruk)+amy_possesive case,pl')] <= rukamy [('ruk+ah', 'Noun_1_Tv(ruk)+ah_locative case,pl')] <= rukah
it Аналізуючи всі граматичні форми слова «tkalA» система розпізнала все, але частково розпізнала «tkali» оскільки ця форма притаманна Родовому відмінку однини та Називному відмінку множини.
[('tkal+i', 'Noun_1_Mj(tkal)+i_')] <= tkali
В цьому випадку розпізнало лише основу та закінчення,
N_ROOT_1_MJ:
tkal AfterNoun_1_Mj Noun_1_Mj(tkal) - основа N_ENDING_1_MJ:
+i AfterNounEnding +i_ - закінчення іменника І відміни м'якої групи.
але даних про відповідну форму множини та відмінок однини у файлі ukrainian.lex немає.
Інші словоформи були розпізнані.
© Те саме спостерігається з словоформою «mySi».
[('myS+i', 'Noun_1_Mi(myS)+i_')] <= mySi
В файлі ukrainian.lex вказані дані лише про основу іменника та про можливість додавання закінчення -і до основи іменника І відміни мішаної групи.
N_ROOT_1_MI:
myS AfterNoun_1_Mi Noun_1_Mi(myS) - основа
N_ENDING_1_MI:
+i AfterNounEnding +i_ - закінчення іменника І відміни мішаної групи.
А також частково розпізнана словоформа «mySej».
[('myS+ej', 'Noun_1_Mi(myS)+ej_pl')] <= mySej
Вказано лише закінчення та форму множини,тому що дані про це записані у файлі ukrainian.lex
N_ROOT_1_MI:
myS AfterNoun_1_Mi Noun_1_Mi(myS) - основа
+ej AfterNounEnding +ej_pl - вказано закінчення множини іменника І відміни
мішаної групи, але не вказано, що це форма родового відмінка.
© Аналізуючи граматичні форми слова «selo» система не розпізнала називий відмінок
іменника, бо це вказано в файлі ukrainian.lex неправильно : N_ENDING_2_TV:
+0 AfterNounEnding _sg.Nominative case - вказано нульове закінчення однини іменника ІІ відміни твердої групи, як закінчення називного відмінку.
+o AfterNounEnding +o_sg - а при додаванні закінчення «о» до основи,
називний відмінок словоформи не вказаний.
Це саме стосується Знахідного відмінка однини, адже форми слова «село» Називного і Знахідного відмінка співпадають - «selo».
Форма «sete» розпізнана частково, тому що при аналізі упущено, що ця форма крім родового відмінка однини має форму називного відмінка множини. [('sel+a', 'Noun_2_Tv(sel)+a_Genitive case,sg')] <= sela
Форму selu система розпізнала, як словоформу двох різних відмінків : давального і родового, хоча словоформа родового відмінка звучить як «sela».
[('sel+u', 'Noun_2_Tv(sel)+u_Genitive case,sg'), ('sel+u', 'Noun_2_Tv(sel)+u_Dative case,sg')] <= selu
Причиною є те, що так записано у файлі ukrainian.lex. N_ROOT_2_TV:
sel AfterNoun_2_Tv Noun_2_Tv(sel)
+u AfterNounEnding +u_Dative case,sg
+u AfterNounEnding +u_Dative case,sg
Словоформа «sil» не була розпізнана. Правило зміни «е» на «і» не виконалось, хоча воно
записане у файлі ukrainian.yaml:
e to i: | FSA
e l # @
i l # @ 1: 2 1 1 1 2: 0 3 0 0
3: 0 0 1 0
[('sel+o', 'Noun_2_Tv(sel)+o_sg')] <= selo
[('sel+a', 'Noun_2_Tv(sel)+a_Genitive case,sg')] <= sela
[('sel+u', 'Noun_2_Tv(sel)+u_Genitive case,sg'), ('sel+u', 'Noun_2_Tv(sel)+u_Dative case,sg')] <= selu
[('sel+om', 'Noun_2_Tv(sel)+om_possesive case,sg')] <= selom [('sel+i', 'Noun_2_Tv(sel)+i_locative case,sg')] <= seli
[] <= sil
[('sel+am', 'Noun_2_Tv(sel)+am_dative case,pl')] <= selam [('sel+amy', 'Noun_2_Tv(sel)+amy_possesive case,pl')] <= selamy [('sel+ah', 'Noun_2_Tv(sel)+ah_locative case,pl')] <= selah
it При аналізі слова «kovalB» система розпізнала всіх граматичні форми, але через
наявність помилок у файлі ukrainian.lex не всі граматичні форми були розпізнані
повністю. Не вистачає деяких відмінків.
[('koval+B', 'Noun_2_Mj(koval)+B')] <= kovalB - Називний відм. одн. [('koval+A', 'Noun_2_Mj(koval)+A')] <= kovalA -Родовий відм. одн. [('koval+U', 'Noun_2_Mj(koval)+U_sg')] <= kovalU - Давальний відм. одн. [('koval+i', 'Noun_2_Mj(koval)+i')] <= kovali - Називний відм. множ. [('koval+iv', 'Noun_2_Mj(koval)+iv_pl')] <= kovaliv -Родовий відм. множ. [('koval+Am', 'Noun_2_Mj(koval)Am')] <= kovalAm - Давальний відм. множ.
Ці словоформи розпізнані повністю:
[('koval+em', 'Noun_2_Mj(koval)+em_possesive case,sg')] <= kovalem [('koval+Amy', 'Noun_2_Mj(koval)+Amy_possesive case,pl')] <= kovalAmy [('koval+Ah', 'Noun_2_Mj(koval)+Ah_locative case,pl')] <= kovalAh
і* Аналізуючи слово «gorih» система не розпізнала жодної словоформи. Це пов'язано з тим, що у файлі ukrainian.lex воно не правильно транслітеровано горіх => goiyri.
N_ROOT_2_MI:
goryh AfterNoun_2_Mi Noun_2_Mi(horyH)
[] <= gorih [] <= goriha [] <= gorihu [] <= gorihom [] <= gorisi [] <= gorihy [] <= gorihiv [] <= goriham [] <= gorihamy [] <= gorihah
iw Аналізуючи всі граматичні форми слова «piC» система розпізнала лише словоформу в
орудному відмінку однини : [('piC+U', 'Noun_3(piC)+U_Possesive case,sg')] <= piCCU
В даному випадку використовувалось правило подвоєння «ч» в основах перед «ю», записане в файлі ukrainian.yaml:
0 to C: |
FSA
0 U @
C U @ 1: 2 1 1
2: 0 1 0
Форма називного відмінка однини «piC» не була розпізнана, хоча в файлі ukrainian.lex є такі дані:
N_ROOT_3:
piC AfterNoun_3 Noun_3(piC) - основа іменника ІІІ відміни
N_ENDING_3:
+0 AfterNounEnding +0,sg - додавання нульового закінчення до основи, однина ( але не вказано, який це відмінок: називний або знахідний).
Всі інші словоформи також не були розпізнані в зв'язку з тим ,що в основі слова відбулось заміна голосної «і» на «е», а в файлі ukrainian.yaml немає правила на заміну «і» на «е» перед приголосною «ч». Ось і результат.
[] <= piC
[] <= peCi
[('piC+U', 'Noun_3(piC)+U_Possesive case,sg')] <= piCCU [] <= peCej
[] <= peCam [] <= peCamy
[] <= peCah
iw Іменник «кгёа» належить до IV відміни іменників. Ці дані, як і дані про основу цього
слова вказані у файлі ukrainian.lex. N_ROOT_4:
loS AfterNoun_4 Noun_4(loS)
Та під час відмінювання у іменників IV відміни з'являється суфікс. В нашому випадку це
суфікс «^ty» :
N_SUFFIX_4:
+at NounEnding +at_
При аналізі граматичних форм слова «IoSh» виникли помилки. Система не розпізнала форми слів у яких до основи іменника не додано суфікса «^ty» (в IV відміні іменників).
[] <= loSa [] <= loSam [] <= loSat
В інших словоформах, які утворені за допомогою цього суфіксу не вистарчає деяких відмінків:
[('loS+at+i', 'Noun_4(loS)+at_+i_sg.')] <= loSati - Давальний відм. одн.
[('loS+at+a', 'Noun_4(loS)+at_+a_')] <= loSata - множина, називний відм.
[('loS+at+am', 'Noun_4(loS)+at_+am_'), ('loS+at+am', 'Noun_4(loS)+at_+am_')] <= loSatam -
вказано двічі, тому що це помилка у файлі ukrainian.lex і це давальний відмінок множини.
Ці словоформи правильні і розпізнані.
[('loS+at+y', 'Noun_4(loS)+at_+y_Genitive case,sg')] <= loSaty [('loS+at+ah', 'Noun_4(loS)+at_+ah_locative case.pl')] <= loSatah
Аналіз дієслів
iw При аналізі всіх граматичних форм слова «letity» система не розпізнала інфінітив, форми leCu, letyS, letytB та частково інші форми.
У файлі ukrainian.lex записано, що основою слова є «let», а суфіксом є «-ity», хоча суфіксом є «-і».
V_ROOT_PREF_1:
let AfterVerb Verb(let) - основа дієслова «летіти»
V_SUFFIX_1:
+ity AfterVerbSuffix +ity_ - суфікс до дієслова І відміни
Словоформу «leCu» система не розпізнала, хоча у ній відбулась заміна «т» на «ч» , а
правило записане у файлі ukrainian.yaml:
t to CO: | FSA
t u @
C u @ 1: 2 1 1 2: 0 1 0
Словоформи letyS, letytB, letAtB не розпізнані, хоча у файлі вказані закінчення вірні. V_ENDING_1:
+yS AfterVerbEnding +yS_2 sg present +ytB AfterVerbEnding +ytB_3 sg present +AtB AfterVerbEnding +AtB_3 pl present
Це також пов'язано із даним суфіксом. Система додає закінчення лише, коли до основи додано суфікс, тобто до невірної форми. Це помилки у файлі ukrainian.lex. Таких форм в українській мові не існує.
let+ity+yS (Verb(let)+ity_+yS_2 sg present), let+ity+yS (Verb(let)+ity_+yS_2 sg present)
Словоформа «letily» не до кінця проаналізована, тому, що не вказана жодна особа. Хоча це 1-а, 2-а, 3-я особи множини.
[('let+i+ly', 'Verb(let)+i_ly_pl.past')
Я вважаю , що недоліком є також повторний запис, або дублювання проаналізованих словоформ.
Наприклад:
[('let+ity+meS', 'Verb(let)+ity_+meS_sg.2 pers. future'), ('let+ity+meS',
'Verb(let)+ity_+meS_sg.2 pers. future'), ('let+ity+meS', 'Verb(let)+ity_+meS_sg.2 pers. future'), ('let+ity+meS', 'Verb(let)+ity_+meS_sg.2 pers. future')] <= letitymeS
it При аналізі слова «svystity» жодна з словоформ не була розпізнана.
Хоча у файлі ukrainian.lex записані дані про основу та можливий суфікси та закінчення, система не «бачить» жодну з словоформ.
V_ROOT_PREF_1:
let AfterVerb Verb(let) svyst AfterVerb Verb(svyst)
V_SUFFIX_1:
+ity AfterVerbSuffix +ity_
+i AfterVerbSuffix +i_
+0 AfterVerbSuffix _
V_ENDING_1:
+u AfterVerbEnding +u _1 sg present
+yS AfterVerbEnding +yS_2 sg present
+ytB AfterVerbEnding +ytB_3 sg present
+ymo AfterVerbEnding +ymo_1 pl present
+yte AfterVerbEnding +yte_2 pl present
+AtB AfterVerbEnding +AtB_3 pl present
+v AfterVerbEnding +v_sg.past
+la AfterVerbEnding +la_sg.fem.past
+lo AfterVerbEnding +lo_sg
+ly AfterVerbEnding ly_pl.past
+mu AfterVerbEnding mu_sg. 1 pers. future
+meS AfterVerbEnding +meS_sg.2 pers. future
+me AfterVerbEnding +me_sg.3 pers. future
+memo AfterVerbEnding +memo_pl.1 pers. future
+mete AfterVerbEnding +mete_pl.2 pers. future
+mutB AfterVerbEnding +mutB_pl.3 pers. future
+0 AfterVerbEnding _infinityv
it Те саме стосується слів «pysaty», «tesaty», «smaZyty». Жодна з словоформ не
розпізнана, хоча в файлі ukrainian.lex є всі необхідні дані для розпізнання - основа, суфікси та закінчення, а також транслітерація є вірною.
При аналізі слова «toptaty» не розпізнались форми теперішнього часу.
[] <= topCu [] <= topCeS [] <= topCe
[] <= topCemo [] <= topCete [] <= topCutB
Це пов'язано з тим, що правило зміни «т» на «ч» перед «е» не виконується, хоча в файлі ukrainian.yaml воно записане для зміни «т» на «ч» перед голосною «у» :
t to C0: |
FSA
t u @
C u @ 1: 2 1 1
2: 0 1 0
Словоформа «toptaly» не до кінця проаналізована, тому, що не вказана жодна особа. Хоча це 1-а, 2-а, 3-я особи множини.
[('topt+a+ly', 'Verb(topt)+a_ly_pl.past') <= toptaly
При аналізі слова «radity» усі граматичні форми теперішнього і минулого часу є не розпізнані. У цьому слові суфікс додається лише в формах майбутнього часу. Це стало причиною того, що вони не розпізнані. Тому форма інфінітиву також під час аналізу розпізнана не була, тому що до основи раді+ додалось закінчення, а не суфікс.
V_ROOT_PREF_3:
radi AfterVerb Verb(radi)
V_SUFFIX_3:
+ty AfterVerbSuffix +ty_
При аналізі дієслова «byty» система не розпізнала інфінітив та форми теперішнього часу. Причиною є те, що система не розпізнала закінчення, а замість того в файлі ukrainian.lex записано до основи b_ додавання суфіксу -yty.
V_ROOT_PREF_3:
b AfterVerb Verb(b)
V_SUFFIX_3:
+yty AfterVerbSuffix +yty_
Крім того в файлі ukrainian.yaml немає правила на зміну «и» на голосні «ю», «є», «ю», хоча є правило про вживання апострофа:
0 to ': | FSA
0 Apost @ ' Apost @ 1: 2 1 1
2: 0 1 0
Словоформа «byly» не до кінця проаналізована, тому, що не вказана жодна особа. Хоча це
1-а, 2-а, 3-я особи множини.
[('b+y+ly', 'Verb(b)+y_ly_pl.past')] <= byly
При аналізі всіх граматичних форм слова «druZyty» система не розпізнала жодного слова, оскільки в файлі ukrainian.lex сама основа слова записана невірно - неправильна транслітерація слова.
V_ROOT_PREF_4:
druz AfterVerb Verb(druz)
Оцінка результатів синтезу
Наступним кроком 3 етапу є оцінка результатів синтезу, знаходження помилок та пояснення причин їх вининення.
Синтез іменників
® При синтезі всіх граматичних форм слова система просинтезувала такі
словоформи як : 11114;!, ruky, гисі, гики, гикоіі, ruko, гик, rukam, rukamy, rukah. Слова гика, гики, гико, гик, гикат, гикату, гukah перевірялись на такі правила:
заміна букви «к» на «ч», перед голосними «и», «у», «е»;
додавання апострофа перед голосними «я», «ю», «ї», «є»;
подвоєння букви «ч» («С») перед голосною «ю»;
заміна букви «к» на «ц», перед голосними «и», «у», «е»; Жодне з правил не застосувалось.
Система перевірила словоформу гику на правила заміни букви «к» на «ц» та букву «к» на «ч» та створила нову словоформу гиСу. Такого слова в українському лексиконі немає, але до нього застосувалось правило заміни «к» на «ч» , яке записано в файлі Ukra.inian.yaml: k to C: |
k Ss @
C Ss @ 1: 2 1 1 2: 0 1 0
Словоформа пш перевірялась на правила : додавання апострофа перед голосними «я», «ю», «ї», «є»; заміна букви «і» на «о», перед приголосною «с»; заміна букви «і» на «е», перед приголосною «ч» при додавання до неї «е», «а»,«і» ; подвоєння букви «ч» («С») перед голосною «ю»; Жодне правило не застосувалось. Не застосувалось також правило заміна букви «к» на «ц», тому, що в файлі икгаіпіап.уаті в правилі заміни не вказана буква «і» в наявності якої правило застосується.
При синтезі словоформа гикои перевірялась на правила заміни букви «к» на «ч та заміни букви «к» на «ц». Правила не використались. Але правило про додавання апострофа та правило подвоєння букви «ч» («С») перед голосною «ю» були вжиті і система створила словоформи гиСои, гико'и. Хоча в українській мові таких словоформ не існує, вони створені за правилами поданими у файлі икгаіпіап.уаті і написані без помилок. Крім того під час синтезу система не звертає увагу на те, чи існує таке слово в словнику даної мови, тому це не є помилкою.
íí При синтезі всіх граматичних форм слова tkalA система просинтезувала такі
словоформи : tkalA, tkali, tkalU, tkaleU, tkale, tkalB, tkalAm, tkalAmy, tkalAh.
При синтезі словоформ система перевірила їх на правила заміна букви «к» на «ч», «к» на «ц», додавання апострофа та подвоєння букви «ч». З них застосувалось лише правило апострофа, в результаті чого система утворила форми tkal'A, tkal'U, tkale'U, tkal'Amy, tkal'Ah, а також правило додавання букви «ч» перед голосною «ю» в словоформах tkaleU, tkalU - з яких система утворила словоформи tkaleCU, tkalCU. Помилок у цьому випадку в роботі системи немає, але слів в українській мові таких також не існує. Це пов'язано з тим, що система лише використовує на словах дані їй правила. Також словоформи tkaleU, tkale перевірялись ще на правило заміни букви «е» на «і», яке теж не було застосовано.
iw Словоформи іменника mySa перевірялись на подвоєння букви «ч» та додавання апострофа.
При цьому це правило у словоформах mySa, mySu, mySam, mySamy, mySah не
застосувалось. Словоформ mySi перевірялась крім того на правило заміни «і» на «о», що також не виконалось.
Словоформи mySeU, mySe, mySej перевірялись на подвоєння букви «ч» та додавання апострофа, а також на заміну букви «е» на «і». Система використала правило використання букви «ч», створивши словоформи mySeCU та вставила апостроф перед голосною «ю» у словоформі mySe'U.
Помилок у цьому випадку в роботі системи немає, але слів в українській мові таких також не існує. Це пов'язано з тим, що система лише використовує на словах дані їй правила.
Синтезуючи всі граматичні форми слова selo система перевірила їх на такі правила :
Словоформи sela, selu, selam, selamy, selah на правило заміни букви «с» на «ш». Правило не виконалось. Крім того саме правило в файлі Ukrainian.yaml записано не вірно. Згідно праила заміна відбудеться не на букву «ш» а на «с».
Словоформи selom, sil, selo на правила заміни букви «с» на «ш», додавання апострофа, подвоєння букви «ч». Правила не застосувались.
Словоформа seli перевірилась на правила заміни букви «с» на «ш», додавання апострофа, подвоєння букви «ч», заміни букви «і» на «о». Правила не застосувались.
При синтезі всіх граматичних форм слова kovalB на правила додавання апострофа, заміни букви «к» на «ч», заміни букви «к» на «ц», подвоєння букви «ч» перевірялись такі словоформи : коуаІБ, коуаІЛ, коуаіи, коуаіет, коуаіі, коуаііу, коуаІЛт, коуаІЛту, koуalЛh.
Крім того словоформа коуаіет ще перевірялась на правило заміни букви «е» на «і», а словоформи к)уаІі, к)уаІіу на правила заміни букви «і» на «о» та заміни букви «і» на
«е».
З усіх правил, на які перевірялись словоформи виконались лише два правила:
подвоєння букви «ч» («С») перед голосною «ю»;
додавання апострофа перед голосними «я», «ю», «ї», «є»;
В результаті система створила словоформи коуаІ'Л, коуаі'и, коуаІ'Лт, коуаІ'Лту, koуal'Лh, на перше з двох правил, та коуаіСи на друге правило.
Таких слів в українському лексиконі немає, але до них застосувалось правило додавання апострофа після голосних «я», «ю», «ї», «є» та правило вживання букви «ч», які записано в файлі икгаіпіап.уаті :
0 Ю С: | 0 Ю ': |
0 и @ 0 Appost @
С И @ ' Appost @
1: 2 1 1 1: 2 1 1
2: 0 1 0 2: 0 1 0
© При синтезі всіх граматичних форм слова ІшгШ не була розпізнана жодна з них. Це було пов'язано з неправильною транслітерацією словоформ у файлі икгаіпіап.іех.Під час синтезу словоформ ми не стикнулись з такою проблемою, тому що система слідкує за тими правилами, які записані у файлі икгаіпіап.уаті. Отже словоформи перевірялись на такі правила:
додавання апострофа;
подвоєння букви «ч»;
заміна букви «і» на «о»;
Жодне з правил не було застосоване до словоформ goгih, goгiha,goгihu, goгihom, goгihy, goгihiу, goгiham, goгihamy, gorihah. Словоформа gorisi не була розпізнана під час синтезу взагалі. Мабуть це пов'язано з тим, що у файлі икгаіпіап.уаті немає правила на заміну «х» на «с».
© При синтезі таких словоформ слова piC, як реСе], реСат, реСату, peCah система перевіряла їх на правила подвоєння букви «ч», додавання апострофа, заміни букви «е» на «і». Правила не виконались. Словоформа реСі крім вище зазначених правил ще перевірялась на правило заміни букви «і» на «о» але воно теж не виконалось.
Словоформи piC, piCCU перевірялись на правила заміни букви «і» на «о», подвоєння букви «ч» («С»), додавання апострофа. Під час синтезу словоформи piCCU виконалось лише правило подвоєння букви «ч», яке згідно з файлом Ukraiman.yaml виконується, якщо перед буквою «ч» стоїть голосна «ю»: 0 го С: |
о и @
С и @ 1: 2 1 1 2: 0 1 0
Крім того система створила ще одну словоформу ріСС'и. Правило подвоєння «ч» та додавання апострофа здійснюється, хоча такого слова в українському лексиконі немає.
іі При синтезі всіх граматичних форм слова loSa жодне з правил на які перевірялось слово не виконалось : додавання апострофа, подвоєння букви «ч», заміна букви «і» на «о».
Синтез дієслів:
іі При синтезі таких граматичних форм слова ієШу, як іє^, letyS, letytB, ієгупю, letyte, letAtB система перевіряла ї на такі правила:
заміна букви «е» на «і»;
додавання апострофа;
подвоєння букви «ч»;
Жодне з правил не застосувалось, крім правила на додання апострофа у словоформі Хоча ІегАВ - система утворила нову словоформу 1е<:'АіВ - правило виконалось, ле слова такого в українській мові не існує. А Словоформа ІеСи повинна виконуватись за правилами заміни «т» на «ч» , перед голосними «и», «у», «е», але цього не відбулось. Словоформи Letity, letiv, ієіііп, letilo, letily, ієШупш, letitymeS, letityme перевірялись крім вище згаданих правил ще на правило заміни «і» на букву «о». Але правило не виконалось на жодну з словоформ.
іі Всі граматичні форми слова svystity такі як: svystity, svyHu, svystyS, svystytB, svystymo, svystyte, svystAtB, svystiv, svystila, svystilo, svystily, svystitymu, svystitymeS, svystitymeне були просинтезовані, хоча система все одно перевіряла їх на правила заміни «с» на «ш», додавання апострофа, подвоєння букви «ч», які не виконалися.
© При синтезі таких граматичних форм слова pysaty, як pySu, pySutB система перевіряля їх на такі правила:
додавання апострофа;
подвоєння букви «ч»;
Словоформи ру8е8, ру8е, ру8ето, ру8е1е перевірялись ще на правило заміни букви «е» на «і». Жодне правило не було застосовано до цих словоформ, а також жодна з них не перевірялась на правило заміни «с» на «ш».
Такі словоформи, як руваїу, pysaу, ру8аіа, ру8аіо, ру8аіу, рузаіути, ру8а1уте8, ру8а1уте
взагалі система не просинтезувала, хоча вони перевірялись на правило заміни букви «с» на «ш», подвоєння букви «ч», додавання апострофа, які не були виконані.
іі При синтезі граматичних форм слова Іеваїу, таких як 1е8и, 1е8е8, 1е8е, 1е8ето, 1е8е1е, 1е8иіБ не виконалось жодне з правил:
заміна букви «т» на «ч», перед голосною «у»;
заміна букви «т» на «ч», перед голосними «и», «у», «е»;
заміна букви «е» на «і»;
додавання апострофа;
подвоєння букви «ч»;
заміна «с» на «ш»;
Праивло, що дозволяє замінити букву «с» на «ш» перед голосними «и», «у», «е» взагалі
не виконується, що пов'язано із неправильним написанням даних у файлі икгаіпіап.уаті:
s ю S: | FSA s Ss @ s Ss @ 1: 2 1 1
2: 0 1 0
Буква «с» за цим правилом змінюється на «с», замість «ш». Це і стало причиною помилки. Крім того словоформи Іеваїу, Іевау, 1е8аіа, Іеваіо, 1е8аіу, 1е8а1ути, 1е8а1уте8, 1е8а1уте
система взагалі не розпізнала під час синтезу, хоча перевірила на попередньо вказані правила також.
И При синтезі таких словоформ слова <:ор1а1у, як Іоріаіу, <:ор1ау, Іяріаіа, Іоріаіо, <:ор1аіу, <:ор1а1уііш, 1ор1а1уте8, Іоріаіуте система перевіряла їх на такі правила :
додавання апострофа перед голосними «я», «ю», «ї», «є»;
подвоєння букви «ч» («С») перед голосною «ю»;
Жодне з правил не було застосовано, оскільки для цих словоформ правил непотрібно. Слова :)рСи, :)рСе8, :)рСе, :)рСет), :)рСе:е перевірялись ще на правило заміни букви «е» на «і», та правило заміни «т» на «ч». Жодне з правил не застосувалось до даних словоформ, в звязку з неправильно попередньо записаними даними правил в файлі Ukrainian.yaml.
ії Такі словоформи слова radity перевірялись ситемою на використання правил : radity, radiU, radiES, radiE, radiEmo, radiEte, radiUtB, radiv, пиШл, radilo, radily, raditymu, raditymeS, radityme. Правила на які вони перевірялись:
заміна букви «і» на «о»;
додавання апострофа;
подвоєння букви «ч»;
заміна букви «е» на «і» ( для слів гаскЧутеБ, гасШуте)
Правила не виконались. Хоча при перевірці на правило подвоєння «ч» система видала нові результати - radiСU, radiCUtB. А при перевірці на правило вживання апострофа -radi'U, radi'ES, radi'E, radi'Emo, radi'Ete, radi'UtB. Це можна не вважати помилкою, адже правила дійсно можуть бути застосовані таким чином, хоча таких слів в українській мові не існує.
ІІ Синтез словоформ Ьугу, Ь% b'ES , b'E, b'Emo, b'Ete, b'UtB, byv, byla, bylo, Ьуіу, bytymu, bytymeS, bytyme перевіряв ці слова на правила:
подвоєння букви «ч»;
додавання апострофа;
заміна букви «е» на «і» ( для словоформ ЬуІутеБ, Ьуіуте)
Правила не були виконані. Але система створила нові слова за правилом подвоєння «ч» -Ь'СТ, b'CUtB, та за правилом вживання апострофа - b'CU, , bмE, bмEmo,
bмEte. Таких слів в українському лексиконі немає, але до них застосувалось правило додавання апострофа, тому система їх і створила.
іі При синтезі таких словоформ, як smaZyty, smaZu, smaZyS, smaZutB, smaZymo, smaZyte, smaZatB, smaZyv, smaZyla, smaZylo, smaZyly, smaZytymu, smaZytymeS, smaZytyme жодне з правил не виконалось і система не просинтезувала ці слова взагалі. А перевірялись слова на правила:
заміна букви «с» на «ш»;
додавання апострофа;
подвоєння букви «ч» («С»).
ії Під час синтезу таких граматичних форм слова druZyty, як druZyty, druZu, druZyS, druZytB, druZymo, druZatB, druZyv, druZyla, druZylo, druZyly, druZytymu всі
словоформи були розпізнані, на відміну від аналізу і система перевірила їх на використання таких правил:
додавання апострофа;
подвоєння букви «ч» («С»);
Словоформи dгuZytyme8, dгuZytyme, dгuZyte крім вище згаданих правил перевірялись ще на правило заміни букви «е» на «і». Але жодне з правил не виконалось.
Отже, після синтезу даних нам словоформ, можна зробити висновок, що помилки виникають через невірно написані, або взагалі не написані правила у файлі ukra.inian.yaml, що і є основною причиною проблем, пов'язаних з синтезуванням слів.
Перелік правил необхідний для реалізації морфологічного аналізатора з врахуванням слів з індивідуального завдання
Правила, записані згідно вимог програми КЄЕК та згенеровані стани скінченного перетворювача