【问题标题】:import error for compat in NLTK and using BrowServer for browsing the NLTK Wordnet database for lemmatizationNLTK 中 compat 的导入错误并使用 BrowServer 浏览 NLTK Wordnet 数据库进行词形还原
【发布时间】:2013-08-28 02:52:21
【问题描述】:

此处的用例扩展 - NLTK words lemmatizing

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

我试图使用 lemmatization with Wordnet,正如@Chthonic Project 在此处NLTK words lemmatizing 所述。但是它指向的源代码(见这里http://nltk.org/_modules/nltk/app/wordnet_app.html),需要来自nltk的compat模块。

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/tests/functional/

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

问题:

1.我错过了什么? 这是 trac/tests 的问题吗?

2。有没有办法可以使用 wordnet 进行词形还原(从 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 上

【问题讨论】:

    标签: python-2.7 nltk backwards-compatibility trac lemmatization


    【解决方案1】:

    在 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 发行版中的版本即可!)

    【讨论】:

    • 跟进问题 1)如果我要使用派生相关的形式 - 我会得到像“分析”、“分析师”、“分析”这样的单一来源都具有相同的“词干”(或者是那是一个不同的问题?2.我如何在 python 2.7 中使用 wordnet_app - 你能举一个简单的例子吗? 3. wn.morphy('analysis'), wn.morphy('analyst'),wn.morphy( 'analyze') - 不要在这里解决我的问题。我需要“stem”(并且假设 Lemmatization 应该给我那个?)
    • 重新。 Q1:我相信派生相关的形式更像是一个网络而不是一棵树——它们并不都归结为一个单一的源词,而是它们是相关的词(即使它们有一个可能不是一个共同的词根)词本身)。回覆。 Q3.:为了澄清词干与词形还原(morphy() 词形还原),请查看nlp.stanford.edu/IR-book/html/htmledition/…,尤其是以“但是,这两个词的风格不同。词干通常指...”开头的段落。鉴于此,请澄清您的问题! :)
    猜你喜欢
    • 2015-09-10
    • 2014-05-24
    • 2018-01-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-15
    • 1970-01-01
    相关资源
    最近更新 更多