【问题标题】:tokenizer errors with nltknltk 的标记器错误
【发布时间】:2010-12-12 10:26:34
【问题描述】:

我对 Python 很陌生,正在尝试结合使用 nltk 来学习。

我一直在关注一些示例并进行测试,但由于 python 返回错误,我能做的似乎非常有限。

我知道 nltk 已安装并且导入正常,因为此代码有效

从 nltk.sem 导入 chat80 打印 chat80.items

但是,'from nltk.tokenizer import *' 返回

'文件“标准输入”,第 1 行。 
使用任何类型的“TOKEN =”或我猜测任何东西的标记化时,我都会遇到类似的错误。

这几天我已经安装了很多次 python,希望不同的版本或更好的安装可能会有所帮助。

我在 windows7 上使用 activePython2.6 时遇到了这个错误,虽然我也遇到过类似的错误 ors 与 python 3.1 activePython3.1 和 Python 2.6。 以及带有 Python 2.5 的 Mac OSx 10.5。

Mac 正在提供更多数据,显示“导入错误:没有名为 tokenizer 的模块。

我只是在尝试一些在线 nltk 的介绍性演示,甚至还没有尝试编写自己的代码,而且我得到的错误多于成功。

【问题讨论】:

    标签: python nltk


    【解决方案1】:

    Adam 的回答对于您直接的“标记器”问题可能是正确的。以下是一些一般性建议:

    在不熟悉的领域阅读路标会很有帮助,例如路标。下载页面顶部的这个:“”“虽然现在可以使用 Python 3.0,但 NLTK 需要的许多包都没有 Python 3.0 的发行版。现在您应该将 NLTK 与 Python 2.4 一起使用。, 2.5。 em>,或仅 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
    >>>
    

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

    遇到问题时,请计划好调查可能的原因。首先查看那些具有高合理性和低成本调查(例如拼写错误或其他转录错误)的内容。我不记得我在哪里读到这条建议了,但值得记住的是:“在你责备上帝的行为和盖茨的行为之前,先检查一下自己的行为”。

    【讨论】:

    • 虽然你是对的 John,但我确实通读了文档,但一直遇到 nltk 或 easy_install 的问题,或者我在“打印”或“2”基础之外所做的几乎任何其他事情+ 2' 在 python 中。这就是为什么我要安装不同的版本来看看我是否可以让一个工作,以及为什么我最终坚持在 PC 上使用 2.6 和在 Mac 上使用 2.5,而其他一切都失败了。在我看过的所有代码示例中,甚至在 nltk 组中也经常使用“标记器”。因此我尝试使用它而不是标记化。
    • @pedalpete:你说你读过文档。再看看http://nltk.googlecode.com/svn/trunk/doc/api/index.html ...你看到一个tokenizer模块还是一个tokenize模块?您在另一条评论中提到的那篇 developerworks 文章已有 5 年以上的历史了。快速浏览一下 svn repo 会显示 nltk-old 中的标记器,上面有 2004 年的日期。提示:始终遵循当前文档告诉您的内容,而不是您在网络上挖掘的内容。预计项目将经历重大变化,并存在严重的向后兼容性问题。顺便说一句,您浏览过网站上的 HOWTO 部分吗?
    【解决方案2】:

    看起来 nltp 包没有 tokenizer 包。

    在 NLTK 网站上的快速浏览表明 from nltp.tokenize import * 是您所追求的。

    【讨论】:

    • 谢谢亚当。正如我在许多示例中看​​到的那样,我正在使用“tokenizer”,例如“nltk 入门”ibm.com/developerworks/linux/library/l-cpnltk.html - 尝试定义 Token 时使用 tokenize 而不是 tokenizer 失败。所以我在想也许有一些东西可以标记而不是标记。
    猜你喜欢
    • 2015-03-25
    • 2011-04-25
    • 1970-01-01
    • 2013-03-13
    • 2015-03-23
    • 1970-01-01
    • 2016-06-23
    • 1970-01-01
    • 2013-01-08
    相关资源
    最近更新 更多