Instalando y utilizando StanfordTagger dentro de NLTK

Pido disculpas por la naturaleza de novato de esta pregunta. He estado tratando de averiguar el empaquetado y los espacios de nombres de Python, pero los puntos más finos parecen eludirme. Para empezar, me gustaría usar el envoltorio Python para el etiquetador de parte de discurso de Stanford. No tuve problemas para encontrar la documentación aquí , que proporciona un ejemplo de uso:

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'), ('?', '.')] 

Esto se ve muy bien, pero parece que no puedo obtener los espacios de nombres correctos para aparecer en mi instalación local de Python + NLTK (tengo la última versión de NLTK, y he intentado lo siguiente en Python 2.6.x y 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 

También probé esta statement de importación, con el mismo resultado:

 >>> from nltk.tag.stanford import StanfordTagger Traceback (most recent call last): File "", line 1, in  ImportError: No module named stanford 

Al buscar por aquí en SO, encontré esta pregunta , donde el póster parece estar experimentando el mismo problema, pero puede superar el paso del espacio de nombres con:

El problema es que mi nltk lib no contiene el módulo stanford. Así que copié lo mismo en la carpeta apropiada y compilé lo mismo.

Parece que es el mismo problema, excepto que no puedo, por mi vida, encontrar documentación sobre cómo agregar módulos a NLTK. Todo lo que leo en el sitio web de NLTK implica que el módulo de Stanford ya debería estar empaquetado en la instalación básica. Entonces, una pregunta en dos partes:

  1. (Específico) ¿Alguna sugerencia para superar este problema en particular y comenzar a usar StanfordTagger de Python? Sé que puedo llamar al jarro directamente y luego interpretar la salida en Python (eso es todo lo que hace el envoltorio de Python), pero me gustaría que esto funcionara por principio, y nada más.
  2. (General) ¿Cuál es un buen enfoque pythonic para investigar los problemas o dependencias de empaquetado faltantes como los anteriores?

Sugerencias: a. Busque en el directorio nltk instalado en su PC. Revisé el mío y stanford.py no está allí (es decir, falta en nltk / tag / directory). Puede encontrar rápidamente dónde buscar ejecutando esto:

 import distutils.sysconfig print distutils.sysconfig.get_python_lib()+'/nltk/tag/' 

segundo. Si no está allí, copie el archivo stanford.py de la fuente que mencionó en el directorio nltk / tag de su PC (que encontrará en el paso a).

Espero que funcione.