FerdinandPyCode commited on
Commit
88b138c
·
1 Parent(s): f13d6a7

first version of pattern permettre

Browse files
Files changed (1) hide show
  1. pattern_detection_permettre.py +51 -0
pattern_detection_permettre.py ADDED
@@ -0,0 +1,51 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import spacy
2
+
3
+ # Charger le modèle de langue française
4
+ nlp = spacy.load('fr_core_news_md') # Utilisez 'fr_core_news_sm' si 'md' n'est pas disponible
5
+
6
+ def est_auxiliaire(token):
7
+ return token.pos_ == "AUX" or (token.pos_ == "VERB" and token.tag_ and "Aux" in token.tag_)
8
+
9
+ def est_infinitif(token):
10
+ return token.pos_ == "VERB" and "Inf" in token.tag_
11
+
12
+ def 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 = False
22
+ # Vérifier si le mot précédent est un auxiliaire
23
+ if i > 0 and est_auxiliaire(doc[i - 1]):
24
+ est_verbe = True
25
+ # Vérifier si le mot suivant est "de" suivi d'un verbe à l'infinitif
26
+ elif i + 2 < len(doc) and doc[i + 1].text.lower() == "de" and est_infinitif(doc[i + 2]):
27
+ est_verbe = True
28
+ # 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 = False
31
+ else:
32
+ # Autres vérifications possibles si nécessaire
33
+ est_verbe = False
34
+
35
+ if est_verbe:
36
+ resultats.append((token.text, token.idx))
37
+ else:
38
+ continue # C'est un nom, on l'exclut
39
+ return resultats
40
+
41
+ # Exemple d'utilisation
42
+ texte = """
43
+ Il m'a permis de partir. J'ai besoin d'un permis de conduire.
44
+ Cela permet de comprendre. La loi permettra des changements.
45
+ Le permis de construire a été accordé. Nous avons permis cette action.
46
+ """
47
+
48
+ formes_permettre = trouver_formes_permettre(texte)
49
+ print("Les formes du verbe 'permettre' trouvées dans le texte avec leurs index sont :")
50
+ for mot, index in formes_permettre:
51
+ print(f"Mot : '{mot}' à l'index {index}")