Commit 4e6392bd authored by Linda Freienthal's avatar Linda Freienthal
Browse files

Substantives improved

parent 9a67d388
No preview for this file type
trikk
triki
triki
triki
triki
triki
Luba
sööma
jooma
laulma
kirjuta
rõõmusta
sündi
sündi
õpi
õpi
PROBLEEMSED
trike
triki
hobu
kana
kanali
kanale
kanale
kott
tort
ahikü
alusas
kast
lapsiku
õnnelik
õnneliku
õnneliku
õnneliku
õnneliku
õnnelik
õnnelik
õnneliku
õnnelik
õnnelik
sambla
hülge
kõrbe
asasadada
kast
kasti
kasti
kasti
kasti
kasti
kast
kasti
tort
tordi
torti
tordi
tordi
tort
torti
kõrb
kõrbe
kõrbe
kõrbe
kõrbe
kõrbe
kõrbe
kõrbe
kõrbe
samma
sambla
samma
sambla
sammal
sambla
sammal
sambla
hülje
hülge
hülje
hülge
hüljes
hülge
hüljes
hülge
õudne
õudse
õudse
õudse
õudse
õudse
õudse
õudse
hobune
hobuse
hobu
......@@ -25,29 +87,134 @@ hobuse
hobus
hobuse
hobus
kana
kanali
kanalit
kanali
kanali
kanali
kanale
kanali
kanalei
rata
rata
rata
rata
rata
ratas
rata
ratas
kott
koti
koti
koti
koti
koti
kot
koti
halva
halba
halva
halva
halba
halbu
halba
halvem
halve
halve
halve
halve
halve
halve
halve
halvim
halvi
halvi
halvi
halvi
halvi
halvi
halvi
hele
heleda
heleda
heleda
heleda
heleda
heleda
heleda
heleda
heledam
heleda
heleda
heleda
heleda
heleda
heleda
heleda
heleda
heledaim
heleda
heleda
heleda
heleda
heleda
heleda
heleda
heledaimi
saade
saate
saade
saate
saade
saate
tark
targa
tarka
targa
targa
tarka
tarku
tarka
tarka
targu
targem
targe
targe
targe
targe
targe
targe
targe
targe
targim
targi
targi
targi
targi
targi
targi
targi
targi
hinnangulise
koku
leki
miljoni
e-postiaadressi
miljon
miljo
miljoni
miljoni
miljoni
parooli
hunt
ütle
inime
juhti
eelmise
nädala
jooksu
tema
tähelepa
suuruse
keskonda
üle
laetu
faili
mille
peitu
faili
miljardi
sissekanne
nüüdse
keskkonna
kadu
siiani
kättesaadav
ühe
foorumi
mille
nime
turvakaalutlus
nimetada
soovi
This diff is collapsed.
......@@ -3,15 +3,20 @@
routines (
mark_regions
R2
//R2
LONGV
CRV
//CRV
case_ending
even_ending
plural_three_first_cases
finish
remove_double_kpt
double
undouble
i_plural
degrees
substantive
verb
nu
)
stringdef a" hex 'E4' //a-umlaut ä
......@@ -20,27 +25,27 @@ stringdef o' hex 'F5' //o with tilde õ
stringdef u" hex 'FC' //u-umlaut ü
externals ( stem )
booleans ( ending_removed )
integers ( p1 p2 )
groupings ( V1 C RV)
booleans ( is_verb )
integers ( p1 )
groupings ( V1 RV)
stringescapes {}
define V1 'aeiou{o'}{a"}{o"}{u"}'
define C 'bcdfghjklmnpqrstvwxz'
//define C 'bcdfghjklmnpqrstvwxz'
define RV 'aeiuo'
define mark_regions as (
$p1 = limit
$p2 = limit
//$p2 = limit
goto V1 gopast non-V1 setmark p1
goto V1 gopast non-V1 setmark p2
// goto V1 gopast non-V1 setmark p2
)
backwardmode (
define R2 as $p2 <= cursor
//define R2 as $p2 <= cursor
define even_ending as (
setlimit tomark p1 for ([substring])
among(
......@@ -49,31 +54,64 @@ backwardmode (
)
delete //ei saa kätte nom, gen v part-is sõnu nt 'tühjegi', muidu OK. (ˇkatki != kat, slprst käänded)
)
/*
Verbi tegevusnimed ('mas', 'maks', 'mata', 'mas', 'ma') on kaetud substantiivide all (võrded).
*/
define verb as (
setlimit tomark p1 for ([substring])
among(
'n' (V1) //kirjutan, aga ˇsaatan == saata, ˇdraakon == draako :( NIMETAV KÄÄNE LÄHEB PEKKI
//sg2 covered in substantive
'b' (V1)
'me' (V1)
'te' (V1)
'vad' (V1)
'sin' //ˇapelsin -> apel :(, laulsin -> laul (sel juhul laulu ains. nim. võrdne lemma)
'in'
'takse' 'dakse' //lauldakse, lubatakse
'akse' //tullakse <- 'a'
'da' 'ta' //'a' lubada
'des' 'tes' //'es' hakates
)
delete
set is_verb
)
define LONGV as
among('aa' 'ee' 'ii' 'oo' 'uu' '{a"}{a"}' '{o"}{o"}' '{u"}{u"}' '{o'}{o'}')
define CRV as (C RV)
//define CRV as (C RV)
define i_plural as (
setlimit tomark p1 for ([substring])
among(
'i' (RV)
)
delete
)
define case_ending as (
setlimit tomark p1 for ([substring])
among(
'sse' (RV)
's' (RV)//jura ˇkursus
'st' (RV)
'le' (RV)
'l' (RV) //jura ˇahel, ˇaadel
'lt' (RV)
'ni' (RV)
'na' (RV)
'ta' (RV)
'ga' (RV)
'ks' (RV)
't' //osastav. Sellele ei ole vokaali ette vaja.
's' (RV)//jura ˇkursus
'l' (RV) //jura ˇahel, ˇaadel
)
delete
set ending_removed
// set ending_removed
)
define plural_three_first_cases as ( // ending not removed before
define plural_three_first_cases as ( // PANE NU/TU KA SIIA?
setlimit tomark p1 for ([substring])
among(
'ikkude' (<-'ik')
......@@ -81,8 +119,8 @@ backwardmode (
'ike' (<-'ik')
'sid' (not LONGV delete) //mitm.os. sid. ˇgaasid, aga autosid -> auto
'aid' (<-'a') //rattaid -> ratta ˇöid ja ˇpuid jäävad välja, kursor sinna ei lähe. Siis on probla, kui on liitsõna vahtrapuid == vahtrapuid
'eid' (<-'e')
'te' (delete)
'eid' (<-'e') //lapsikuid
'te' ((test hop 4 delete) or <-'t') //torte = tort, oluliste = olulis
'de' (delete)
'd' (RV delete) //PLNOM. voodid -> voodi
)
......@@ -96,23 +134,50 @@ backwardmode (
next [hop 1] delete
)
define finish as (// undouble consonant if 'C1C1V'
define nu as (
setlimit tomark p1 for ([substring])
among(
'nu'
)
delete
)
define remove_double_kpt as (// undouble consonant if 'C1C1V'
(V1) (double)
and undouble
//goto non-V1 [C] -> x x delete // undouble consonant if 'C1C1V', nt 'mõtte' -> 'mõte'
)
define degrees as (
setlimit tomark p1 for ([substring])
among(
'mai' (RV delete)
'ma' (RV delete)
//+ lihtsalt m lõpust ära ka??
)
)
define substantive as (
do even_ending
do case_ending
//(ending_removed do i_plural) or do plural_three_first_cases
//(ending_removed do plural) or (do plural_par_nom)
//do i_plural
do plural_three_first_cases
do degrees
do i_plural
do nu
do remove_double_kpt
)
)
define stem as (
do mark_regions
unset ending_removed
unset is_verb
backwards (
do even_ending
do case_ending
//(ending_removed do plural) or (do plural_par_nom)
do plural_three_first_cases
do finish
do substantive
)
)
/* Estonian stemmer.
*/
routines (
mark_regions
//R2
LONGV
//CRV
case_ending
even_ending
plural_three_first_cases
remove_double
double
undouble
i_plural
degrees
substantive
)
stringdef a" hex 'E4' //a-umlaut ä
stringdef o" hex 'F6' //o-umlaut ö
stringdef o' hex 'F5' //o with tilde õ
stringdef u" hex 'FC' //u-umlaut ü
externals ( stem )
booleans ( is_verb )
integers ( p1 )
groupings ( V1 RV)
stringescapes {}
define V1 'aeiou{o'}{a"}{o"}{u"}'
//define C 'bcdfghjklmnpqrstvwxz'
define RV 'aeiuo'
define mark_regions as (
$p1 = limit
//$p2 = limit
goto V1 gopast non-V1 setmark p1
// goto V1 gopast non-V1 setmark p2
)
backwardmode (
//define R2 as $p2 <= cursor
define even_ending as (
setlimit tomark p1 for ([substring])
among(
'gi' (among('ikke' 'sse' 'ike' 'le' 'ni' 'na' 'ta' 'ga' 'de' 'te'))
'ki' (among('st' 'lt'))
)
delete //ei saa kätte nom, gen v part-is sõnu nt 'tühjegi', muidu OK. (ˇkatki != kat, slprst käänded)
)
define LONGV as
among('aa' 'ee' 'ii' 'oo' 'uu' '{a"}{a"}' '{o"}{o"}' '{u"}{u"}' '{o'}{o'}')
//define CRV as (C RV)
define i_plural as (
setlimit tomark p1 for ([substring])
among(
'i' (RV)
)
delete
)
define case_ending as (
setlimit tomark p1 for ([substring])
among(
'sse' (RV)
'st' (RV)
'le' (RV)
'lt' (RV)
'ni' (RV)
'na' (RV)
'ta' (RV)
'ga' (RV)
'ks' (RV)
't' //osastav. Sellele ei ole vokaali ette vaja.
's' (RV)//jura ˇkursus
'l' (RV) //jura ˇahel, ˇaadel
)
delete
// set ending_removed
)
define plural_three_first_cases as ( // PANE NU/TU KA SIIA?
setlimit tomark p1 for ([substring])
among(
'ikkude' (<-'ik')
'ikke' (<-'ik')
'ike' (<-'ik')
'sid' (not LONGV delete) //mitm.os. sid. ˇgaasid, aga autosid -> auto
'aid' (<-'a') //rattaid -> ratta ˇöid ja ˇpuid jäävad välja, kursor sinna ei lähe. Siis on probla, kui on liitsõna vahtrapuid == vahtrapuid
'eid' (<-'e') //lapsikuid
'te' ((test hop 4 delete) or <-'t') //torte = tort, oluliste = olulis
'de' (delete)
'd' (RV delete) //PLNOM. voodid -> voodi
)
)
define double as (
test among('kk' 'tt' 'pp')
)
define undouble as (
next [hop 1] delete
)
define remove_double as (// undouble consonant if 'C1C1V'
(V1) (double)
and undouble
//goto non-V1 [C] -> x x delete // undouble consonant if 'C1C1V', nt 'mõtte' -> 'mõte'
)
define degrees as (
setlimit tomark p1 for ([substring])
among(
'mai' (RV delete)
'ma' (RV delete)
//+ lihtsalt m lõpust ära ka??
)
)
define substantive as (
do even_ending
do case_ending
//(ending_removed do i_plural) or do plural_three_first_cases
//(ending_removed do plural) or (do plural_par_nom)
//do i_plural
do plural_three_first_cases
do degrees
do remove_double
do i_plural
)
)
define stem as (
do mark_regions
unset is_verb
backwards (
do substantive
)
)
trikk
triki
trikki
trikist
trikid
trikkide
Lubamaks
söömast
joomata
laulmaks
kirjutanutele
rõõmustanuist
sündinud
sündinutele
õppinuile
õppinutele
PROBLEEMSED
trikke
trikkidest
lapsikutele
õnnelik
õnneliku
õnnelikku
õnnelikusse
õnnelikud
õnnelike
õnnelikke
õnnelikkusid
õnnelikesse
õnnelikkudesse
hobune
hobuse
hobust
hobusesse
hobused
hobuste
hobuseid
hobustesse
kanal
kanali
kanalit
kanalisse
kanalid
kanalite
kanaleid
kanalitesse
kanaleisse
ratas
ratta
ratast
rattale
rattad
rataste
rattaid
ratastele
kott
koti
kotti
kotile
kotid