Tout est dans le titre.
Toute info. est la bienvenue.
Tout est dans le titre.
Toute info. est la bienvenue.
Bonjour,
Tu peux récupérer les mots d'une chaîne avec str.split() :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 >>> for mot in 'pouet prout plop'.split(): ... print mot ... pouet prout plop
Bonjour,
Selon la nature du texte, ce qui sépare les mots peut être plus varié qu'un simple espace. Auquel cas, je propose plutôt de passer par les expressions régulières.
Par exemple:
Le motif ici veut dire:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 import re motif = r"[ ]*[,;:.!? ][ ]*" print re.split(motif, "aaa , bbb;ccc. ddd, eee fff") ['aaa', 'bbb', 'ccc', 'ddd', 'eee', 'fff']
- espace: zéro ou plus
- l'un des caractères suivants: ,;:.!? ou un espace
- espace: zéro ou plus
Si c'est du texte littéraire, il y a d'autres problèmes. Par exemple, l'apostrophe peut être soit un séparateur situé entre un article et un mot (ex: l'artiste) soit faire partie d'un mot (ex: aujourd'hui). Il faut voir aussi si on veut traiter les traits d'union de fin de ligne. Etc...
Tyrtamos
Il est possible de faire un regex plus simple grace au \b (word-boundary).
Ou encore, en incluant les apostrophes dans un mot
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 >>> import re >>> pat = re.compile(r'\b\w+\b') >>> motif = "Salut l'ami, comment va,pense;a-aller=chez)ton\nfrere" >>> pat.findall(motif) ['Salut', 'l', 'ami', 'comment', 'va', 'pense', 'a', 'aller', 'chez', 'ton', 'frere']
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 >>> pat = re.compile(r"\b[\w']+\b") >>> pat.findall(motif) ['Salut', "l'ami", 'comment', 'va', 'pense', 'a', 'aller', 'chez', 'ton', 'frere']
Moi je ne comprends pas ce que signifie "avancer mot par mot".
Surtout le terme "avancer..."
Vos codes n'avancent pas, il renvoient chacun une liste.
S'agit il de faire quelque chose du genre
for mot in texte: sans traitement préalable du type split() pour isoler les mots ?
Ou bien de déterminer la liste des mots d'un texte par un traitement comme vous les proposez ?
On sait tous les difficultés que posent des problèmes liés au langage, surtout des problèmes posés de façon trop générale et floue: «Selon la nature du texte, ce qui sépare les mots peut être plus varié qu'un simple espace» tyrtamos
Je ne comprends pas qu'on puisse essayer de répondre à une question aussi vague. Ou mal posée.
Ceci dit sans vouloir froisser personne
Partager