iPhoneからMeCabを呼びたい(2)

前回の続き。

きまぐれ日記のエントリのコードを動かしてみた。

価格とスペック、WindowsもインストールできるとのことでMacBookを購入
価格|と|スペック|、|Windows|も|インストール|で|き|る|と|の|こと|で|MacBook|を|購入|

おおお…! 感動。

iPhone用の辞書を使ってみる

続いて、iPhone用の辞書でやってみる。
パスは以下。

/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.0.sdk/usr/lib/dic/ja/im/

結果は残念なことに…。ライブラリを追加する際にiOSから選べなかったので、iPhoneプロジェクトにしないとダメなのかも。

結果。

価格とスペック、WindowsもインストールできるとのことでMacBookを購入
プログラムはシグナルを受信しました:“EXC_BAD_ACCESS”。

iPhoneプロジェクトでやってみる

iPhoneプロジェクトでやってみても、mecab_sparse_tonode2で落ちる。
libmecab_em.dylibというライブラリを使っているんだけど、「em」は恐らくembedで、機能が制限されているのではなかろうか…?
libmecabra.dylibはなんだろう?
uggg… 振り出しに戻る。

=> 間違いを発見。誤ってmac用の辞書を使っていました。
iPhone用の辞書に直したところ…!

今日|は|台風|の|ため|、|四ツ谷駅|は|水浸|し|で|し|た|。|

うひょー! 動いた!!
うわぁぁぁぁい!!!!
次は解析結果を取ってみよう!

解析結果見てみる

サンプルで出しているのと同じ情報を出してみる。

surface:[今日] feature:[補助] 0 4 rcAttr:1817 lcAttr:1817 posid:6482 chartype:0 stat:1 cost:1961
surface:[は] feature:[羽] 4 6 rcAttr:1583 lcAttr:1583 posid:15520 chartype:5 stat:0 cost:3209
surface:[台風] feature:[補助] 6 10 rcAttr:1817 lcAttr:1817 posid:6482 chartype:0 stat:1 cost:3858
surface:[の] feature:[盧] 10 12 rcAttr:1576 lcAttr:1576 posid:18300 chartype:5 stat:0 cost:4660
surface:[ため] feature:[ため] 12 16 rcAttr:1575 lcAttr:1575 posid:16869 chartype:5 stat:0 cost:41
surface:[、] feature:[,] 16 18 rcAttr:1822 lcAttr:1822 posid:8000 chartype:2 stat:0 cost:-575
surface:[四ツ谷駅] feature:[補助記号] 18 26 rcAttr:1817 lcAttr:1817 posid:6482 chartype:0 stat:1 cost:1356
surface:[は] feature:[羽] 26 28 rcAttr:1583 lcAttr:1583 posid:15520 chartype:5 stat:0 cost:2604
surface:[水浸] feature:[補助] 28 32 rcAttr:1817 lcAttr:1817 posid:6482 chartype:0 stat:1 cost:3253
surface:[し] feature:[し] 32 34 rcAttr:1223 lcAttr:1223 posid:4465 chartype:5 stat:0 cost:4875
surface:[で] feature:[で] 34 36 rcAttr:461 lcAttr:461 posid:6756 chartype:5 stat:0 cost:-1069
surface:[し] feature:[し] 36 38 rcAttr:1223 lcAttr:1223 posid:4465 chartype:5 stat:0 cost:-1124
surface:[た] feature:[た] 38 40 rcAttr:159 lcAttr:159 posid:4244 chartype:5 stat:0 cost:-5313
surface:[。] feature:[.] 40 42 rcAttr:1818 lcAttr:1818 posid:8000 chartype:2 stat:0 cost:-8997

おおー!できたできた!
mecab_node_tのパラメータの意味は調べないとわからないけど、やりたいことはできそうだ!
mecab_node_tのid, isbest, sentence_length, alpha, beta, prob, token はMECAB_APPLE_ENHANCEMENTのコメントともに、コメントアウトされていて使えない。tokenが使えないのはまずいかもしれない?

謝辞

高橋さん、いつもありがとうございます。

この投稿へのコメント

  1. tin said on 2010/09/13 at 20:34

    読みも取れますか?

  2. kaiba said on 2010/09/13 at 23:40

    featureに読み情報も入ってくるようですが、上の例だと出ていないので駄目かもしれませんね。

    “素性 (品詞, 活用, 読み) 等を CSV で表現したもの”

  3. tin said on 2010/09/14 at 13:12

    dicrc は違うのでできないと思うね。
    ios向けの辞書をコンパイルやって見たけどできなかった。

  4. kaiba said on 2010/09/14 at 23:02

    iOS向けの辞書のコンパイル、興味深いです。
    …UTF16LEでビルドするだけですか?

  5. tin said on 2010/09/15 at 00:03

    ビルドまだできなかった。
    ビルドするためにiOS向けのmecabが必要だと思います。
    libmecab_emでできません。OSXのmecabでできるけど、その辞書ビルドがiOSで使えません。OSXはi386だけどiOSはarmだからだと思います。

    iOSのmecabも辞書も両方はimeのために作られたと思います。普通のmecabと全然違います。
    例えば、-aを使うとこれが出ます:
    太郎 補助
    は 張
    は 貼
    は は
    は 破
    は 波
    は 坡
    は 播
    は 波
    は 派
    は 端
    は 羽
    は 覇
    は 破
    は 派
    は 刃
    は 葉
    は 歯
    は は
    次郎 補助
    が が
    が が
    が が
    が 河
    が が
    が 雅
    が 鵞
    が 娥
    が 駕
    が 我
    が 賀

    漢字の場合で何も出てないけど平仮名ならそのよみに合う漢字が出ます。

    私も興味深いです。メールは buku at pichoko.info

  6. kaiba said on 2010/09/15 at 02:14

    本当だ… 完全にIMEのために使っているようですね。
    IPAの辞書には読み情報が含まれるみたいですね。
    http://d.hatena.ne.jp/sile/20100227/1267260585
    iPhoneの辞書には読み情報が無いのでしょうか?
    それともlibmecab_emが使用しないだけでしょうか?
    調べないとわかりませんね。

    僕も、iPhoneのMeCabが使用できなければ、mecabと辞書をビルドすることを考えていました。
    iPhone向けにビルドするには、XCodeでビルドするしか思いつかないですが、難しそうですね。

    さらにビルドができなければ、しぶしぶ、これを使うつもりでした。
    http://developer.yahoo.co.jp/webapi/jlp/

    さらにそれも駄目だったら、自分で形態素解析サーバを作るつもりでした。ーー;

    僕のメールアドレスは、 http://pokosho.com/b/about に書いてあります。

コメントを残す

メールアドレスが公開されることはありません。

この投稿へのトラックバック

トラックバックはありません。

トラックバック URL