我正在尝试使用nltk.tokenize
标记句子,但是在运行代码时发生以下错误:
无法导入名称“ PunktWordTokenizer”。
我试图从其他来源找到解决方案,但无法提出任何解决方案。我尝试使用github-issue,但没有成功。
from nltk.tokenize import PunktWordTokenizer
tokenizer = PunktWordTokenizer()
tokenizer.tokenize("Can't is a contraction.")
我希望使用标记化的句子,但是发生了错误。
答案 0 :(得分:1)
不清楚您想要哪个标记器。不再有一个叫做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."]