无需安装即可使用NLTK

时间:2012-08-28 20:11:07

标签: python nlp nltk

使用Natural Language Toolkit学习Python非常有趣,它们在我的本地计算机上运行良好,但我必须安装几个软件包才能使用它。究竟NLTK资源现在如何集成到我的系统中对我来说仍然是一个谜,尽管看起来很明显NLTK源代码不仅仅是坐在Python解释器知道找到它的地方。

我想在我的网站上使用工具包,该工具包由另一家公司托管。只需将NLTK源代码文件上传到我的服务器并告诉根目录中的脚本“import nltk”就行不通了;我有点怀疑它会。

然后,NLTK安装例程和简单导入之间的区别是什么?为什么工具包不能直接导入?有没有办法使用NLTK源文件而基本上不改变主机的Python?

非常感谢您的想法和笔记。 -G

3 个答案:

答案 0 :(得分:1)

假设你有一个位于/some/dir/的NLTK源,那么

dhg /some/dir/$ ls nltk
...
app
book.py
ccg
chat
chunk
classify
...    

您可以从找到nltk源目录的目录中启动python解释器:

dhg /some/dir/$ python
Python 2.7.1 (r271:86882M, Nov 30 2010, 10:35:34) 
>>> import nltk

或者您可以将其位置添加到PYTHONPATH环境变量,这样可以从任何地方获取NLTK:

dhg /whatever/$ export PYTHONPATH="$PYTHONPATH:/some/dir/"
dhg /whatever/$ python
Python 2.7.1 (r271:86882M, Nov 30 2010, 10:35:34) 
>>> import nltk

任何其他依赖项,包括NLTK所依赖的依赖项,也可以以相同的方式添加到PYTHONPATH

答案 1 :(得分:1)

您不仅需要PYTHONPATH上的NLTK(作为@dhg points out),还需要它具有的任何依赖性;快速本地测试表明这只是PyYAML。您应该使用pip来安装软件包。与尝试手动找出所有依赖关系并相应地调整PYTHONPATH相比,它更不容易出错。如果这是您无权运行pip安装的共享主机,则应要求主持人为您执行此操作。

要解决更常见的“无论安装脚本正在做什么”部分问题:大多数Python软件包都是使用setup.py进行管理的,distutils构建于setuputils之上(有时{{1} }})。如果这是您真正感兴趣的内容,请查看The Hitchhiker’s Guide to Packaging

答案 2 :(得分:1)

您不需要系统安装支持,只需要python可以找到它们的正确模块。我已经设置了没有系统安装权限的NLTK而且遇到了相对较少的麻烦 - 但我确实有命令行访问权限,所以我可以看到我在做什么。

要实现这一点,您应该将本地安装放在您 控制的计算机上 - 最好是一个从未安装过NLTK的计算机,因为您可能已经忘记(或不知道)什么是为您配置。找到所需内容后,将捆绑包复制到托管计算机。但此时,请检查您是否正在使用适合Web服务器架构的模块版本。 Numpy特别具有不同的32/64位版本,IIRC。

了解如何查看来自托管计算机的错误消息也值得您花些时间。如果默认情况下看不到它们,您可以捕获ImportError并显示它包含的消息,或者您可以重定向stderr ...这取决于您的配置。