本ページは、アフィリエイト広告が含まれています。

テクノロジー

Pythonでエラー:UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-3: ordinal not in range(128)が出るときの対処法

2016年7月6日

入門 自然言語処理
文字実
この記事は、株式会社シグマ・デザイン社長の文字実が執筆しました。

最近、またコツコツと自然言語処理の勉強をしています。

PythonでNLTKを使っているといろんなところでこのエラーが出ますよね。

UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-3: ordinal not in range(128)

その度に、encode('utf-8')を使ってみたりunicode()を使ってみたりでその場しのぎをしてきましたけど、今回はどうしてもうまくいかなかった。

そこでオライリーの入門自然言語処理を読んでみるとばっちし対処法が書いてあった。


import codecs, sys

sys.stdout = codecs.getwriter('utf_8')(sys.stdout)
sys.stdin = codecs.getreader('utf_8')(sys.stdin)

最初にこれを追加してやると嘘のようにうまくいきました。

NLTKでいろいろやってて文字コードのエラーで困っている人はぜひ試してみて下さい。

入門 自然言語処理

入門 自然言語処理

オライリーの本はクオリティに差があるけどいい本は本当にいい。

-テクノロジー
-,

Copyright© シグマデザイン社長のブログ , 2024 All Rights Reserved.