2013-09-24 2 views
3

Windows에서 TextBlob 튜토리얼 (Git Bash 쉘 사용)을 Python 3.3에서 실행하려고합니다.textblob 튜토리얼의 UnicodeDecodeError

나는 textblobnltk과 모든 의존성을 설치했습니다.

파이썬 코드는 다음과 같습니다

from text.blob import TextBlob 

wiki = TextBlob("Python is a high-level, general-purpose programming language.") 
tags = wiki.tags 

나는 다음과 같은 오류

Traceback (most recent call last): 
File "textblob.py", line 4, in <module> 
    tags = wiki.tags 
File "c:\Python33\lib\site-packages\text\decorators.py", line 18, in __get__ 
    value = obj.__dict__[self.func.__name__] = self.func(obj) 
File "c:\Python33\lib\site-packages\text\blob.py", line 357, in pos_tags 
    for word, t in self.pos_tagger.tag(self.raw) 
File "c:\Python33\lib\site-packages\text\taggers.py", line 40, in tag 
    return pattern_tag(sentence, tokenize) 
File "c:\Python33\lib\site-packages\text\en.py", line 115, in tag 
    for sentence in parse(s, tokenize, True, False, False, False, encoding).split(): 
File "c:\Python33\lib\site-packages\text\en.py", line 99, in parse 
    return parser.parse(unicode(s), *args, **kwargs) 
File "c:\Python33\lib\site-packages\text\text.py", line 1213, in parse 
    s[i] = self.find_tags(s[i], **kwargs) 
File "c:\Python33\lib\site-packages\text\en.py", line 49, in find_tags 
    return _Parser.find_tags(self, tokens, **kwargs) 
File "c:\Python33\lib\site-packages\text\text.py", line 1161, in find_tags 
    map = kwargs.get( "map", None)) 
File "c:\Python33\lib\site-packages\text\text.py", line 967, in find_tags 
    tagged.append([token, lexicon.get(token, i==0 and lexicon.get(token.lower()) or None)]) 
File "c:\Python33\lib\site-packages\text\text.py", line 98, in get 
    return self._lazy("get", *args) 
File "c:\Python33\lib\site-packages\text\text.py", line 79, in _lazy 
    self.load() 
File "c:\Python33\lib\site-packages\text\text.py", line 367, in load 
    dict.update(self, (x.split(" ")[:2] for x in _read(self._path) if x.strip())) 
File "c:\Python33\lib\site-packages\text\text.py", line 367, in <genexpr> 
    dict.update(self, (x.split(" ")[:2] for x in _read(self._path) if x.strip())) 
File "c:\Python33\lib\site-packages\text\text.py", line 346, in _read 
    for line in f: 
File "c:\Python33\lib\encodings\cp1252.py", line 23, in decode 
    return codecs.charmap_decode(input,self.errors,decoding_table)[0] 
UnicodeDecodeError: 'charmap' codec can't decode byte 0x9d in position 16: character maps to <undefined> 

여기에 잘못 어떤 생각을 받고 있어요? 문자열 앞에 'u'을 추가하면 도움이되지 않습니다.

+0

튜토리얼을 신속하게 통과했으며 Python 3.3을 사용하여 OS X 컴퓨터에서 정상적으로 작동했습니다. TextBlob의 이전 버전이 있습니까? 유사한 문제가 방금 고정되어 출시 된 것처럼 보입니다. https://github.com/sloria/TextBlob/issues/15 –

+0

행운이 없습니다. 저는 최신이라고 믿는 0.6.3을 사용하고 있습니다. pip - force-reinstall을 수행하고 pyyaml을 설치할 때 libyaml 오류가 발생했음을 알았습니다. 설치가 계속되었으므로 심각한 문제인지 잘 모르겠습니다. – sgoldber

+0

이 문제를 계속해서 해결하기 위해 [nltk 사이트] (http://nltk.org/)의 첫 페이지에서 간단한 지침서를 실행하고 비슷한 오류가 발생했습니다. 그러나 github의 마스터 레포에서 복제하면 문제가 해결됩니다. 아마도 textblob과 비슷한 것을 시도해야 할 것입니다. – sgoldber

답변

3

릴리스 0.7.1 수정 그것은

$ pip install -U textblob 

시간 뜻이 문제를 문제 품사 태깅에 사용되는 en-lexicon.txt 파일이 윈도우의 기본 플랫폼 인코딩을 사용하여 파일을 연 것이 었습니다, cp1252. 파일에는 파이썬이이 인코딩에서 디코딩 할 수없는 문자가있는 것 같습니다. utf-8 모드에서 명시 적으로 파일을 열면이 문제가 해결되었습니다.