Team Ai
Apppublic

FerdinandPyCode/AuthringApp

sourceHugging Faceupdated 2y agoView on Hugging Face
1likes
pattern_detection_permettre.py52 linesDownload Raw Back to root
1import spacy2 3# Charger le modèle de langue française4nlp = spacy.load('fr_core_news_md')  # Utilisez 'fr_core_news_sm' si 'md' n'est pas disponible5 6def est_auxiliaire(token):7    return token.pos_ == "AUX" or (token.pos_ == "VERB" and token.tag_ and "Aux" in token.tag_)8 9def est_infinitif(token):10    return token.pos_ == "VERB" and "Inf" in token.tag_11 12def trouver_formes_permettre(texte):13    doc = nlp(texte)14    resultats = []15    for i, token in enumerate(doc):16        # Vérifier si le lemme est "permettre" et que le mot est un verbe (autre que "permis")17        if token.lemma_ == "permettre" and token.pos_ == "VERB" and token.text.lower() != "permis":18            resultats.append((token.text, token.idx))19        # Traiter spécifiquement le mot "permis"20        elif token.text.lower() == "permis":21            est_verbe = False22            # Vérifier si le mot précédent est un auxiliaire23            if i > 0 and est_auxiliaire(doc[i - 1]):24                est_verbe = True25            # Vérifier si le mot suivant est "de" suivi d'un verbe à l'infinitif26            elif i + 2 < len(doc) and doc[i + 1].text.lower() == "de" and est_infinitif(doc[i + 2]):27                est_verbe = True28            # Vérifier si le mot précédent est un déterminant (le, la, un, une, etc.)29            elif i > 0 and doc[i - 1].pos_ == "DET":30                est_verbe = False31            else:32                # Autres vérifications possibles si nécessaire33                est_verbe = False34 35            if est_verbe:36                resultats.append((token.text, token.idx))37            else:38                continue  # C'est un nom, on l'exclut39    return resultats40 41# Exemple d'utilisation42texte = """43Il m'a permis de partir. J'ai besoin d'un permis de conduire.44Cela permet de comprendre. La loi permettra des changements.45Le permis de construire a été accordé. Nous avons permis cette action.46"""47 48formes_permettre = trouver_formes_permettre(texte)49print("Les formes du verbe 'permettre' trouvées dans le texte avec leurs index sont :")50for mot, index in formes_permettre:51    print(f"Mot : '{mot}' à l'index {index}")52