Почему nltk word_tokenize не работает даже после выполнения nltk.download и все пакеты установлены правильно? - PullRequest
0 голосов
/ 05 апреля 2020

Я использую python 3,7 64 бит. nltk версии 3.4.5.

Когда я пытаюсь преобразовать text6 в nltk.book в токены, используя word_tokenize, я получаю сообщение об ошибке.

import nltk
from nltk.tokenize import word_tokenize
from nltk.book import *
tokens=word_tokenize(text6)

код выполняется в режиме ожидания 3.7

Ниже приведена ошибка при выполнении последнего оператора.

    Traceback (most recent call last):
  File "<pyshell#4>", line 1, in <module>
    tokens=word_tokenize(text6)
  File "C:\Users\admin\AppData\Local\Programs\Python\Python37\lib\site-packages\nltk\tokenize\__init__.py", line 144, in word_tokenize
    sentences = [text] if preserve_line else sent_tokenize(text, language)
  File "C:\Users\admin\AppData\Local\Programs\Python\Python37\lib\site-packages\nltk\tokenize\__init__.py", line 106, in sent_tokenize
    return tokenizer.tokenize(text)
  File "C:\Users\admin\AppData\Local\Programs\Python\Python37\lib\site-packages\nltk\tokenize\punkt.py", line 1277, in tokenize
    return list(self.sentences_from_text(text, realign_boundaries))
  File "C:\Users\admin\AppData\Local\Programs\Python\Python37\lib\site-packages\nltk\tokenize\punkt.py", line 1331, in sentences_from_text
    return [text[s:e] for s, e in self.span_tokenize(text, realign_boundaries)]
  File "C:\Users\admin\AppData\Local\Programs\Python\Python37\lib\site-packages\nltk\tokenize\punkt.py", line 1331, in <listcomp>
    return [text[s:e] for s, e in self.span_tokenize(text, realign_boundaries)]
  File "C:\Users\admin\AppData\Local\Programs\Python\Python37\lib\site-packages\nltk\tokenize\punkt.py", line 1321, in span_tokenize
    for sl in slices:
  File "C:\Users\admin\AppData\Local\Programs\Python\Python37\lib\site-packages\nltk\tokenize\punkt.py", line 1362, in _realign_boundaries
    for sl1, sl2 in _pair_iter(slices):
  File "C:\Users\admin\AppData\Local\Programs\Python\Python37\lib\site-packages\nltk\tokenize\punkt.py", line 318, in _pair_iter
    prev = next(it)
  File "C:\Users\admin\AppData\Local\Programs\Python\Python37\lib\site-packages\nltk\tokenize\punkt.py", line 1335, in _slices_from_text
    for match in self._lang_vars.period_context_re().finditer(text):
TypeError: expected string or bytes-like object

Пожалуйста, помогите. Заранее спасибо.

В процессе устранения неполадок я создал образец объекта nltk.text.Text и попытался токенизировать его с помощью nltk.word_tokenize. Тем не менее я получаю ту же ошибку. Пожалуйста, смотрите скриншот ниже. enter image description here

Но при вызове nltk.word_tokenize () для строки он работает.

>>> tt="Python is a programming language"
>>> tokens2=nltk.word_tokenize(tt) #Not throwing error
>>> type(tt)
<class 'str'>
>>> type(text6)
<class 'nltk.text.Text'>
>>> 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...