ImportError: cannot import name PunktWordTokenizer

ImportError: cannot import name PunktWordTokenizer

我在尝试使用 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。为此需要一些帮助。

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 版本。

PunktWordTokenizer 之前曾向用户公开过,但现在不再公开了。您可以使用 WordPunctTokenizer。

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

区别是:

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

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

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