python-2.7 - 在 NLTK 中导入 compat 错误并使用 BrowServer 浏览 NLTK Wordnet 数据库以进行词形还原

标签 python-2.7 nltk backwards-compatibility trac lemmatization

此处用例的扩展 - NLTK words lemmatizing

我的电脑上安装了 nltk(包括书中的所有模块和语料库)。我的用例是探索和对比我的数据集的一些词形还原和词干提取方法(我尝试了 Porter 词形还原,效果很好)

我正在尝试使用 Wordnet 的词形还原,如@Chthonic Project 此处所述NLTK words lemmatizing .但是它指向的源代码(参见此处 http://nltk.org/_modules/nltk/app/wordnet_app.html)需要来自 nltk 的兼容模块。

from nltk import compat
ImportError: cannot import name compat

我在谷歌上搜索了 compat 的导入错误(它看起来像兼容?),这是我在我的 ubuntu 机器上尝试过的:-

sudo 查找。 -name compat* 返回以下文件。我还尝试了 sudo find -name "trac"-type d 什么都不返回。

我看到我应该在同样的文件夹/usr/lib/python2.4/site-packages/Trac-0.11.1-py2.4.egg 中找到一些带有“trac/tests/functional/fixes”的模块/trac/测试/功能/

来源:http://biodegradablegeek.com/2008/08/workaround-for-importerror-cannot-import-name-compat-issue-in-trac-011x/#sthash.NhAThk6e.dpuf

问题:

<强>1。我错过了什么? 这是 trac/tests 的问题吗?

<强>2。有没有一种方法可以使用 wordnet 进行词形还原(from nltk.corpus import wordnet as wn works just fine. Post import error is solved, how do I use this module http://nltk.org/_modules/nltk/app/wordnet_app.html(我试图从此页面在本地构建源代码,即文件 browserver.py,当我使用 compat 遇到导入错误时)

提示:如果您提供解决方案,请同时说明如何在我的 windows 环境中解决这个问题(我同时使用 windows 和 ubuntu,具体取决于上下文)

我从 find 看到的文件。 -名称兼容*

ekta@ekta-VirtualBox:/usr/lib/python2.7$ sudo find . -name compat*
./dist-packages/numpy/numarray/compat.pyc
./dist-packages/numpy/numarray/compat.py
./dist-packages/numpy/distutils/compat.pyc
./dist-packages/numpy/distutils/compat.py
./dist-packages/numpy/compat
./dist-packages/numpy/oldnumeric/compat.pyc
./dist-packages/numpy/oldnumeric/compat.py
./dist-packages/twisted/python/compat.pyc
./dist-packages/twisted/python/compat.py
./dist-packages/gtk-2.0/gtk/compat.pyc
./dist-packages/gtk-2.0/gtk/compat.py

我在 python 2.7 上

最佳答案

在 NLTK 中使用 WordNet(实际上是 Morphy)进行词形还原很简单:

from nltk.corpus import wordnet as wn

wn.morphy('runs') # "run"
wn.morphy('leaves') # "leaf"

wordnet_app 是一个 WordNet 浏览器,而不是 NLTK WordNet API:您不需要它! Chthonic 项目讨论的是派生相关形式,而不是词形还原,这是两个不同的东西。

顺便说一句,你在 wordnet_appcompat 上遇到的问题是你复制了一个与你的 nltk 发行版不兼容的文件的最新版本(compat 是一个最近的 NLTK 模块灵感来自六个有助于过渡到 Python 3.)。如果您需要 wordnet_app,请不要复制源代码,只需使用 NLTK 发行版中的版本即可!)

关于python-2.7 - 在 NLTK 中导入 compat 错误并使用 BrowServer 浏览 NLTK Wordnet 数据库以进行词形还原,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18430183/

相关文章:

python - 代码在 Python 3 中运行,而不是在 Python 2 中运行

python - 从 df.columns 中删除非英语单词

python - NLTK 命名实体识别数据集中的列

python - 绕过错误并继续代码

python - 如何将文件的内容写入python中的列表?

python - 结合 Tkinter 和 win32ui 使 Python 在退出时崩溃

python - NLTK RegEx Chunker 不使用通配符捕获定义的语法模式

c# - WCF 服务 - 向后兼容性问题

pandas - 我们应该使用 pandas.compat.StringIO 还是 Python 2/3 StringIO?

android - 如何使用适用于 Gingerbread 和 Froyo 的 ICS UI 创建 Android 应用程序?