Windows のコマンドプロンプトでは UTF-8 文字をそのまま表示することができない。そこで Python で扱いやすいユニコード文字列(文字列定義の先頭に u を付ける)で文字列を定義し、MeCab に渡すところで UTF-8 に変換、出力時にユニコード文字列に戻すようにする。
元ソース
#!/usr/bin/python
# -*- coding: utf-8 -*-
import MeCab
import sys
import string
sentence = "太郎はこの本を二郎を見た女性に渡した。"
try:
print MeCab.VERSION
t = MeCab.Tagger (" ".join(sys.argv))
print t.parse(sentence)
(以下略)
出力結果
> python test.py~
0.993
螟ェ驛・蜷崎ゥ・蝗コ譛牙錐隧・莠コ蜷・蜷・*,*,螟ェ驛・繧ソ繝ュ繧ヲ,繧ソ繝ュ繝シ
縺ッ 蜉ゥ隧・菫ょ勧隧・*,*,*,*,縺ッ,繝・繝ッ
縺薙・ 騾」菴楢ゥ・*,*,*,*,*,縺薙・,繧ウ繝・繧ウ繝・
譛ャ 蜷崎ゥ・荳?闊ャ,*,*,*,*,譛ャ,繝帙Φ,繝帙Φ
繧・蜉ゥ隧・譬シ蜉ゥ隧・荳?闊ャ,*,*,*,繧・繝イ,繝イ
莠・蜷崎ゥ・謨ー,*,*,*,*,莠・繝・繝・
驛・蜷崎ゥ・荳?闊ャ,*,*,*,*,驛・繝ュ繧ヲ,繝ュ繝シ
繧・蜉ゥ隧・譬シ蜉ゥ隧・荳?闊ャ,*,*,*,繧・繝イ,繝イ
隕・蜍戊ゥ・閾ェ遶・*,*,荳?谿オ,騾」逕ィ蠖「,隕九k,繝・繝・
縺・蜉ゥ蜍戊ゥ・*,*,*,迚ケ谿翫・繧ソ,蝓コ譛ャ蠖「,縺・繧ソ,繧ソ
螂ウ諤ァ 蜷崎ゥ・荳?闊ャ,*,*,*,*,螂ウ諤ァ,繧ク繝ァ繧サ繧、,繧ク繝ァ繧サ繧、
縺ォ 蜉ゥ隧・譬シ蜉ゥ隧・荳?闊ャ,*,*,*,縺ォ,繝・繝・
貂。縺・蜍戊ゥ・閾ェ遶・*,*,莠疲ョオ繝サ繧オ陦・騾」逕ィ蠖「,貂。縺・繝ッ繧ソ繧キ,繝ッ繧ソ繧キ
縺・蜉ゥ蜍戊ゥ・*,*,*,迚ケ谿翫・繧ソ,蝓コ譛ャ蠖「,縺・繧ソ,繧ソ
縲・險伜捷,蜿・轤ケ,*,*,*,*,縲・縲・縲・
EOS
BOS/EOS,*,*,*,*,*,*,*,*
螟ェ驛・ 蜷崎ゥ・蝗コ譛牙錐隧・莠コ蜷・蜷・*,*,螟ェ驛・繧ソ繝ュ繧ヲ,繧ソ繝ュ繝シ
縺ッ 蜉ゥ隧・菫ょ勧隧・*,*,*,*,縺ッ,繝・繝ッ
縺薙・ 騾」菴楢ゥ・*,*,*,*,*,縺薙・,繧ウ繝・繧ウ繝
譛ャ 蜷崎ゥ・荳?闊ャ,*,*,*,*,譛ャ,繝帙Φ,繝帙Φ
繧・ 蜉ゥ隧・譬シ蜉ゥ隧・荳?闊ャ,*,*,*,繧・繝イ,繝イ
莠・ 蜷崎ゥ・謨ー,*,*,*,*,莠・繝・繝
驛・ 蜷崎ゥ・荳?闊ャ,*,*,*,*,驛・繝ュ繧ヲ,繝ュ繝シ
繧・ 蜉ゥ隧・譬シ蜉ゥ隧・荳?闊ャ,*,*,*,繧・繝イ,繝イ
隕・ 蜍戊ゥ・閾ェ遶・*,*,荳?谿オ,騾」逕ィ蠖「,隕九k,繝・繝
縺・ 蜉ゥ蜍戊ゥ・*,*,*,迚ケ谿翫・繧ソ,蝓コ譛ャ蠖「,縺・繧ソ,繧ソ
螂ウ諤ァ 蜷崎ゥ・荳?闊ャ,*,*,*,*,螂ウ諤ァ,繧ク繝ァ繧サ繧、,繧ク繝ァ繧サ繧、
縺ォ 蜉ゥ隧・譬シ蜉ゥ隧・荳?闊ャ,*,*,*,縺ォ,繝・繝
貂。縺・ 蜍戊ゥ・閾ェ遶・*,*,莠疲ョオ繝サ繧オ陦・騾」逕ィ蠖「,貂。縺・繝ッ繧ソ繧キ,繝ッ繧ソ繧キ
縺・ 蜉ゥ蜍戊ゥ・*,*,*,迚ケ谿翫・繧ソ,蝓コ譛ャ蠖「,縺・繧ソ,繧ソ
縲・ 險伜捷,蜿・轤ケ,*,*,*,*,縲・縲・縲
BOS/EOS,*,*,*,*,*,*,*,*
EOS
EOS
filename: C:\Program Files\Develop\MeCab\etc\..\dic\ipadic\sys.dic
charset: UTF-8
size: 392126
type: 0
lsize: 1316
rsize: 1316
version: 102
編集後
#!/usr/bin/python
# -*- coding: utf-8 -*-
import MeCab
import sys
import string
import codecs
sample = u"太郎はこの本を二郎を見た女性に渡した。"
sentence = sample.encode('utf-8')
print sample
try:
print MeCab.VERSION
t = MeCab.Tagger (" ".join(sys.argv))
print t.parse(sentence)
print t.parse(sentence).decode('utf-8')
出力結果
> python test.py
太郎はこの本を二郎を見た女性に渡した。
0.993
螟ェ驛・蜷崎ゥ・蝗コ譛牙錐隧・莠コ蜷・蜷・*,*,螟ェ驛・繧ソ繝ュ繧ヲ,繧ソ繝ュ繝シ
縺ッ 蜉ゥ隧・菫ょ勧隧・*,*,*,*,縺ッ,繝・繝ッ
縺薙・ 騾」菴楢ゥ・*,*,*,*,*,縺薙・,繧ウ繝・繧ウ繝・
譛ャ 蜷崎ゥ・荳?闊ャ,*,*,*,*,譛ャ,繝帙Φ,繝帙Φ
繧・蜉ゥ隧・譬シ蜉ゥ隧・荳?闊ャ,*,*,*,繧・繝イ,繝イ
莠・蜷崎ゥ・謨ー,*,*,*,*,莠・繝・繝・
驛・蜷崎ゥ・荳?闊ャ,*,*,*,*,驛・繝ュ繧ヲ,繝ュ繝シ
繧・蜉ゥ隧・譬シ蜉ゥ隧・荳?闊ャ,*,*,*,繧・繝イ,繝イ
隕・蜍戊ゥ・閾ェ遶・*,*,荳?谿オ,騾」逕ィ蠖「,隕九k,繝・繝・
縺・蜉ゥ蜍戊ゥ・*,*,*,迚ケ谿翫・繧ソ,蝓コ譛ャ蠖「,縺・繧ソ,繧ソ
螂ウ諤ァ 蜷崎ゥ・荳?闊ャ,*,*,*,*,螂ウ諤ァ,繧ク繝ァ繧サ繧、,繧ク繝ァ繧サ繧、
縺ォ 蜉ゥ隧・譬シ蜉ゥ隧・荳?闊ャ,*,*,*,縺ォ,繝・繝・
貂。縺・蜍戊ゥ・閾ェ遶・*,*,莠疲ョオ繝サ繧オ陦・騾」逕ィ蠖「,貂。縺・繝ッ繧ソ繧キ,繝ッ繧ソ繧キ
縺・蜉ゥ蜍戊ゥ・*,*,*,迚ケ谿翫・繧ソ,蝓コ譛ャ蠖「,縺・繧ソ,繧ソ
縲・險伜捷,蜿・轤ケ,*,*,*,*,縲・縲・縲・
EOS
太郎 名詞,固有名詞,人名,名,*,*,太郎,タロウ,タロー
は 助詞,係助詞,*,*,*,*,は,ハ,ワ
この 連体詞,*,*,*,*,*,この,コノ,コノ
本 名詞,一般,*,*,*,*,本,ホン,ホン
を 助詞,格助詞,一般,*,*,*,を,ヲ,ヲ
二 名詞,数,*,*,*,*,二,ニ,ニ
郎 名詞,一般,*,*,*,*,郎,ロウ,ロー
を 助詞,格助詞,一般,*,*,*,を,ヲ,ヲ
見 動詞,自立,*,*,一段,連用形,見る,ミ,ミ
た 助動詞,*,*,*,特殊・タ,基本形,た,タ,タ
女性 名詞,一般,*,*,*,*,女性,ジョセイ,ジョセイ
に 助詞,格助詞,一般,*,*,*,に,ニ,ニ
渡し 動詞,自立,*,*,五段・サ行,連用形,渡す,ワタシ,ワタシ
た 助動詞,*,*,*,特殊・タ,基本形,た,タ,タ
。 記号,句点,*,*,*,*,。,。,。
EOS
BOS/EOS,*,*,*,*,*,*,*,*
螟ェ驛・ 蜷崎ゥ・蝗コ譛牙錐隧・莠コ蜷・蜷・*,*,螟ェ驛・繧ソ繝ュ繧ヲ,繧ソ繝ュ繝シ
縺ッ 蜉ゥ隧・菫ょ勧隧・*,*,*,*,縺ッ,繝・繝ッ
縺薙・ 騾」菴楢ゥ・*,*,*,*,*,縺薙・,繧ウ繝・繧ウ繝
譛ャ 蜷崎ゥ・荳?闊ャ,*,*,*,*,譛ャ,繝帙Φ,繝帙Φ
繧・ 蜉ゥ隧・譬シ蜉ゥ隧・荳?闊ャ,*,*,*,繧・繝イ,繝イ
莠・ 蜷崎ゥ・謨ー,*,*,*,*,莠・繝・繝
驛・ 蜷崎ゥ・荳?闊ャ,*,*,*,*,驛・繝ュ繧ヲ,繝ュ繝シ
繧・ 蜉ゥ隧・譬シ蜉ゥ隧・荳?闊ャ,*,*,*,繧・繝イ,繝イ
隕・ 蜍戊ゥ・閾ェ遶・*,*,荳?谿オ,騾」逕ィ蠖「,隕九k,繝・繝
縺・ 蜉ゥ蜍戊ゥ・*,*,*,迚ケ谿翫・繧ソ,蝓コ譛ャ蠖「,縺・繧ソ,繧ソ
螂ウ諤ァ 蜷崎ゥ・荳?闊ャ,*,*,*,*,螂ウ諤ァ,繧ク繝ァ繧サ繧、,繧ク繝ァ繧サ繧、
縺ォ 蜉ゥ隧・譬シ蜉ゥ隧・荳?闊ャ,*,*,*,縺ォ,繝・繝
貂。縺・ 蜍戊ゥ・閾ェ遶・*,*,莠疲ョオ繝サ繧オ陦・騾」逕ィ蠖「,貂。縺・繝ッ繧ソ繧キ,繝ッ繧ソ繧キ
縺・ 蜉ゥ蜍戊ゥ・*,*,*,迚ケ谿翫・繧ソ,蝓コ譛ャ蠖「,縺・繧ソ,繧ソ
縲・ 險伜捷,蜿・轤ケ,*,*,*,*,縲・縲・縲
BOS/EOS,*,*,*,*,*,*,*,*
EOS
EOS
filename: C:\Program Files\Develop\MeCab\etc\..\dic\ipadic\sys.dic
charset: UTF-8
size: 392126
type: 0
lsize: 1316
rsize: 1316
version: 102