NLTK – No hay módulo llamado corpus

Después de instalar NLTK y NLTK-DATA con PIP, ejecuto python y luego escribo desde nltk.corpus import cmudict y funciona. Pero cuando escribí un guión como este:

from nltk.corpus import cmudict d = cmudict.dict() def nsyl(word): return [len(list(y for y in x if y[-1].isdigit())) for x in d[word.lower()]] print nsyl("hello") 

Tengo el siguiente error:

 Traceback (most recent call last): File "nltk.py", line 1, in  from nltk.corpus import cmudict File "nltk.py", line 1, in  from nltk.corpus import cmudict ImportError: No module named corpus 

Cómo puedo arreglar esto ?

Gracias por adelantado

Desde su stack de seguimiento: File "nltk.py", line 1, in , ha llamado a su archivo nltk.py. Cuando Python busca un módulo, primero busca en el directorio actual y tiene “nltk.py” allí. Importará esto como nltk, y como su código no define corpus, no puede encontrar nltk.corpus .

Para solucionar este problema, debe cambiar el nombre de su archivo a otra cosa, digamos nltkexperience.py . También asegúrese de eliminar “nltk.pyc” de su directorio si existe, ya que esto también se cargará (es la versión comstackda en bytes de su código). Después de eso, debería funcionar bien.

Como han señalado otros, este parece ser un caso de desajuste de versión. Si tiene varias versiones de Python instaladas, asegúrese de que la que instaló NLTK es la que se está utilizando al ejecutar el script.

Como ejemplo, tengo Python 2.7, Python 3.3 y Anaconda Python (2.7) instalados. Mi shell por defecto es Anaconda (y su pip, por ejemplo). Entonces, cuando instalo algo a través de pip y lo ejecuto en la línea de comandos, funciona. Al mismo tiempo, mi Vim está comstackdo para usar el sistema Python, y no ve las instalaciones / bibliotecas de Anaconda. Entonces, si desde Vim ejecuto Python, obtendré un error que indica que no se encuentra la biblioteca que instalé.

Espero que esto ayude.