日本語の文字化けを直そう

初めまして。タロスカイのマリアです。

 

今回の投稿は私の第一投稿です。宜しくお願い致します。

 

本日のテーマは文字コードにしたいと思いますね。実は現在日本の大学院に通っています。この間研究で文字コードの問題に遭い困っていたのですが解決できたので、みんなさんにシェアしたいと思います。もし参考になったら嬉しいです。

 

うちの研究室では自然言語処理に関連した研究をしています。実験を行うために、いわゆるコーパスという文章の膨大な集まりが使われてることが多いです。テンプレートにマッチする文章を検索する前に、ファイルの内容を確認しないといけないのですが、ファイルはエディターで普通に開けない大きさなので、面倒ですが読み込むスクリプトを書くしかありません。

 

コマンドラインでエンコーディングを確認してみると、charset=iso-8859-1が出てきます。

encode

そのエンコーディングを指定してファイルを開いて最初の50行を出力させてみると、文字化け状態で出力されます。


 

max_line = 50

def get_next_line(f):
    for line in f:
        yield line


counter = 0
f = open("corpora00", encoding="iso-8859-1")


for line in get_next_line(f):
    if counter > max_line:
        break
    counter += 1
    print(line)

mojibake

 

ローマ字しか適当に見えなくて困りますね。UTF-8でファイルを読み込んでみると、ファイルがダメな文字があるというエラーが発生します。エラーを無視しながらの読み込みはまた読める出力ではないです。どういうデコードを使えばいいかなと悩んでいました。

 

日本語の文字コードを詳しく調べて、一つ一つを試してみると、文字化けが直りました!

 

EUC-JP が手がかりになりました。

mojibake_naotta

これで文章を読むことができるようになりました。実験が続けられます!