Вопрос:

NLTK - нет модуля с именем корпус

python nltk importerror

7383 просмотра

2 ответа

33 Репутация автора

После установки NLTK и NLTK-DATA с PIP я запускаю python, затем набираю из nltk.corpus import cmudict, и он работает. Но когда я написал такой скрипт:

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")

У меня есть следующая ошибка:

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

Как я могу это исправить ?

заранее спасибо

Автор: user35657 Источник Размещён: 06.07.2014 02:38

Ответы (2)


1 плюс

637 Репутация автора

Как уже отмечали другие, это похоже на случай несоответствия версий. Если у вас установлено несколько версий Python, убедитесь, что та, где вы установили NLTK, используется при запуске скрипта.

Например, у меня установлены Python 2.7, Python 3.3 и Anaconda Python (2.7). Моя оболочка по умолчанию - Анаконда (и ее пункт, например). Поэтому, когда я устанавливаю что-то через pip и запускаю это из командной строки, это работает. В то же время мой Vim скомпилирован для использования системного Python и не видит установки / библиотеки Anaconda. Поэтому, если из Vim я запустил Python, я получу сообщение об ошибке, что установленная мной библиотека не найдена.

Надеюсь это поможет.

Автор: Ambidextrous Размещён: 08.07.2014 02:40

7 плюса

1101 Репутация автора

Решение

Из вашей трассировки стека: File "nltk.py", line 1, in <module>вы назвали свой файл nltk.py. Когда python ищет модуль, он сначала просматривает текущий каталог, и у вас там есть «nltk.py». Это импортирует это как nltk, и так как ваш код не определяет корпус, он не может найти nltk.corpus.

Чтобы это исправить, вы должны переименовать файл, скажем, в другое nltkexperience.py. Также обязательно удалите «nltk.pyc» из вашего каталога, если он существует, так как он также будет загружен (это версия вашего кода, скомпилированная в байтах). После этого все должно работать нормально.

Автор: Jonathan Villemaire-Krajden Размещён: 09.07.2014 03:55
Вопросы из категории :
32x32