3

此处对用例的扩展- NLTK 单词词形还原

我在我的计算机上安装了 nltk(包含书中的所有模块和语料库)。我的用例是为我的数据集探索和对比一些词形还原和词干提取方法(我尝试了 Porter lemmatization,它奏效了)

我试图使用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 盒子上尝试的: -

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

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

来源: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 工作得很好。发布导入错误已解决,我该如何使用这个模块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

4

1 回答 1

3

在 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 Project 谈论的是派生相关的形式,而不是词形还原,这是两个不同的东西。

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

于 2013-08-26T09:04:22.007 回答