@@ -734,11 +734,11 @@ # autres self.comment = '' self.err = '' self.nFlexions = 0 self.lFlexions = [] - self.sRadical = '' + self.sStem = '' self.nOccur = 0 self.nAKO = -1 # Average known occurrences self.fFreq = 0 self.oldFq = '' @@ -924,18 +924,21 @@ self.nFlexions += 1 else: #echo(sFlex + " " + sMorph + ", ") pass # Drapeaux dont le lemme féminin doit être remplacé par le masculin dans la gestion des formes fléchies - if self.flags.startswith(("F.", "F*", "W.", "W*")): - # recherche de la forme masculine - for t in lTuples: - sMorph = self.clean(t[1]) - if sMorph.endswith('mas') or sMorph.endswith('mas sg') or sMorph.endswith('mas inv'): - self.sRadical = t[0] + if self.st: + self.sStem = self.st else: - self.sRadical = self.lemma + if self.flags.startswith(("F.", "F*", "W.", "W*")): + # recherche de la forme masculine + for t in lTuples: + sMorph = self.clean(t[1]) + if sMorph.endswith(('mas', 'mas sg', 'mas inv')): + self.sStem = t[0] + else: + self.sStem = self.lemma # Tag duplicates d = {} for oFlex in self.lFlexions: d[oFlex.sFlexion] = d.get(oFlex.sFlexion, 0) + 1 for oFlex in self.lFlexions: @@ -1190,11 +1193,11 @@ def __str__ (self, oStatsLex): sOccurs = '' for v in oStatsLex.dFlexions[self.sFlexion]: sOccurs += str(v) + "\t" - return "{0.oEntry.iD}\t{0.sFlexion}\t{0.oEntry.sRadical}\t{0.sMorph}\t{0.metagfx}\t{0.metaph2}\t{0.oEntry.lx}\t{0.oEntry.se}\t{0.oEntry.et}\t{0.oEntry.di}{2}\t{1}{0.nOccur}\t{0.nDup}\t{0.nMulti}\t{0.fFreq:.15f}\t{0.cFq}\n".format(self, sOccurs, "/"+self.cDic if self.cDic != "*" else "") + return "{0.oEntry.iD}\t{0.sFlexion}\t{0.oEntry.sStem}\t{0.sMorph}\t{0.metagfx}\t{0.metaph2}\t{0.oEntry.lx}\t{0.oEntry.se}\t{0.oEntry.et}\t{0.oEntry.di}{2}\t{1}{0.nOccur}\t{0.nDup}\t{0.nMulti}\t{0.fFreq:.15f}\t{0.cFq}\n".format(self, sOccurs, "/"+self.cDic if self.cDic != "*" else "") @classmethod def simpleHeader (cls): return "# :POS ;LEX ~SEM =FQ /DIC\n" @@ -1256,14 +1259,14 @@ def keyTriNat (self): return (self.sFlexion.translate(CHARMAP), self.sMorph) def keyFreq (self): - return (100-self.fFreq, self.oEntry.sRadical, self.sFlexion) + return (100-self.fFreq, self.oEntry.sStem, self.sFlexion) def keyOcc (self): - return (self.nOccur, self.oEntry.sRadical, self.sFlexion) + return (self.nOccur, self.oEntry.sStem, self.sFlexion) def keyIdx (self): return self.oEntry.iD def keyFlexion (self):