Я тільки починаю використовувати 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))).