photo by s1m0ne "Ocean tender love cocktail"
最近は日本語を解析してなんかできないかなぁと思っているので、形態素解析用のソフトウェアMeCabをインストールして、いろいろ遊んでいる状態です。インストールはそんなに難しくないと思いますが、とりあえず載せておきたいと思います。
まずはMeCabとその辞書、ライブラリ一式のインストール。ソースからビルドしてインストールするのでもいいですが、今回は手軽にapt-getを使用。
$ sudo apt-get install mecab mecab-ipadic mecab-utils libmecab1 libmecab-dev
で簡単にインストールできました。
ですがこのままでは辞書の文字コードがeuc-jpであるため、utf-8が標準のubuntuでは少し使いづらい。調べてみたら、IPA辞書をeuc-jpからutf-8に変えるコマンド
$ sudo /usr/lib/mecab/mecab-dict-index -d /usr/share/mecab/dic/ipadic
-o /var/lib/mecab/dic/ipadic -f euc-jp -t utf-8 -p
がありました(From ubulog)ので、それを実行。ためしにコマンドラインから
$ mecab
隣の客はよく柿食う客だ
隣 名詞,一般,*,*,*,*,隣,トナリ,トナリ
の 助詞,連体化,*,*,*,*,の,ノ,ノ
客 名詞,一般,*,*,*,*,客,キャク,キャク
は 助詞,係助詞,*,*,*,*,は,ハ,ワ
よく 副詞,一般,*,*,*,*,よく,ヨク,ヨク
柿 名詞,一般,*,*,*,*,柿,カキ,カキ
食う 動詞,自立,*,*,五段・ワ行促音便,基本形,食う,クウ,クウ
客 名詞,一般,*,*,*,*,客,キャク,キャク
だ 助動詞,*,*,*,特殊・ダ,基本形,だ,ダ,ダ
EOS
無事に文字化けせずに形態素解析が行われているようです。面白い!
次にpython上からmecabを動かしたいので、mecab-pythonバインディングをインストールします。
sourceforge.jpからmecab-python moduleをダウンロードして、メインディレクトリ上から
$ python setup.py build
$ sudo python setup.py install
でインストール。ためしにpython上から、
$ python
>>> import MeCab
>>> m = MeCab.Tagger("-Ochasen")
>>> print m.parse("羊をめぐる冒険")
羊 ヒツジ 羊 名詞-一般
を ヲ を 助詞-格助詞-一般
めぐる メグル めぐる 動詞-自立 五段・ラ行 基本形
冒険 ボウケン 冒険 名詞-サ変接続
EOS
無事に出力されていることがわかります。
あとは文章のキーワードを抽出するようなプログラムを自分で書くだけ…と思っていたのですが、なんともう実際にモジュールとして提供しているサイトを発見。しかもApache License v2.0なのでとても使いやすい。マジっすか!ということでこれも試用してみます。
まずはhttp://tanashi.s240.xrea.com/mword/にアクセス。mword.pyとして保存。ただしこれは辞書がeuc-jpであることを前提としているので、エンコーディングをutf-8にした上で、"coding: euc_jp"から"coding: utf-8"に変更します。そしてsample.pyを手本にしながら、試しにあるニュース記事のキーワード抽出を行ってみると、
キーワードを抽出させる元の文章:「4月半ばからレンジ相場が続いてきたドル/円<JPY=>が10日、テクニカル上の上値抵抗線だった106円半ばを上抜け、3カ月ぶり高値を更新した。バーナンキ米連邦準備理事会(FRB)議長の発言などをきっかけに、市場では米当局が信用リスク問題をにらんだ金融緩和から、インフレとドル安警戒に軸足を移したとの見方が強まっている。ドルは短期的に2月高値の108円台への上昇を見込む声も上がっている。....」
$ python test.py | head -n 10
ドル 63.639610
市場 17.320508
通貨 16.000000
インフレ 14.000000
上昇 13.856406
姿勢 12.000000
発言 10.392305
米当局 10.182920
豪ドル 9.797959
ドル安 8.239069
と、どうやらドル通貨に関する記事であるということがわかります。きちんとキーワード抽出を行えているようです。
しかし、殆どソースコードを書かずに日本語解析まで出来てしまうと、逆に心配になってきます。
『車輪の再発明は極力行わない』というのがプログラミングでの大原則ですが、ここまで簡略化されてしまうとなんか申し訳ないですね。開発者に感謝。
3 件のコメント:
今学期、Yahoo! JAPANの提供してる講座を受講してます。
単位の埋め合わせだけど。マーケティングの人とか、
オークションの担当の人とか、知恵袋の開発した人とか、
いろんな人が週替わりで来て講師を務めてくれます。
先週は形態素解析の人でした。
http://developer.yahoo.co.jp/jlp/
ここの部長みたいな人なんだって。面白かったよ。
形態素解析は検索エンジンの核となる技術だから、yahoo!とかは相当力入れてるでしょうねぇ。
実際『日本語形態素解析Webサービス』を使用してみたんだけど、やっぱ精度がけっこう高い。どういうアルゴリズムなんだか分からないですけど、よく作ったなぁという感じです。
というか早稲田すごいなぁ。こっちの大学ももっと有名な方呼んできてほしい(笑)
なんか女の人だったの。
上智の文学部国文科日本語専攻卒。
で、ことえりだったかATOKだったかで働いてて、
5年くらい前にYAHOOに引っこ抜かれたんだって。
ほらみなさん、スタバ、スターバックス、
スターバックスジャパンっていうけど、
どれでひいても出てくるでしょ(といって
実際に検索かけてみる)?簡単に言ってしまえば
これも私たちのやってることのひとつでしてね…
と語り始めてたあたりは面白かったんだけど、
助詞とか単語だとかよくわからない数式とか
出てきたあたりでよくわかんなくなって寝ちゃった。
けど聞いてた部分は面白かったよ。
コメントを投稿