En supposant que votre définition de "mot" est d'accord avec celle du module d'expression régulière (re
), qui est, des lettres, des chiffres et underscores, il est facile:
import re
fullwords = re.findall(r'\w+', thetext)
où thetext
est la chaîne en question (par exemple, venant d'un f.read()
d'un objet fichier f
ouvert pour la lecture, si c'est là que vous obtenez votre texte).
Si vous définissez des mots différemment (par exemple vous voulez inclure des apostrophes, par exemple "c'est" sera considéré comme "un mot"), ce n'est pas beaucoup plus difficile - utilisez simplement le premier argument de findall
, par exemple r"[\w']+"
pour l'affaire apostrophe.
Si vous avez besoin d'être très, très sophistiqué (par exemple, traiter les langues qui utilisent pas de pauses entre les mots), le problème devient soudainement beaucoup plus difficile et vous aurez besoin d'un paquet tiers comme nltk.
Merci! Cela m'a vraiment aidé à résoudre le problème. J'ai regardé nltk mais malheureusement, en raison de la dépendance de l'installation de la bibliothèque C, je ne peux pas l'utiliser avec Google App Engine. – demos