Skip to content

Commit

Permalink
Update code from snowball repo
Browse files Browse the repository at this point in the history
  • Loading branch information
ojwb committed Oct 31, 2023
1 parent d46cdfa commit 467c998
Show file tree
Hide file tree
Showing 6 changed files with 529 additions and 521 deletions.
20 changes: 12 additions & 8 deletions code/english.sbl
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,11 @@ routines (

externals ( stem )

groupings ( v v_WXY valid_LI )
groupings ( aeo v v_WXY valid_LI )

stringescapes {}

define aeo 'aeo'
define v 'aeiouy'
define v_WXY v + 'wxY'

Expand Down Expand Up @@ -78,14 +79,17 @@ backwardmode (
'ed' 'edly' 'ing' 'ingly'
(
test gopast v delete
test substring among(
'at' 'bl' 'iz'
(<+ 'e')
'bb' 'dd' 'ff' 'gg' 'mm' 'nn' 'pp' 'rr' 'tt'
// ignoring double c, h, j, k, q, v, w, and x
([next] delete)
'' (atmark p1 test shortv <+ 'e')
[] test (
substring among(
'at' 'bl' 'iz'
(fail(<- 'e'))
'bb' 'dd' 'ff' 'gg' 'mm' 'nn' 'pp' 'rr' 'tt'
// ignoring double c, h, j, k, q, v, w, and x
(not (aeo atlimit))
'' (fail(atmark p1 test shortv <- 'e'))
)
)
[next] delete
)
)
)
Expand Down
6 changes: 3 additions & 3 deletions code/estonian.sbl
Original file line number Diff line number Diff line change
Expand Up @@ -26,16 +26,16 @@ stringdef a" '{U+00E4}' //a-umlaut ä
stringdef o" '{U+00F6}' //o-umlaut ö
stringdef o~ '{U+00F5}' //o with tilde õ
stringdef u" '{U+00FC}' //u-umlaut ü
stringdef s* '{U+0161}' //s-caron š
stringdef z* '{U+017E}' //z-caron ž
stringdef sv '{U+0161}' //s-caron š
stringdef zv '{U+017E}' //z-caron ž

externals ( stem )
integers ( p1 )
groupings ( V1 RV KI GI)

define V1 'aeiou{o~}{a"}{o"}{u"}'
define RV 'aeiuo'
define KI 'kptgbdshf{s*}z{z*}'
define KI 'kptgbdshf{sv}z{zv}'
define GI 'cjlmnqrvwxaeiou{o~}{a"}{o"}{u"}'

define mark_regions as (
Expand Down
68 changes: 34 additions & 34 deletions code/lithuanian.sbl
Original file line number Diff line number Diff line change
Expand Up @@ -5,21 +5,21 @@ stringescapes { }

/* Special characters in Unicode Latin Extended-A */
// ' nosine
stringdef a' '{U+0105}' // ą a + ogonek
stringdef e' '{U+0119}' // ę e + ogonek
stringdef i' '{U+012F}' // į i + ogonek
stringdef u' '{U+0173}' // ų u + ogonek
stringdef ak '{U+0105}' // ą a + ogonek
stringdef ek '{U+0119}' // ę e + ogonek
stringdef ik '{U+012F}' // į i + ogonek
stringdef uk '{U+0173}' // ų u + ogonek

// . taskas
stringdef e. '{U+0117}' // ė e + dot

// - ilgoji
stringdef u- '{U+016B}' // ū u + macron

// * varnele
stringdef c* '{U+010D}' // č c + caron (haček)
stringdef s* '{U+0161}' // š s + caron (haček)
stringdef z* '{U+017E}' // ž z + caron (haček)
// v varnele
stringdef cv '{U+010D}' // č c + caron (haček)
stringdef sv '{U+0161}' // š s + caron (haček)
stringdef zv '{U+017E}' // ž z + caron (haček)

// [C](VC)^m[V|C]
// definitions of variables for
Expand All @@ -31,7 +31,7 @@ integers ( p1 )
groupings ( v )

// v - all lithuanian vowels
define v 'aeiyou{a'}{e'}{i'}{u'}{e.}{u-}'
define v 'aeiyou{ak}{ek}{ik}{uk}{e.}{u-}'

// all lithuanian stemmer routines: 4 steps
routines (
Expand All @@ -47,14 +47,14 @@ backwardmode (
'as' 'ias' 'is' 'ys' // vyras, kelias, brolis, gaidys
'o' 'io' // vyro, kelio
'ui' 'iui' // vyrui, keliui
'{a'}' 'i{a'}' '{i'}' // vyrą, kelią, brolį
'{ak}' 'i{ak}' '{ik}' // vyrą, kelią, brolį
'u' 'iu' // vyru, keliu
'e' 'yje' // vyre, kelyje
'y' 'au' 'i' // kely, brolau, broli,
'an' // nusižengiman

'ai' 'iai' // vyrai, keliai
'{u'}' 'i{u'}' // vyrų, kelių
'{uk}' 'i{uk}' // vyrų, kelių
'ams' 'am' // vyrams, vyram
'iams' 'iam' // broliams, broliam
'us' 'ius' // vyrus, brolius
Expand All @@ -64,9 +64,9 @@ backwardmode (
'ysna' // žutysna

'asis' 'aisi' // sukimasis, sukimaisi
'osi' '{u'}si' // sukimosi, sukimųsi
'osi' '{uk}si' // sukimosi, sukimųsi
'uisi' // sukimuisi
'{a'}si' // sukimąsi
'{ak}si' // sukimąsi
'usi' // sukimusi
'esi' // sukimesi

Expand All @@ -88,7 +88,7 @@ backwardmode (
'{e.}' // gervė
'{e.}s' // gervės
'ei' // gervei
'{e'}' // gervę
'{ek}' // gervę
'{e.}j' '{e.}je' // gervėj, gervėje
'{e.}ms' // gervėms
'es' // gerves
Expand All @@ -113,14 +113,14 @@ backwardmode (
// V linksniuote (declension V)
'ies' 'ens' 'enio' 'ers' // avies, vandens, sesers
'eniui' 'eriai' // vandeniui, eriai
'en{i'}' 'er{i'}' // vandenį, seserį
'en{ik}' 'er{ik}' // vandenį, seserį
'imi' 'eniu' 'erimi' 'eria' // avimi, vandeniu, seserimi, seseria
'enyje' 'eryje' // vandenyje, seseryje
'ie' 'enie' 'erie' // avie, vandenie, seserie

'enys' 'erys' // vandenys, seserys
// 'en{u'}' konfliktas su 'žandenų' 'antenų'
'er{u'}' // seserų
// 'en{uk}' konfliktas su 'žandenų' 'antenų'
'er{uk}' // seserų
'ims' 'enims' 'erims' // avims, vandemins, seserims
'enis' // vandenis
'imis' // žebenkštimis
Expand Down Expand Up @@ -183,11 +183,11 @@ backwardmode (
'sit' 'site' // gersit, gersite

// tariamoji nuosaka (subjunctive mood)
'{c*}iau' '{c*}iausi' // dirbčiau
'{cv}iau' '{cv}iausi' // dirbčiau
'tum' 'tumei' // dirbtum, dirbtumei
'tumeis' 'tumeisi' // mokytumeis, mokytumeisi
// 't{u'}' nes blogai batutų -> batų
't{u'}si' // mokytųsi
// 't{uk}' nes blogai batutų -> batų
't{uk}si' // mokytųsi
// 'tume' konfliktas su 'šventume'
'tum{e.}m' // dirbtumėm
'tum{e.}me' // dirbtumėme
Expand Down Expand Up @@ -218,8 +218,8 @@ backwardmode (
// 'tis' konfliktas, nes rytme-tis -> rytme

// dalyviai (participles)
'{a'}s' 'i{a'}s' '{i'}s' // dirbąs, žaidžiąs, gulįs
't{u'}s' // suktųs -> suk
'{ak}s' 'i{ak}s' '{ik}s' // dirbąs, žaidžiąs, gulįs
't{uk}s' // suktųs -> suk
'sim{e.}s' // suksimės
'sit{e.}s' // suksitės
'kite' // supkite
Expand All @@ -235,7 +235,7 @@ backwardmode (
// budvardziu priesagos (Adjective suffixes)
// 'in' // konfliktas su 'augintinis' ir 'akiniais' // lauk-in-is
'ing' // tvark-ing-as
'i{s*}k' // lenk-išk-as
'i{sv}k' // lenk-išk-as
'{e.}t' // dem-ėt-as
'ot' // garban-ot-as
'uot' 'iuot' // lang-uot-as, akin-iuot-as
Expand All @@ -246,15 +246,15 @@ backwardmode (
'iul' // maž-ul-is
'{e.}l' // maž-ėl-is
'yl' // maž-yl-is
'u{c*}iuk' // maž-učiuk-as
'u{cv}iuk' // maž-učiuk-as
'uliuk' // maž-uliuk-as
'ut{e.}ait' // maž-utėlait-is
'ok' // did-ok-as
'iok' // višč-iok-as
'sv' '{s*}v' 'zgan' // sal-sv-as, pilk-šv-as, bal-zgan-as
'sv' '{sv}v' 'zgan' // sal-sv-as, pilk-šv-as, bal-zgan-as
'op' 'iop' // dvej-op-as, viener-iop-as
'ain' // apval-ain-as
'yk{s*}t' 'yk{s*}{c*}' // ten-ykšt-is, vakar-ykšč-ias
'yk{sv}t' 'yk{sv}{cv}' // ten-ykšt-is, vakar-ykšč-ias

// laisniai
'esn' // did-esn-is
Expand All @@ -265,17 +265,17 @@ backwardmode (
'ias' // žaliasis
'oj' 'ioj' // gerojo, žaliojo
'aj' 'iaj' // gerajam, žaliajam
'{a'}j' 'i{a'}j' // garąjį, žaliąjį
'{ak}j' 'i{ak}j' // garąjį, žaliąjį
'uoj' 'iuoj' // geruoju, žaliuoju
'iej' // gerieji
'{u'}j' 'i{u'}j' // gerųjų, žaliųjų
'{uk}j' 'i{uk}j' // gerųjų, žaliųjų
'ies' // geriesiems
'uos' 'iuos' // geruosius, žaliuosius
'ais' 'iais' // geraisiais, žaliaisiais

// moteriska gimine (Female gender)
'os' 'ios' // gerosios, žaliosios
'{a'}s' 'i{a'}s' // gerąsios, žaliąsias
'{ak}s' 'i{ak}s' // gerąsios, žaliąsias

// būtasis dažninis laikas (frequentative past tense)
'dav' // ei-dav-o
Expand All @@ -284,9 +284,9 @@ backwardmode (
'ant' 'iant'
'int' // tur-int-is
'{e.}j' // tur-ėj-o
'{e'}' //
'{e.}j{e'}'
'{e'}s' // dirb-ęs-is
'{ek}' //
'{e.}j{ek}'
'{ek}s' // dirb-ęs-is

'siant' // dirb-siant

Expand Down Expand Up @@ -335,8 +335,8 @@ backwardmode (

define fix_chdz as (
[substring] among (
'{c*}' (<-'t')
'd{z*}' (<-'d')
'{cv}' (<-'t')
'd{zv}' (<-'d')
)
)

Expand Down
Loading

0 comments on commit 467c998

Please sign in to comment.