• ベストアンサー

EUC-JPのファイルをutf-8に変換したい

EUC-JPで書かれたデータをpythonで形態素解析しようと思っています。 pythonにはutf-8がデフォルトとなっているmecabが入っています。 名詞のみを取り出したいのですが、文字コードのせいなのか、条件分岐がうまくできません。 EUC-JPの文章をutf-8で形態素解析すれば整合性がとれてうまくいくとおもうのですが、どのようにすればいいのでしょうか。よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.3

Python+mecabでは使ったことないですが、検索したら、どうもUnicode文字列には対応てないような情報が。 それでも、Unicode文字列を経由するのが楽だとは思います。 まずは codecs.open を使って、unicode文字列として読み込む または 普通にopenで読み込んだ文字列をdecodeでunicode文字列にする。 → mecabにはencodeでUTF-8に変換して渡す

thjki6624
質問者

お礼

ありがとうございます!

その他の回答 (2)

回答No.2

foo: eucの文字列(入力) bar: 内部形式の文字列 baz: eucの文字列(出力) とすると、 bar = foo.decode('euc-jp'); baz = bar.encode('euc-jp'); だったと思う。 今、実行環境が手元にないので、未検証

  • utakataXEX
  • ベストアンサー率69% (711/1018)
回答No.1

「python だけで完結させたい」と言う事でしたら、門外漢ですので、以下の回答は無視してください。 普通に「事前に文字コードを変換しておく」方法です。 手作業で可能な暫定的な処理なのか、定常的に(毎日とか)しかも大量に処理する必要があるのか、にもよります。 前者の場合。 Windows サクラエディタなど、文字コードを変換できるエディタで読み込み、utf-8で別名保存。 Linux nkfコマンドなどを使用。 nkf -Ew EUC-JPファイル > utf-8ファイル 後者の「定常的な大量作業」の場合は、OSでやり方は変わるので補足願います。

関連するQ&A

専門家に質問してみよう