- ベストアンサー
EUC-JPのファイルをutf-8に変換したい
EUC-JPで書かれたデータをpythonで形態素解析しようと思っています。 pythonにはutf-8がデフォルトとなっているmecabが入っています。 名詞のみを取り出したいのですが、文字コードのせいなのか、条件分岐がうまくできません。 EUC-JPの文章をutf-8で形態素解析すれば整合性がとれてうまくいくとおもうのですが、どのようにすればいいのでしょうか。よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
Python+mecabでは使ったことないですが、検索したら、どうもUnicode文字列には対応てないような情報が。 それでも、Unicode文字列を経由するのが楽だとは思います。 まずは codecs.open を使って、unicode文字列として読み込む または 普通にopenで読み込んだ文字列をdecodeでunicode文字列にする。 → mecabにはencodeでUTF-8に変換して渡す
その他の回答 (2)
- satomi3951
- ベストアンサー率71% (98/137)
foo: eucの文字列(入力) bar: 内部形式の文字列 baz: eucの文字列(出力) とすると、 bar = foo.decode('euc-jp'); baz = bar.encode('euc-jp'); だったと思う。 今、実行環境が手元にないので、未検証
- utakataXEX
- ベストアンサー率69% (711/1018)
「python だけで完結させたい」と言う事でしたら、門外漢ですので、以下の回答は無視してください。 普通に「事前に文字コードを変換しておく」方法です。 手作業で可能な暫定的な処理なのか、定常的に(毎日とか)しかも大量に処理する必要があるのか、にもよります。 前者の場合。 Windows サクラエディタなど、文字コードを変換できるエディタで読み込み、utf-8で別名保存。 Linux nkfコマンドなどを使用。 nkf -Ew EUC-JPファイル > utf-8ファイル 後者の「定常的な大量作業」の場合は、OSでやり方は変わるので補足願います。
お礼
ありがとうございます!