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.


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')
merci pour toutes infos