Index: gc_core/py/dawg.py ================================================================== --- gc_core/py/dawg.py +++ gc_core/py/dawg.py @@ -16,11 +16,11 @@ from . import str_transform as st from .progressbar import ProgressBar def readFile (spf): - print("Read lexicon: " + spf) + print(" < Read lexicon: " + spf) if os.path.isfile(spf): with open(spf, "r", encoding="utf-8") as hSrc: for sLine in hSrc: sLine = sLine.strip() if sLine and not sLine.startswith("#"): @@ -67,11 +67,11 @@ else: sFlex = sStem = sLine #print(sFlex, sStem, sTag) yield (sFlex, sStem, sTag) if sTag2: - sFlex2 = st.getStemFromSuffixCode(sFlex, sSfxCode) + sFlex2 = st.changeWordWithSuffixCode(sFlex, sSfxCode) #print(sFlex2, sStem, sTag2) yield (sFlex2, sStem, sTag2) if nErr: print(" # Lines ignored: {:>10}".format(nErr)) @@ -161,13 +161,13 @@ self.lArcVal = lVal self.nArcVal = len(lVal) self.nTag = self.nArcVal - self.nChar - nAff self.cStemming = cStemming if cStemming == "A": - self.funcStemming = st.getStemFromAffixCode + self.funcStemming = st.changeWordWithAffixCode elif cStemming == "S": - self.funcStemming = st.getStemFromSuffixCode + self.funcStemming = st.changeWordWithSuffixCode else: self.funcStemming = st.noStemming # build lWord.sort() Index: gc_core/py/ibdawg.py ================================================================== --- gc_core/py/ibdawg.py +++ gc_core/py/ibdawg.py @@ -42,13 +42,13 @@ self.nNode = int(l[5]) self.nArc = int(l[6]) self.nAff = int(l[7]) self.cStemming = l[8] if self.cStemming == "S": - self.funcStemming = st.getStemFromSuffixCode + self.funcStemming = st.changeWordWithSuffixCode elif self.cStemming == "A": - self.funcStemming = st.getStemFromAffixCode + self.funcStemming = st.changeWordWithAffixCode else: self.funcStemming = st.noStemming self.nTag = self.nArcVal - self.nChar - self.nAff self.dChar = {} for i in range(1, self.nChar): Index: gc_core/py/str_transform.py ================================================================== --- gc_core/py/str_transform.py +++ gc_core/py/str_transform.py @@ -71,14 +71,14 @@ if sFlex[i] != sStem[i]: break jSfx += 1 return chr(len(sFlex)-jSfx+48) + sStem[jSfx:] -def getStemFromSuffixCode (sFlex, sSfxCode): +def changeWordWithSuffixCode (sWord, sSfxCode): if sSfxCode == "0": - return sFlex - return sFlex[:-(ord(sSfxCode[0])-48)] + sSfxCode[1:] if sSfxCode[0] != '0' else sFlex + sSfxCode[1:] + return sWord + return sWord[:-(ord(sSfxCode[0])-48)] + sSfxCode[1:] if sSfxCode[0] != '0' else sWord + sSfxCode[1:] # Prefix and suffix def defineAffixCode (sFlex, sStem): """ Returns a string defining how to get stem from flexion. Examples: @@ -122,14 +122,14 @@ x_longest = x else: M[x][y] = 0 return s1[x_longest-longest : x_longest] -def getStemFromAffixCode (sFlex, sAffCode): +def changeWordWithAffixCode (sWord, sAffCode): if sAffCode == "0": - return sFlex + return sWord if '/' not in sAffCode: return "# error #" sPfxCode, sSfxCode = sAffCode.split('/') - sFlex = sPfxCode[1:] + sFlex[(ord(sPfxCode[0])-48):] - return sFlex[:-(ord(sSfxCode[0])-48)] + sSfxCode[1:] if sSfxCode[0] != '0' else sFlex + sSfxCode[1:] + sWord = sPfxCode[1:] + sWord[(ord(sPfxCode[0])-48):] + return sWord[:-(ord(sSfxCode[0])-48)] + sSfxCode[1:] if sSfxCode[0] != '0' else sWord + sSfxCode[1:]