python-3.x - 导入 'PunktWordTokenizer' 时出错

标签 python-3.x nltk

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

cannot import name 'PunktWordTokenizer'.



我试图从不同来源找到解决方案,但找不到任何解决方案。我尝试使用 github-issue但没有成功。
from nltk.tokenize import PunktWordTokenizer
tokenizer = PunktWordTokenizer()
tokenizer.tokenize("Can't is a contraction.")

我期望标记化的句子,但发生了错误。

最佳答案

目前尚不清楚您想要哪个标记器。没有一个叫 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."]

关于python-3.x - 导入 'PunktWordTokenizer' 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55664213/

相关文章:

python - 使用 NLTK 进行文本预处理

python Tornado 处理程序 IO 阻塞整个服务器网络

python-3.x - Python 3 将 ISO 8601 转换为毫秒

python - python 实现中的 Strassen 算法错误

python - 如何使用 Pattern 对西类牙语单词进行词形还原?

machine-learning - mteval-v13a.pl 和 NLTK BLEU 有什么区别?

python-2.7 - 合并生成器对象以计算 NLTK 中的频率

python - 波斯语 NLTK

python - pickle.load - EOFError : Ran out of input

python-3.x - 如何在Python脚本中提取变量而不执行它?