Recherche d'un mot au sein d'une chaine

Incompréhension

L'auteur de ce sujet a trouvé une solution à son problème.
Auteur du sujet

Bonjour à tous,

J'utilise Python 3.5 et Ipython notebook, cette fonction fait partie d'un programme que je crée avec la bibliothèque Pandas

J'ai du mal à comprendre le résultat de cette dernière ( qui me semble pourtant simple arf ) alors je vous l'expose. D'autre part je n'ai pas encore appris comment utiliser le module re donc je fais cela avec des for et des if !

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
#Recherche d'un terme dans une phrase ' député ' ou 'sénateur'
def dep_sen (phrase):
        a=0
        mots = ["Député","Députe","Deputé","Depute","député","deputé","députe","depute","Sénateur","Senateur","sénateur","senateur"]
        for i in mots:

            if i in phrase:
                a+=1
#Ce print est fait pour tester ma fonction 
                print (i)
        print ('Il y a donc {} occurence(s)'.format(a))

or quand j'écris dep_sen ("députédeputedeputeSénateur ") il ne me trouve pas le bon nombre d’occurrence ( il s'arrête à 3 et parfois il en oublie … ) j'ai essayé bcp de choses mais j'ai l'impression que le compteur bloque à 3 et compte "mal" Et je ne comprends pas pourquoi.

Je vous remercie

Je m'excuse à l'avance si la solution est simple mais cela fait 2 jours et je n'ai toujours pas trouvé de solution.

+0 -0
Auteur du sujet

Merci pour la piste

En te répondant ( j'aillais te dire "oui mais j'utilise for qui itère à chaque fois") ça a fait tilt.

A chaque itération de "i" dans 'for' je cherche le mot mais une fois que ce mot est passé je ne revient plus en arrière et ma fonction ne le reverra plus même s'il est présent, d’où les résultats aberrants que je trouvais …

Merci beaucoup !!!

+0 -0
Staff

Pour rechercher un ensemble arbitrairement grand de mots-clés dans un corpus de texte, et de façon insensible à la casse, t'embête pas avec re, c'est un boulot parfait pour Aho-Corasick !

Édité par nohar

I was a llama before it was cool

+1 -0
Vous devez être connecté pour pouvoir poster un message.
Connexion

Pas encore inscrit ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte