Я тільки починаю використовувати NLTK і не зовсім розумію, як отримати список слів з тексту. Якщо я використовую nltk.word_tokenize()
, я отримую список слів і розділові знаки. Мені потрібні лише слова. Як я можу позбутися пунктуації? Також word_tokenize
не працює з кількома реченнями: крапки додаються до останнього слова.
word_tokenize()
не працює з кількома реченнями. Щоб позбутися пунктуації, ви можете використовувати регулярний вираз або isalnum()
функцію пітона .
>>> '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)))
.