Я использую nltk, но проблема, с которой я столкнулась, по-видимому, не связана с nltk. У меня есть модуль с именем util.tokenize
, внутри которого есть некоторые классы и у меня есть следующие строки: перваяPython, ImportError: не может импортировать имя AbstractLazySequence
Util/tokenizer.py
from nltk.tokenize.regexp import RegexpTokenizer
...
class SentTokenizer(object):
def __init__(self, stem=False, pattern='[^\w\-\']+'):
self.alg = RegexpTokenizer(pattern, gaps=True)
def __call__(self, text):
return self.alg.tokenize(text)
....
if __name__ == '__main__':
s_t = SentTokenizer()
s_t('blah blah')
Когда я называю эти классы из другого модуля, скажем, test.py
все кажется для работы, но запуск модуля tokenize.py
напрямую вызывает ImportError.
File "tokenize.py", line 1, in <module>
...
File "Python27\lib\site-packages\nltk\corpus\reader\util.py", line 28, in <module>
from nltk.util import AbstractLazySequence, LazySubsequence, LazyConcatenation, py25
ImportError: cannot import name AbstractLazySequence
В чем может быть проблема? Почему он работает при вызове из других модулей?
test.py
from util.tokenize import SentTokenizer
s_t = SentTokenizer()
print s_t('blah blah')
Платформа для Windows.
Добавлено больше частей соответствующего кода – CentAu
Он даже не доходит до кода __main__. В первой строке она вызывает ошибку. Я добавил еще код. @grill – CentAu
Что произойдет, если вы создадите новый .py-файл только с кодом, который вы указали выше (исключая эллипсы)? – grill