nltk 的分词器错误
我刚开始学习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 个回答
亚当的回答可能对你现在遇到的“分词器”问题是正确的。这里有一些一般性的建议:
当你在不熟悉的领域时,阅读一些路标是很有帮助的,比如在下载页面顶部的这段话:“虽然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
>>>
而且不要凭记忆输入;使用复制/粘贴。
面对问题时,先计划一下可能的原因。首先查看那些可能性高且调查成本低的原因(比如拼写错误或其他抄写错误)。我记不清在哪看到过这个建议,但值得记住:“在你指责上天的安排和比尔·盖茨的行为之前,先检查一下自己的行为。”
看起来nltp这个包里没有tokenizer
这个包。
在NLTK的网站上简单一看,似乎你需要的是from nltp.tokenize import *
这个写法。