import re

class WordLemmatizer:
    def __init__(self):
        self.ending_list = self.load_endings().split()

    def find_word_core(self, word):
        base_form = word
        print(word)
        if(len(base_form)<3):
            return base_form
        for ending in self.ending_list:
            if(word.endswith(ending)):
                # base_form = base_form.replace(ending, "")
                base_form = re.sub(ending+'$', '', word)
                break
        return base_form

    def find_word_core_list(self, text_list):
        rtn_dict = {}
        for word in text_list:
            core = self.find_word_core(word)
            if(len(core)>0):
                rtn_dict[word]=core
        return rtn_dict


    def load_endings(self):
        return GLOBAL_WORD_ENDINGS

GLOBAL_WORD_ENDINGS = """tumeisi
tumėmės
tumėtės
iuosna
tumėme
tumėte
siuosi
čiausi
telėti
terėti
tumeis
enimis
utėait
okatės
iosna
uosna
enyje
eryje
iuose
enyse
eryse
eriai
tumei
erimi
siesi
ėjosi
iuosi
iuoti
iauti
inėti
eniui
tumėm
iomis
enims
erims
iamės
kimės
simės
iatės
sitės
tumėt
uliuk
učiuk
siant
ojime
ėjime
avime
okate
asius
aitės
uotės
eria
osna
ysna
ėsna
enie
erie
ioje
iuje
iame
sime
iose
uose
iate
kite
site
tute
iumi
iasi
iesi
aisi
eisi
uisi
uosi
ausi
tųsi
enti
inti
ioti
uoti
auti
enio
iais
imis
omis
umis
ėmis
enis
asis
ysis
iams
iems
ioms
iuos
iaus
enys
erys
amės
imės
omės
ėmės
atės
otės
ėtės
čiau
eniu
imas
iuoj
zgan
iais
iuos
iaus
iant
iuot
ykšt
ykšč
aite
uote
oje
uje
yje
ėje
ame
imą
ome
ėme
ose
yse
ama
ėse
ate
ite
ote
ėte
imų
iai
imi
umi
asi
esi
isi
osi
usi
ąsi
ėsi
ųsi
oti
yti
ėti
iui
iam
iem
sim
tum
jos
nio
ion
iun
ėjo
nes
ias
ies
ais
ams
ims
oms
ums
ėms
ens
ios
uos
ers
aus
ius
iąs
tųs
iat
sit
iau
siu
enį
erį
erų
ing
iaj
iej
ioj
uoj
auj
iąj
iųj
iok
iuk
išk
iul
dam
jam
ain
esn
iop
ias
ies
ais
ios
uos
aus
iąs
ant
int
uot
jai
iau
dav
ėję
ie
ai
ei
ki
si
ti
ui
oj
ėj
am
im
om
ėm
an
on
un
ėn
nę
io
uo
as
es
is
os
us
ys
ąs
ės
įs
ūs
at
it
ot
ėt
au
iu
ią
ių
aj
oj
ąj
ėj
jų
ųj
ok
yl
ėl
am
op
os
ąs
ęs
ot
yt
ėt
sv
šv
a
e
i
k
o
s
u
y
ą
ė
ę
į
ų
ę
"""
