2017-05-08 16 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

これはPython 3.5の場合には当てはまりませんでしたが、この変更のために "PEP 528とPEP 529、WindowsファイルシステムとコンソールエンコーディングがUTF-8に変更されました。"申し訳ありませんが、適切な解決策はありませんが、 'sys.setdefaultencoding'を試してみて、' sys.stdout.encoding'をチェックしてみてください。 – drdaeman

答えて

3

は、私は、私が間違って行わのだ何

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 \から\ file''に移動します。 http://stackoverflow.com/questions/2081640/what-exactly-do-u-and-r-string-flags-do-in-python-and-what-are-raw-string-lを参照してください。 – Tomalak

関連する問題