ошибка импорта для совместимости в NLTK и использования BrowServer для просмотра базы данных NLTK Wordnet для лемматизации

Расширение для варианта использования - лемматизация слов NLTK

У меня на компьютере установлен nltk (со всеми модулями и корпусом из книги). Мой вариант использования - изучить и сопоставить некоторые подходы к лемматизации и стеммингу для моего набора данных (я попробовал лемматизацию Портера, которая сработала)

Я пытался использовать лемматизацию с Wordnet, как описано в @Chthonic Project здесь Лемматизация слов NLTK. Однако исходный код, на который он указывает (см. Здесь http://nltk.org/_modules/nltk/app/wordnet_app.html), требуется совместимый модуль от nltk.

from nltk import compat
ImportError: cannot import name compat

Я искал в Google ошибку импорта compat (и это выглядело как совместимость?) И вот что я пробовал на своем ящике ubuntu: -

sudo find. -name compat *, который возвращает файлы, указанные ниже. Я также пробовал sudo find -name "trac" -type d, который ничего не возвращает.

Я вижу, что мне следовало найти несколько модулей с «trac / tests /function / fixes» в аналогичной папке /usr/lib/python2.4/site-packages/Trac-0.11.1-py2.4.egg/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 для лемматизации (из nltk.corpus import wordnet, поскольку wn работает нормально. Ошибка импорта решена, как использовать этот модуль http://nltk.org/_modules/nltk/app/wordnet_app.html (я пытался создать источник локально с этой страницы, то есть файл browserver.py, когда я нажимаю ошибку импорта с помощью compat)

Совет: Если вы предоставляете решение, также укажите, как решить эту проблему в моей среде Windows (я использую как окна, так и Ubuntu взаимозаменяемо, в зависимости от контекста)

Файлы, которые я вижу в поиске. -name compat *

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


person ekta    schedule 25.08.2013    source источник


Ответы (1)


Лемматизировать с помощью WordNet (на самом деле Morphy) в NLTK просто:

from nltk.corpus import wordnet as wn

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

wordnet_app - это браузер WordNet, а не NLTK WordNet API: он вам не нужен! Chthonic Project говорил о деривационных формах, а не о лемматизации, а это две разные вещи.

Кстати, проблема, с которой вы столкнулись с wordnet_app и compat, заключается в том, что вы скопировали последнюю версию файла, несовместимую с вашим дистрибутивом nltk (compat - это недавний модуль NLTK, созданный на основе шести, который помогает перейти на Python 3.). Если вам нужен wordnet_app, не копируйте исходный код, просто используйте версию в вашем дистрибутиве NLTK!)

person Quentin Pradet    schedule 26.08.2013
comment
Последующий вопрос 1), если бы я использовал формы, связанные с производными, - получу ли я один источник, такой как Анализ, Аналитик, Анализ, все будут иметь одинаковую основу (или это разные вопросы вместе? 2. Как мне использовать wordnet_app для python 2.7 - не могли бы вы привести простой пример? 3. wn.morphy ('анализ'), wn.morphy ('аналитик'), wn.morphy ('анализировать') - не решайте здесь мою проблему. Мне нужен ствол (и предполагал, что лемматизация должна дать мне это?) - person ekta; 26.08.2013
comment
ре. Q1: Я считаю, что производно связанные формы - это скорее сеть, чем дерево - все они не сводятся к одному единственному исходному слову, а скорее являются связанными словами (даже если у них есть общий лексический корень, который может не быть слово само по себе). ре. Q3 .: для разъяснения по поводу стемминга и лемматизации (морфи () лемматизация) взгляните на nlp.stanford.edu/IR-book/html/htmledition/, особенно абзац, начинающийся с Однако, эти два слова различаются по своему вкусу. Под стеммингом обычно понимается .... Учитывая это, просьба пояснить ваш вопрос! :) - person arturomp; 26.08.2013