2017-03-18 2 views
0

잠시 후에 제대로 작동하는 코드 조각이 있습니다.NLTK TypeError : '<'는 'str'과 'int'인스턴스 사이에서 지원되지 않습니다.

import nltk 
import pickle 

from nltk.tokenize import word_tokenize 
from nltk.classify import ClassifierI 
from statistics import mode 

나는 제대로 nltk를 설치했으며, 어제이 문제가 발생하지 않았습니다. 최선의 방법은 변화가 없습니다. 여기

Traceback (most recent call last): 
    File "C:\Users\student\Desktop\asd.py", line 1, in <module> 
    import nltk 
    File "C:\Users\student\AppData\Local\Programs\Python\Python36\lib\site-packages\nltk\__init__.py", line 128, in <module> 
    from nltk.chunk import * 
    File "C:\Users\student\AppData\Local\Programs\Python\Python36\lib\site-packages\nltk\chunk\__init__.py", line 157, in <module> 
    from nltk.chunk.api import ChunkParserI 
    File "C:\Users\student\AppData\Local\Programs\Python\Python36\lib\site-packages\nltk\chunk\api.py", line 13, in <module> 
    from nltk.parse import ParserI 
    File "C:\Users\student\AppData\Local\Programs\Python\Python36\lib\site-packages\nltk\parse\__init__.py", line 79, in <module> 
    from nltk.parse.transitionparser import TransitionParser 
    File "C:\Users\student\AppData\Local\Programs\Python\Python36\lib\site-packages\nltk\parse\transitionparser.py", line 21, in <module> 
    from sklearn.datasets import load_svmlight_file 
    File "C:\Users\student\AppData\Local\Programs\Python\Python36\lib\site-packages\sklearn\__init__.py", line 57, in <module> 
    from .base import clone 
    File "C:\Users\student\AppData\Local\Programs\Python\Python36\lib\site-packages\sklearn\base.py", line 12, in <module> 
    from .utils.fixes import signature 
    File "C:\Users\student\AppData\Local\Programs\Python\Python36\lib\site-packages\sklearn\utils\__init__.py", line 11, in <module> 
    from .validation import (as_float_array, 
    File "C:\Users\student\AppData\Local\Programs\Python\Python36\lib\site-packages\sklearn\utils\validation.py", line 18, in <module> 
    from ..utils.fixes import signature 
    File "C:\Users\student\AppData\Local\Programs\Python\Python36\lib\site-packages\sklearn\utils\fixes.py", line 406, in <module> 
    if np_version < (1, 12, 0): 
TypeError: '<' not supported between instances of 'str' and 'int' 
+1

어제 파이썬 모듈을 업데이트 했습니까? Esp. 'numpy' 또는'scipy'? 미친 듯이 들리 겠지만'numens','scipy','sklearn'과'nltk'을 개별적으로 설치하는 것보다'gensim' 설치가 더 신뢰할 수 있습니다. 그래서'pip install -U gensim','pip install - U scikit-learn', 그리고 나서'pip install -U nltk'. – alvas

+1

BTW,'nltk'는 python3.6에서 오류/비추천 경고를 발생시키는 것으로 알려져 있습니다. – alvas

답변

1

어쨌든 numpy 버전 1.11.2rc1으로 끝난 것 같습니다. Scikit의 fixes.py은 이것을 피할 수없는 결과로 트리플 (1, 11, '2rc1')으로 변환합니다.

현재 버전이 1.12.1이므로 해결책이 분명하다고 생각합니다.

1

내 추측이 np_version (스택 추적의 맨 아래에 참조 된 값이) 어떻게 든 손상된 것입니다, 전체 스택 추적, 그리고 문자열의 튜플은 지금, 또는 int의 튜플이 아닌 다른 데이터 유형, 즉 코드가 if np_version < (1, 12, 0): 행과 비교하는 데이터 유형입니다. 나는 확실한 해결책이 아닐지라도 nltk을 다시 설치할 것을 제안 할 것이다. 새로운 버전이 문자열의 튜플을 사용하여 버전 번호를 저장하는 버전 불일치가 발생할 수 있습니다. 그렇다면 nltk의 이전 버전을 설치하는 것이 좋습니다. 다시 설치하면 문제가 해결 될 수 있습니다. 희망이 도움이!

관련 문제