word_tokenize ТипError: ожидаемая строка или буфер

При вызове word_tokenize появляется следующая ошибка:

 File "C:\Python34\lib\site-packages\nltk\tokenize\punkt.py", line 1322, in _slices_from_text for match in self._lang_vars.period_context_re().finditer(text): TypeError: expected string or buffer 

У меня есть большой текстовый файл (1500.txt), из которого я хочу удалить стоп-слова. Мой код выглядит следующим образом:

 from nltk.corpus import stopwords from nltk.tokenize import word_tokenize with open('E:\\Book\\1500.txt', "r", encoding='ISO-8859-1') as File_1500: stop_words = set(stopwords.words("english")) words = word_tokenize(File_1500) filtered_sentence = [w for w in words if not w in stop_words] print(filtered_sentence) 

One Solution collect form web for “word_tokenize ТипError: ожидаемая строка или буфер”

Вход для word_tokenize – это предложение потока документа, то есть список строк, например ['this is sentence 1.', 'that's sentence 2!'] .

File_1500 – это объект File не список строк, поэтому он не работает.

Чтобы получить список строк предложения, сначала вы должны прочитать файл как строковый объект fin.read() , а затем использовать sent_tokenize чтобы разделить предложение вверх (я предполагаю, что ваш входной файл не является предложением, токенированным, просто необработанным текстовый файл).

Кроме того, лучше / более идиоматично tokenize файл таким образом с NLTK:

 from nltk.corpus import stopwords from nltk.tokenize import word_tokenize, sent_tokenize stop_words = set(stopwords.words("english")) with open('E:\\Book\\1500.txt', "r", encoding='ISO-8859-1') as fin: for sent in sent_tokenize(fin.read()): words = word_tokenize(sent) filtered_sentence = [w for w in words if not w in stop_words] print(filtered_sentence) 
  • Приложение веб-сервера Bokeh в файле localhost для html
  • как я могу использовать remove для этого кода?
  • Как заменить несколько пробелов одним символом?
  • Python - преобразование sock.recv в строку
  • Максимальная глубина рекурсии превышена, но только при использовании декоратора
  • Ошибка при использовании Pandas pivot_table с полями = True
  • Получение более полезного вывода ошибок модуля «logging» в python
  • Управление расстоянием перетасовки
  • Python - лучший язык программирования в мире.