Erro导入“ PunktWordTokenizer”

时间:2019-04-13 09:54:47

标签: python-3.x nltk

我正在尝试使用nltk.tokenize标记句子,但是在运行代码时发生以下错误:

  

无法导入名称“ PunktWordTokenizer”。

我试图从其他来源找到解决方案,但无法提出任何解决方案。我尝试使用github-issue,但没有成功。

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

我希望使用标记化的句子,但是发生了错误。

1 个答案:

答案 0 :(得分:1)

不清楚您想要哪个标记器。不再有一个叫做PunktWordTokenizer的人。它是内部的,不打算公开。这就是为什么您不能导入该名称的原因。名称最接近的两个类称为WordPunctTokenizerPunktSentenceTokenizer

输入正确的名称,它将起作用:

>>> 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."]