Sto usando nltk ma il problema che sto affrontando non sembra essere correlato specificamente a nltk. ho un modulo chiamato util.tokenize
al cui interno vi sono alcune classi e ho la seguente prima riga:Python, ImportError: impossibile importare il nome 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')
Quando chiamo quelle classi da un altro modulo, diciamo test.py
tutto sembra per funzionare, ma l'esecuzione del modulo tokenize.py
causa direttamente 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
Quale potrebbe essere il problema? Perché funziona quando chiamato da altri moduli?
test.py
from util.tokenize import SentTokenizer
s_t = SentTokenizer()
print s_t('blah blah')
piattaforma è Windows.
Aggiunte ulteriori parti del codice rilevante – CentAu
Non arriva nemmeno al codice __main__. Alla prima riga genera un errore. Ho aggiunto altro codice. @grill – CentAu
Cosa succede se crei un nuovo file .py con solo il codice che hai incluso sopra (ad eccezione di ellissi)? – grill