2010年3月18日木曜日

MeCab,MeCab-ipadic,php_mecabインストールメモ [PHP][形態素解析][MeCab]

下記サイトよりmecabと辞書になるmecab-ipadicをダウンロード。

また下記サイトよりmecabをphpより実行する拡張モジュール、php_mecabをダウンロード。

・mecabのインストール

# cd mecab-0.98
# ./configure
# make
# make install

・辞書をインストール

# cd mecab-ipadic-2.7.0-20070801
# ./configure
# make
# make install


・試しに実行
# mecab
今日は天気がありまりよくないですね。
今日 名詞,副詞可能,*,*,*,*,今日,キョウ,キョー
は 助詞,係助詞,*,*,*,*,は,ハ,ワ
天気 名詞,一般,*,*,*,*,天気,テンキ,テンキ
が 助詞,格助詞,一般,*,*,*,が,ガ,ガ
あり 動詞,自立,*,*,五段・ラ行,連用形,ある,アリ,アリ
まり 名詞,一般,*,*,*,*,まり,マリ,マリ
よく 形容詞,自立,*,*,形容詞・アウオ段,連用テ接続,よい,ヨク,ヨク
ない 助動詞,*,*,*,特殊・ナイ,基本形,ない,ナイ,ナイ
です 助動詞,*,*,*,特殊・デス,基本形,です,デス,デス
ね 助詞,終助詞,*,*,*,*,ね,ネ,ネ
。 記号,句点,*,*,*,*,。,。,。
EOS

おお。インストールされている。


次にユーザ辞書の追加。
ユーザ辞書を適当なディレクトリに作成して辞書をコンパイル、辞書のMecabへの認識を行う。
ユーザ辞書は所定のフォーマットにてCSV形式で作成する。
--フォーマット--
表層形,左文脈ID,右文脈ID,コスト,品詞,品詞細分類1,品詞細分類2,品詞細分類3,活用形,活用型,原形,読み,発音
--------------

・辞書の作成
# touch /home/username/user.dic
# vi /home/username/user.dic
工藤,1223,1223,6058,名詞,固有名詞,人名,名,*,*,くどう,クドウ,クドウ

・辞書のmecabへの登録
# vi /usr/local/etc/mecabrc
userdic = /home/username/user.dic

・コンパイル
# /usr/local/libexec/mecab/mecab-dict-index -d/usr/local/lib/mecab/dic/ipadic -u /home/username/user.dic -f utf8 -t utf8 /home/username/user.dic


次にphp_mecabをインストール。
# cd php_mecab-0.3.0
# phpize
# ./configure --with-php-config=/usr/local/bin/php-config --with-mecab=/usr/local/bin/mecab-config
# make
# make install
Installing shared extensions: /usr/local/lib/php/extensions/no-debug-non-zts-20060613/

ここにインストールされたのかな。
# ls -al /usr/local/lib/php/extensions/no-debug-non-zts-20060613/
合計 136
drwxr-xr-x 2 root root 4096 3月 17 17:07 .
drwxr-xr-x 3 root root 4096 3月 17 17:07 ..
-rwxr-xr-x 1 root root 111579 3月 17 17:07 mecab.so
あった。

以下のようにphp.iniを編集しapache再起動。
# vi php.ini
extension_dir=/usr/local/lib/php/extensions/no-debug-non-zts-20060613/
extension=mecab.so
# apachectl restart
本当は今回追加したextension_dirはシンボリックリンクとかにした方がいいんだろう。

おしまい。



[ 参考 ]

2010年3月17日水曜日

形態素解析とNgramのさわり[形態素解析][Ngram]

入手可能な日本語の形態素解析エンジン

◆フリーで入手可能なもの(フリーなライセンスで、自由に入手出来る)
  • KAKASI(kanji kana simple inverter)、kakasi.namazu.org
  • MeCab(和布蕪)、mecab.sourceforge.net
  • ChaSen(茶筌)、chasen.naist.jp
    サンプル:http://www.kmusiclife.com/blog/2009/10/chasenphp.html
  • Juman、nlp.kuee.kyoto-u.ac.jp
  • Sen(MeCabのJavaへの移植)、ultimania.org、sen.dev.java.net
  • 日本語形態素解析Webサービス(Yahoo!デベロッパーネットワーク)、developer.yahoo.co.jp

◆市販されているもの
  • Rosette形態素解析システム、Basis Technology
    (Google、Amazon、MSN、楽天などで利用されており、世界で最も利用者の多い形態素解析エンジンであると言える)
  • 形態素解析エンジン言語郎、Zoo Corporation
  • 日本語形態素解析MARIMO ムーター株式会社
    (大規模な辞書を持たず、1000語程度の学習モデルのみで未知語、新語、流行語、略語、話し言葉に対応する。)
⇒from wiki http://ja.wikipedia.org/wiki/形態素解析


使用予定の解析ツール

◆MeCab


おまけ:形態素解析とNgramについて

  • 言語の分割には考え方として形態素解析とNgram方式がある。前者は自然言語的な文節として分割、後者はN文字ごとに分割しインデックスを作成する、という違いがある。
    http://gihyo.jp/dev/serial/01/make-findspot/0006
    http://www.accessup.org/pj/6_B4C9CDFDBFCDA4B5A4F3/20060203.html
  • 何サイトか説明を見てみましたが正確性を志向するのなら形態素解析、ノイズも混ざるが固有名詞や新語・造語などにも対応していくのならNgram方式がよさそう。ということで今回は形態素解析を使用する。

2010年3月10日水曜日

リスク [その他]

全ての発言にはリスクが伴うということをなぜ分からないかな。

2010年3月5日金曜日

twitter API にて oAuth認証してみる [API] [PHP]

仕事にて、twitterAPIを使って外部サイトからつぶやけるようにしようと思い、oAuth認証について試してみました。

まずはhttp://twitter.com/apps/newからアカウント登録して[CONSUMER_KEY]と[CONSUMER_SECRET]なるものをもらう。
その登録の際に、今回はwebアプリということで、「あなたの招待状」はBrowserを選択すると「Callback URL:」を入力出来るのでとりあえずそのときどきに指定しようと思い空にしておく。

それで、Google先生にきいてあれやこれやしたのだけどうまい具合にtokenが返ってこないしなんだか、「Desktop applications only support the oauth_callback value 'oob'」ってエラーっぽいのが返ってくる。

そこで再度登録ページにいってみたら先程の「Callback URL:」が「送信」になってて「Browser」じゃなくなってる。。
もしかしてーって思ってとりあえず「Callback URL:」を埋めて再度試してみたらちゃんとtokenが返ってきた。。

結構時間くったなぁ・・・。

[ 参考 ]

短縮URL [API] [AJAX]

このページについて「twitterにつぶやく」ボタンを生成する際に短縮URLを使ってみたくてtwitterが採用しているhttp://bit.ly/を使ってみた。

http://code.google.com/p/bitly-api/wiki/ApiDocumentationを見ながらやってみたけどすごく導入が楽だった。
http://bit.ly/にてユーザ登録を行い、http://api.bit.ly/shortenに「version」「longUrl」「login」「apiKey」をパラメータとして付加して送ると短縮したURLが帰ってくる。
さらにhttp://username .bit.ly/(だったかな・・・)にアクセスすると各短縮URLのクリック数なども見れて便利そう。