Я только начинаю использовать NLTK и не совсем понимаю, как получить список слов из текста. Если я использую nltk.word_tokenize()
, я получаю список слов и знаков препинания. Вместо этого мне нужны только слова. Как избавиться от знаков препинания? Также word_tokenize
не работает с несколькими предложениями: к последнему слову добавляются точки.
word_tokenize()
не работает с несколькими предложениями. Чтобы избавиться от знаков препинания, вы можете использовать регулярное выражение или isalnum()
функцию Python .
>>> 'with dot.'.translate(None, string.punctuation) 'with dot'
(обратите внимание на отсутствие точки в конце результата). Это может вызвать проблемы, если у вас есть такие вещи, как 'end of sentence.No space'
, в этом случае, сделайте это вместо: the_text.translate(string.maketrans(string.punctuation, ' '*len(string.punctuation)))
который заменяет все знаки препинания пробелами.
nltk.word_tokenize(the_text.translate(None, string.punctuation))
должен работать в python2, а в python3 вы можетеnltk.work_tokenize(the_text.translate(dict.fromkeys(string.punctuation)))
.