ImportError:无法导入名称PunktWordTokenizer

时间:2017-05-29 09:20:33

标签: python nltk importerror

我试图使用PunktWordTokenizer,发生了如下错误。

from nltk.tokenize.punkt import PunktWordTokenizer

这会出现以下错误消息。

Traceback (most recent call last): File "file", line 5, in <module>
from nltk.tokenize.punkt import PunktWordTokenizer ImportError: cannot import name PunktWordTokenizer

我已经检查过安装了nltk,并且还使用nltk.download()安装了PunkWordTokenzer。需要一些帮助。

先谢谢

2 个答案:

答案 0 :(得分:2)

在3.0.2中似乎存在与PunktWordTokenizer相关的回归。该问题在3.0.1中不存在,回滚到该版本或更早版本修复了该问题。

>>> import nltk
>>> nltk.__version__
'3.0.2'
>>> from nltk.tokenize import PunktWordTokenizer
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: cannot import name PunktWordTokenizer

要解决此问题,请尝试pip install -U nltk升级您的NLTK版本。

答案 1 :(得分:0)

PunktWordTokenizer以前向用户公开,但不再公开。您可以使用WordPunctTokenizer。

from nltk.tokenize import WordPunctTokenizer
WordPunctTokenizer().tokenize(“text to tokenize”)

区别是:

PunktWordTokenizer对标点符号进行拆分,但将其与单词保持一致。其中,如WordPunctTokenizer将所有标点符号拆分为单独的标记。

例如,给定输入:这是一个测试

PunktWordTokenizer: [‘This’, “‘s”, ‘a’, ‘test’]
WordPunctTokenizer: [‘This’, “‘”, ‘s’, ‘a’, ‘test’]