keiji
polik****@gmail*****
2012年 12月 8日 (土) 13:14:56 JST
初めまして。外村と言います。 Pythonでmecabを使わせていただいているのですが、 一部文章をparseToNodeメソッドに入れたときに parseToNodeメソッドの返り値の featureプロパティが文字化けしてしまい 原因がわからなかったため、メールさせていただきました。 環境は以下の通りです。 ・Amazon Linux AMI release 2012.09 ・Python 2.6.8 ・mecab-0.994.tar.gz ・mecab-ipadic-2.7.0-20070801.tar.gz ・mecab-python-0.994.tar.gz 動作確認に使用したコードと出力例を、 メール末尾に記載させていただきました。 なお、文字化けは、parseToNodeメソッドの結果の featureプロパティのみで発生し、 - コマンドからmecabを利用 - Pythonでparseメソッドを利用 した場合は、文字化けは発生しませんでした。 また、特定の文章のみ文字化けするようで、 「電車二個乗り損ねた 何とか飛行機は予約」 は文字化けしますが、 「このメーリングリストへの投稿は、以下のアドレスにメールを送信してください。」 は文字化けしませんでした。 あと、上記文字化けする文書を編集して試したところ、 特定の単語が文字化けする訳ではなく、 特定の単語の並びで文字化けが発生するようでした。 アドバイス等ございましたら ご助言いただければ幸いです。 ◆ 動作確認に使用したコード ------------------------------------------------ # coding: utf-8 import MeCab def dig_word(text): print text print '-------------' words = set() tagger = MeCab.Tagger('-Ochasen') node = tagger.parseToNode(text.encode('utf-8')) while node: word = node.surface if word != '': print word print node.feature print '-------------------------------' words.add(word) node = node.next ------------------------------------------------ ◆ 文字化けする入力例 ------------------------------------------------ uint_text_analyze.dig_word(u'電車二個乗り損ねた 何とか飛行機は予約') ------------------------------------------------ 実行結果 ------------------------------------------------ 電車二個乗り損ねた 何とか飛行機は予約 ------------- 電車 名詞,一般,*,*,*,*,電車,デンシャ,デンシャ ------------------------------- ,? 名詞,数,*,*,*,*,二,ニ,ニ ------------------------------- ?? 名詞,接尾,助数詞,*,*,*,個,コ,コ ------------------------------- ?,*,*, 名詞,接尾,一般,*,*,*,乗り,ノリ,ノリ ------------------------------- *,*,? 動詞,自立,*,*,一段,連用形,損ねる,ソコネ,ソコネ ------------------------------- ?? 助動詞,*,*,*,特殊・タ,基本形,た,タ,タ ------------------------------- ,基本? 副詞,一般,*,*,*,*,何とか,ナントカ,ナントカ ------------------------------- ?,た,タ 名詞,一般,*,*,*,*,飛行機,ヒコウキ,ヒコーキ ------------------------------- ,? 助詞,係助詞,*,*,*,*,は,ハ,ワ ------------------------------- ? 名詞,サ変接続,*,*,*,*,予約,ヨヤク,ヨヤク -------------------------------