Ошибка при импорте PunktWordTokenizer - PullRequest
3 голосов
/ 13 апреля 2019

Я пытаюсь токенизировать предложения, используя nltk.tokenize, но при запуске кода возникает следующая ошибка:

не удается импортировать имя 'PunktWordTokenizer'.

Я пытался найти решение из разных источников, но не смог найти никакого решения.Я попытался использовать github-issue , но безуспешно.

from nltk.tokenize import PunktWordTokenizer
tokenizer = PunktWordTokenizer()
tokenizer.tokenize("Can't is a contraction.")

Я ожидал токенизированных предложений, но произошла ошибка.

1 Ответ

1 голос
/ 13 апреля 2019

Не ясно, какой токенизатор вы хотите.Там нет ни одного под названием PunktWordTokenizer больше.Он был внутренним и не должен был быть публичным.Вот почему вы не можете импортировать это имя.Два класса с именами, ближайшими к этому, называются WordPunctTokenizer и PunktSentenceTokenizer.

Импортируйте правильное имя, и оно будет работать:

>>> import nltk
>>> from nltk.tokenize import WordPunctTokenizer
>>> tokenizer = WordPunctTokenizer()
>>> tokenizer.tokenize("Can't is a contraction.")
['Can', "'", 't', 'is', 'a', 'contraction', '.']

Поскольку вы говорите, что ищете токенизированных предложений , тогда, может быть, это другое, которое вы хотите:

>>> from nltk.tokenize import PunktSentenceTokenizer
>>> tokenizer = PunktSentenceTokenizer()
>>> tokenizer.tokenize("Can't is a contraction.")
["Can't is a contraction."]
>>> tokenizer.tokenize("Can't is a contraction. So is hadn't.")
["Can't is a contraction.", "So is hadn't."]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...