@@ -399,10 +399,12 @@ return "" def readableMorph (sMorph): "returns string: readable tags" + if not sMorph: + return "mot inconnu" sRes = "" sMorph = re.sub("(?<=V[0123][ea_])[itpqnmr_eaxz]+", "", sMorph) for m in _zTag.finditer(sMorph): if m.group(0) in _dTAGS: sRes += _dTAGS[m.group(0)][0] @@ -452,17 +454,10 @@ if "lMorph" in dToken and dToken["lMorph"]: # with morphology dToken["aLabels"] = [] for sMorph in dToken["lMorph"]: dToken["aLabels"].append(readableMorph(sMorph)) - if "sTags" in dToken: - aTags = [] - for sTag in dToken["sTags"]: - if sTag in _dValues: - aTags.append(_dValues[sTag]) - if aTags: - dToken["aOtherLabels"] = aTags else: # no morphology, guessing if dToken["sValue"].count("-") > 4: dToken["aLabels"] = ["élément complexe indéterminé"] elif _zPartDemForm.search(dToken["sValue"]): @@ -472,10 +467,20 @@ # formes interrogatives dToken["aLabels"] = ["forme verbale impérative"] elif _zInterroVerb.search(dToken["sValue"]): # formes interrogatives dToken["aLabels"] = ["forme verbale interrogative"] + else: + dToken["aLabels"] = ["mot inconnu du dictionnaire"] + if "lSubTokens" in dToken: + for dSubToken in dToken["lSubTokens"]: + if dSubToken["sValue"]: + if dSubToken["sValue"] in _dValues: + dSubToken["lMorph"] = [ "" ] + dSubToken["aLabels"] = [ _dValues[dSubToken["sValue"]] ] + else: + dSubToken["aLabels"] = [ readableMorph(sMorph) for sMorph in dSubToken["lMorph"] ] else: dToken["aLabels"] = ["token de nature inconnue"] except: return