import re, sys from pathlib import Path file = sys.argv[1] #Assigner l'ARGV pour le fichier sentence, object = {}, [] paires = set() def clean(text: str): return re.sub('[^\w]', '', text) for row in Path(file).read_text().split("\n"): if row.startswith(""): items = re.findall("([^<]+)", row) # Items entre les tags index, word, lemma, tag, _, _, head, rel, _, _ = items # Assign les variables lemma = clean(lemma) # Nettoyage des lemmes sentence[index] = lemma # Stocker les lemmes dans le dictionnaire if rel == 'suj': # Si lemme est objet object.append((lemma, head)) # Stocker le lemme et GOUV dans une liste des tuples if row == "

": for obj_lemma, head in object: paires.add((f"{sentence[head]}", f"{obj_lemma}")) # Stocker les GOUV et DEP object, sentence = [], {} # Réeinitialise # Ecriture dans le fichier print("@Gouv: #id, label") for lemme in {gov for gov, _ in paires}: print(f'g_{lemme},{lemme}') print("@Dep: #id, label") for lemme in {dep for _, dep in paires}: print(f'd_{lemme},{lemme}') print("_suj:") for gouv, dep in paires: print(f"g_{gouv},--,d_{dep}")