2013-03-20 1 views
1

간단한 정보 : 파이썬 3.0을 실행 중이며 NLTK가 설치되어 있습니다 (NLTK는 3.3에 대한 지원이 없기 때문에 3.3에서 다시 전환되었습니다. 3.3의 다른 모든 확장이 없기 때문에)
라는 이름의 개체를 추출하려고 할 때이 오류가 얻을 :NLTK tokenizer ImportError : 모듈 없음 copy_reg

File "D:\UM\Programming\Thesis\Thesis\test.py", line 10, in <module> 
    sentences = nltk.sent_tokenize(file) 
File "C:\Python30\Lib\site-packages\nltk\tokenize\__init__.py", line 75, in sent_tokenize 
    tokenizer = load('tokenizers/punkt/english.pickle') 
File "C:\Python30\Lib\site-packages\nltk\data.py", line 630, in load 
    resource_val = pickle.load(opened_resource) 
File "C:\Python30\lib\pickle.py", line 1323, in load 
    return Unpickler(file, encoding=encoding, errors=errors).load() 
ImportError: No module named copy_reg 

내가 다른 곳이 아닌 바이너리 파일로 덤프 할 때 ImportError가 발생 읽었습니다,하지만이 경우에 나는 이미 덤프 읽으려고 해요 피클 파일. 누구든지 오류를 해결하는 방법을 알고 있습니까?
위의 줄에있는 변수 file은 약간의 텍스트가 포함 된 string입니다.

답변

0

posting에 따르면 nltk 3.x는 여전히 중요한 문제가 있습니다. 2.x에서 nltk의 모델은 Python 2.x를 사용하여 저장되었습니다. 파이썬 3의 새로운 유니 코드 인식 io 시스템을 사용하면 모델을 재교육하고 파이썬 3에서 읽을 수있는 파일로 저장해야합니다. 포스팅에는 새롭게 훈련 된 모델이있는 브랜치에 대한 링크가 있지만 아직 시도하지 않았습니다. 그래서 unpickle에 의해 생성 된 nltk의 오류 메시지는 python 2와 3 사이의 호환되지 않는 피클 버전으로 인해 발생합니다. 편집 : 실제로 여기 제공된 은 제공되는 수정이 작동하지 않을 수 있습니다.