我正在尝试使用 nltk.tokenize
标记句子,但运行代码时出现以下错误:
cannot import name 'PunktWordTokenizer'.
我试图从不同来源找到解决方案,但找不到任何解决方案。我尝试使用 github-issue但没有成功。
from nltk.tokenize import PunktWordTokenizer
tokenizer = PunktWordTokenizer()
tokenizer.tokenize("Can't is a contraction.")
我期望标记化的句子,但发生了错误。
最佳答案
目前尚不清楚您想要哪个标记器。没有一个叫 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."]
关于python-3.x - 导入 'PunktWordTokenizer' 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55664213/