Je commence tout juste à utiliser NLTK et je ne comprends pas très bien comment obtenir une liste de mots à partir d'un texte. Si j'utilise nltk.word_tokenize()
, j'obtiens une liste de mots et de ponctuation. Je n'ai besoin que des mots à la place. Comment puis-je me débarrasser de la ponctuation? Aussi word_tokenize
ne fonctionne pas avec plusieurs phrases: points sont ajoutés au dernier mot.
word_tokenize()
ne fonctionne pas avec plusieurs phrases. Pour vous débarrasser de la ponctuation, vous pouvez utiliser une expression régulière ou une isalnum()
fonction de python .
>>> 'with dot.'.translate(None, string.punctuation) 'with dot'
(note dot pas à la fin du résultat) Il peut causer des problèmes si vous avez des choses comme 'end of sentence.No space'
, dans ce cas , faire à la place: the_text.translate(string.maketrans(string.punctuation, ' '*len(string.punctuation)))
qui remplace la ponctuation par des espaces blancs.
nltk.word_tokenize(the_text.translate(None, string.punctuation))
devrait fonctionner en python2 alors qu'en python3 vous pouvez le fairenltk.work_tokenize(the_text.translate(dict.fromkeys(string.punctuation)))
.