Index: gc_lang/fr/dictionnaire/genfrdic.py ================================================================== --- gc_lang/fr/dictionnaire/genfrdic.py +++ gc_lang/fr/dictionnaire/genfrdic.py @@ -444,13 +444,14 @@ for c in oFlex.sFlexion: d[c] = d.get(c, 0) + oFlex.nOccur nTot = 0 for k in d: nTot += d[k] - hDst.write("\n\nOccurrences des lettres dans le corpus :\n") - for sKey, nVal in sorted(d.items(), key = lambda x: (x[1], x[0]), reverse=True): - hDst.write(" {} : {:>16,.0f} / {:.8f} %\n".format(sKey, nVal, nVal*100/nTot)) + if nTot: + hDst.write("\n\nOccurrences des lettres dans le corpus :\n") + for sKey, nVal in sorted(d.items(), key = lambda x: (x[1], x[0]), reverse=True): + hDst.write(" {} : {:>16,.0f} / {:.8f} %\n".format(sKey, nVal, nVal*100/nTot)) # Mots par nombre de lettres echo(" Nombre de lettres dans les mots...") if not self.aFlexions: self.aFlexions = set([e.sFlexion for e in self.lFlexions]) @@ -1036,11 +1037,11 @@ nNewOccur = math.ceil((nFlexOccur * (oEntry.nAKO / nTotAKO)) / oFlexM.nDup) if nTotAKO else 0 hDst.write(sBlank + "{2:<30} {0.sMorph:<30} {0.nOccur:>10} %> {1:>10}\n".format(oFlexM, nNewOccur, oEntry.getShortDescr())) oFlexM.setOccurAndBlock(nNewOccur) def calcFreq (self, nTot): - self.fFreq = (self.nOccur * 100) / nTot + self.fFreq = (self.nOccur * 100) / nTot if nTot else 0 self.oldFq = self.fq self.fq = getIfq(self.fFreq) @@ -1070,11 +1071,11 @@ def calcOccur (self): self.nOccur = math.ceil((self.nOccur / (self.nMulti+1)) / self.nDup) def calcFreq (self, nTot): - self.fFreq = (self.nOccur * 100) / nTot + self.fFreq = (self.nOccur * 100) / nTot if nTot else 0 self.cFq = getIfq(self.fFreq) def calcMetagraphe (self): t = metagraphe.getMetagraphe(self.sFlexion, self.sMorph) self.metagfx = t[0] if not t[1] else t[0]+"/"+t[1]