When it’s ready.

出来るまで出来ない

Mac OSX 10.5 LeopardにMeCab0.96 (port版)の環境をインストール

簡単に出来ると思ったのに、意外とこけたのでメモ

ソースからインストール方式と、MacPortから入れるのと2種類有る。
それぞれのメリットとデメリットが有ると思うが、自分が感じたところ。

  1. ソース式
    1. メリット
    2. デメリット
      • Port式よりめんどくさい
      • コンパイルに時間がかかる
      • 正しいUnInstallの仕方がわからない
  2. Port式
    1. メリット
      • コマンド打つだけでいい
      • uninstallが簡単
    2. デメリット
      • バージョンが古い(今日現在096、ソース097と比較して)

始め、ソースから入れて動作チェックまで終わったけどVの字がPort版を使っているとの事だったので挙動を合わせたかったので辞書とMeCab本体を削除した。Portの方がインスコは簡単だと思ったが意外と時間が掛かった。

MeCab + 辞書 インストール

# port install MeCab +utf8-only +utf8
# port install mecab-ipadic-utf8

途中のめちゃくちゃなんか文字が出るけどコマンド的には以上でOK
結構時間がかかった気がする。

MeCab 動作チェック

% mecab
はてなのブログは、ダイアリー
はてな	感動詞,*,*,*,*,*,はてな,ハテナ,ハテナ
の	助詞,連体化,*,*,*,*,の,ノ,ノ
ブログ	名詞,一般,*,*,*,*,*
は	助詞,係助詞,*,*,*,*,は,ハ,ワ
、	記号,読点,*,*,*,*,、,、,、
ダイアリー	名詞,一般,*,*,*,*,ダイアリー,ダイアリー,ダイアリー

こんな感じになればOK

MeCab Python Bindingで苦しむの巻き

本来であればportで

# port install py25-mecab

とすれば使えそうなものだが、使えなかった。
原因は、OSX デフォルトのPython環境にPortのモジュールはインストールされない。

ソースから、setup.py installすれば良いかと思ったけど全然エラーが出まくってbuild出来ない。

こちらの原因は、最新のPythonBindingはVer097だったこと。MacPortからインストールされるMeCabは096なのでここがミスマッチしていた。

素直に096のBindingをDLする事で、無事にインストールとモジュールの読み込みが成功した。

動作チェックしたソースは以下の通り

"""
macabConv.py

Created by Atusi on 2007-07-15.
Copyright (c) 2007 __MyCompanyName__. All rights reserved.
"""

import sys
import os
import MeCab

def te(formBody):
  result = []
  try:
    t = MeCab.Tagger('')
    m = t.parseToNode(formBody)
    #result = m.rstrip(" \n").split(" ")
    while m:
        r = m.feature.split(",");
        if r[0] == "名詞":
            #print n.surface, "\t", r[0]  # 品詞
            result.append(m.surface)
        m = m.next;
    return result
  except RuntimeError, e:
    print "RuntimeError:",e


arr = te('今日は天気がいい, a2c')

print arr

for i in arr:
  print i

実行結果

% python mecabConv.py                          [~/local/repos/tozawa3/trunk/atu/mrsOne]
['\xe4\xbb\x8a\xe6\x97\xa5', '\xe5\xa4\xa9\xe6\xb0\x97', ',', 'a', '2', 'c']
今日
天気
,
a
2
c

1文字で名詞扱いにするところをどうにかしないとダメポイ