Bonjour,
je veux compter le nombre d'occurrences d'un mot dans un texte. Quand j'utilise un count() sur une chaine, ça tombe juste. Quand je transforme la chaine en liste et que j'applique la même recherche sur la liste avec count() j'obtiens moins d'occurrences.
J'ai essayé avec le module Counter sur une liste, même résultat, différend de count() sur la chaine
J'ai vérifié et le bon résultat est sur le count() sur la chaine.
Pour le comptage total de tous les mots, là j'arrive au bon résultat. C'est en cherchant le nombre d'occurrences d'un mot que ça coince.
merci pour toutes infos
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41 import os import re # chemin vers repertoire ou l'on se trouve rep_cour = os.getcwd() # nom du fichier fiSource = "donnees_test.txt" # lecture du fichier fs = open(rep_cour+'/data/'+fiSource, 'r') # renvoie le contenue du fichier ch = fs.read() # mise en bas de casse pour le texte ch = ch.lower() # conversion de la chaine en liste # methode split par defaut decoupe la chaine via les espaces liste = ch.split() # nombre d'element dans la liste donc de mots result = len(ch.split()) # methode avec regex result2 = len(re.findall(r'\w+', ch)) # supression des espaces dans la chaine chaine = ch.replace(" ", "") # longueur de la chaine (nombre caracteres) motresult = len(chaine) print(f"Il ya {result } mots et {motresult} caractéres sans espaces\n") # recherche occurences sur un mot print(f' sed apparait {ch.count("sed")} fois') #ne donne pas le bon resultat quant count sur la liste #print(f' sed apparait {liste.count("sed")} fois')
Partager