私は、日本語入力が可能なGUIを書いています。また、ファイル>構文解析を行ってテキストファイルに書き込む場合もあります。そのテキストファイルは、単語の間にスペースを入れるMeCabを介して実行されます。その後、もう一度テキストファイルに書き込まれるはずなので、別のGUIウィンドウに表示することができます。Python 2.7 - MeCabの解析情報をテキストファイルに書き込む方法を教えてください。
私が抱えている問題は、解析されたデータをテキストファイルに書きたくないということです。それは最初に書くのに問題はありません。また、解析された情報をIDLEにも問題なく印刷します。ここでは、パーサーエラーがある:
#!/usr/bin/python
# -*- coding: <utf-8> -*-
import sys
import MeCab
import codecs
read_from = open("pholder.txt").read()
mecab = MeCab.Tagger("-Owakati")
output = mecab.parse(read_from)
print output
text = output
write_to = codecs.open("pholder.txt", "w", "utf-8")
write_to.write(text)
write_to.close()
Traceback (most recent call last):
File "C:\...\mecabSpaces.py", line 16, in <module>
write_to.write(text)
File "C:\...\codecs.py", line 691, in write
return self.writer.write(data)
File "C:\...\codecs.py", line 351, in write
data, consumed = self.encode(object, self.errors)
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe4 in position 0: ordinal not in range(128)
正確に 'mecab.parse()'は何を返しますか?では、コマンドプロンプトで 'mecab.parse(read_from)'と入力するとどうなりますか? –
parse関数は、Tagger関数が解析する方法を解析します。それは私がそれを理解する方法です。 – jeffberhow
申し訳ありませんが、改ページでコメントする方法はありません。これは、スペースでテストを区切る1行の解析です。print MeCab.Tagger( ' - Owakati')。parse( 'testtesttest') – jeffberhow