Прошу прощения за новичковую природу этого вопроса - я пытался разобраться в упаковке Python и пространствах имен, но более тонкие моменты, кажется, ускользают от меня. В частности, я хочу использовать Python-обертку для Stanford part-of-speech tagger. Я без труда нашел документацию здесь, где приведен пример использования:
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 "", line 1, in
ImportError: cannot import name stanford
Я также попробовал этот оператор импорта, с тем же результатом:
>>> from nltk.tag.stanford import StanfordTagger
Traceback (most recent call last):
File "", line 1, in
ImportError: No module named stanford
Поискав здесь на SO, я нашел этот вопрос, где автор, похоже, испытывает точно такую же проблему, но смог обойти шаг с пространством имен:
Проблема в том, что моя библиотека nltk lib не содержит модуль stanford. Поэтому я скопировал его в соответствующую папку и скомпилировал.
Похоже, что это действительно та же проблема, только я не могу найти документацию о том, как добавлять модули в NLTK. Все, что я читал на сайте NLTK, говорит о том, что модуль Stanford уже должен быть упакован в базовую установку. Итак, вопрос из двух частей: