Я прошу прощения за новичок в этом вопросе - я пытался выяснить, как Python упаковывает и использует пространства имен, но тонкости, кажется, ускользают от меня.Я бы хотел использовать оболочку Python для тега части речи Стэнфорда.У меня не было проблем с поиском документации здесь , в которой приведен пример использования:
st = StanfordTagger('bidirectional-distsim-wsj-0-18.tagger')
st.tag('What is the airspeed of an unladen swallow ?'.split())
[('What', 'WP'), ('is', 'VBZ'), ('the', 'DT'), ('airspeed', 'NN'), ('of', 'IN'), ('an', 'DT'), ('unladen', 'JJ'), ('swallow', 'VB'), ('?', '.')]
Это выглядит великолепно, но я не могу найти правильные пространства имен для отображения в моемлокальная установка Python + NLTK (у меня последняя версия NLTK, и я попробовал нижеприведенное в Python 2.6.x, а также 2.7.x):
>>> import nltk
>>> from nltk import *
>>> from nltk.tag import stanford
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: cannot import name stanford
Я также пробовал этот оператор импорта, с тем же результатом:
>>> from nltk.tag.stanford import StanfordTagger
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named stanford
При поиске здесь на SO, я нашел этот вопрос , где у автора, похоже, возникла та же самая проблема, но он может пройти через шаг пространства имен с помощью:
Проблема в том, что моя библиотека nltk не содержит модуль Стэнфорда.Поэтому я скопировал то же самое в соответствующую папку и скомпилировал то же самое.
Похоже, что это действительно та же проблема, за исключением того, что я не могу найти документацию о том, как добавить модули в NLTK.Все, что я читаю на веб-сайте NLTK, подразумевает, что модуль Stanford уже должен быть включен в базовую установку.Итак, вопрос состоит из двух частей:
- (Конкретно) Есть какие-либо предложения по преодолению этой конкретной проблемы и началу использования StanfordTagger из Python?Я знаю, что могу легко вызвать jar напрямую, а затем интерпретировать вывод в Python - это все, что делает Python-оболочка в любом случае - но я бы хотел, чтобы это работало из принципа, если ничего больше.
- (Общие сведения) Каков хороший питонический подход к исследованию отсутствующих проблем с упаковкой или зависимостей, таких как выше?