2017-05-08 6 views
2

저는 지금 Python 3.6을 전환했습니다. 그러나 유익한 기능을 실행하면 필자의 기능 추출기에서 러시아어를 인쇄하려고 할 때 멍청하게 끝납니다. 나는 тир이 잘 인쇄 얻을 수있는 특징 추출기 자체유용한 기능이 키릴 문자를 반환하지 않습니다

def POS_features(word): 
    return{'three_last_letters':word[-3:]} 
print(POS_features(u'Богатир')) 

의 경우

Most Informative Features 
    three_last_letters = 'оÌ'   noun : verb =  6.6 : 1.0 
    three_last_letters = 'гÐ'   noun : verb =  5.4 : 1.0 
    three_last_letters = 'еÐ'   noun : verb =  4.7 : 1.0 
    three_last_letters = 'мÐ'   noun : verb =  4.4 : 1.0 
    three_last_letters = 'нÑ'   noun : verb =  3.5 : 1.0 

, 나는 유익한 기능 러시아어 문자를 반환하기 위해 할 수있는 일이 무엇입니까? 내가 잘못한 거라고 알아 낸

+0

on os? 그리고 당신은 콘솔이나 IDE에서 프린트를 시도합니까? – dima

+1

Windows의 Jupyter 노트북에서 코드를 작성합니다. – reivermello

+2

이것이 파이썬 3.5의 경우가 아니라면 "PEP 528 및 PEP 529, Windows 파일 시스템 및 콘솔 인코딩이 UTF-8로 변경되었습니다."라는 변경 사항 때문일 수 있습니다. 죄송합니다. 적절한 해결책이 없지만'sys.setdefaultencoding'을 실험하고'sys.stdout.encoding'을 확인하십시오. – drdaeman

답변

3

,

내 Vocab의 폴더를 수입했던
vocab = nltk.corpus.reader.CategorizedPlaintextCorpusReader(
"C:\\Users\\Admin\\AppData\\Roaming\\nltk_data\\corpora\\russian\\vocab", r'.*\.txt', cat_pattern=r'^(noun|verb)', encoding="utf8" 

, 나는 라틴어-1 모두가 잘 키릴 문자가 나를 위해 반환 된로 인코딩 된 거라고

Most Informative Features 
     three_last_letters = 'ать'   verb : noun =  15.2 : 1.0 
     three_last_letters = 'де'    noun : verb =  2.6 : 1.0 
     three_last_letters = 'сть'   noun : verb =  1.5 : 1.0 
     three_last_letters = 'пра'   noun : verb =  1.4 : 1.0 
     three_last_letters = 'ина'   noun : verb =  1.4 : 1.0 
+1

원시 문자열을 사용하여 Python 소스 코드에서 Windows 경로 (또는 백 슬래시가 포함 된 다른 문자열)를 작성할 수 있습니다. 'r'C : \ path \ to \ file ''. http://stackoverflow.com/questions/2081640/what-exactly-do-u-and-r-string-flags-do-in-python-and-what-are-raw-string-l을 참조하십시오. – Tomalak