nltk 的分词器错误

0 投票
2 回答
4730 浏览
提问于 2025-04-15 15:36

我刚开始学习Python,想和nltk一起学习。

我跟着一些例子在试验,但似乎因为Python返回的错误,我能做的事情非常有限。

我知道nltk已经安装好了,而且导入也没问题,因为这段代码可以正常运行:

from nltk.sem import chat80
print chat80.items

但是,当我用'from nltk.tokenizer import *'时,返回了这个错误:

'File "stdin", line1. 
。我在使用任何形式的"TOKEN="或者我猜的任何分词操作时,都会遇到类似的错误。

这几天我已经安装了好几次Python,希望换个版本或者更好的安装方式能解决问题。

我在Windows 7上使用activePython 2.6时遇到这个错误,不过我在Python 3.1的activePython 3.1和Python 2.6上也遇到过类似的错误。

在Mac OS X 10.5上使用Python 2.5时也有类似情况。

在Mac上,错误信息提供了更多信息:“导入错误:没有名为tokenizer的模块。”

我只是尝试一些网上的nltk入门演示,甚至还没开始写自己的代码,但遇到的错误比成功的多。

2 个回答

0

亚当的回答可能对你现在遇到的“分词器”问题是正确的。这里有一些一般性的建议:

当你在不熟悉的领域时,阅读一些路标是很有帮助的,比如在下载页面顶部的这段话:“虽然Python 3.0现在已经发布,但许多NLTK所需的包并没有Python 3.0的版本。目前你应该使用Python 2.4、2.5或2.6。”……这会让你省去尝试Python 3.1的麻烦。而且,同时学习Python 2.x和3.x对初学者来说有点过于复杂。

“我在过去几天安装了很多次Python,希望不同的版本或更好的安装能有所帮助”……重复安装同一个版本通常不会有帮助。

“但是,from nltk.tokenizer import * 返回 File "stdin", line1”……在寻求帮助时,展示你的输入和所有输出,比如:

>>> from nosuchthing import *
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named nosuchthing
>>>

而且不要凭记忆输入;使用复制/粘贴。

面对问题时,先计划一下可能的原因。首先查看那些可能性高且调查成本低的原因(比如拼写错误或其他抄写错误)。我记不清在哪看到过这个建议,但值得记住:“在你指责上天的安排和比尔·盖茨的行为之前,先检查一下自己的行为。”

3

看起来nltp这个包里没有tokenizer这个包。

在NLTK的网站上简单一看,似乎你需要的是from nltp.tokenize import *这个写法。

撰写回答