関心語解析ぽいやつ(2)

あなたは 人目の訪問者です。
あなたは 人目の訪問者です。

関心語解析ぽいやつを、改良してみました。
MeCabを使って日本語形態素で分かち書きすると、言葉がバラバラに分解されてしまうため、単純に名詞を拾って集計するような方式では、関心語解析としては不十分であることは、前回のブログに書いた通りです。
ただし、日々めまぐるしく変化するWebチャットやブログ記事の話題の関心語を、いちいちユーザ辞書に登録するような面倒なことはやりたくありません。
何もしなくても、何らかのアルゴリズムで自動的に、あたかもユーザ辞書に関心語が登録されているかのように振舞えるようにすることがゴールです。
このためには、東京大学・中川裕志教授、横浜国立大学・森辰則助教授が作成した「専門用語自動抽出システム」を利用することにしました。
今回は、下記サイトにある”TermExtract”というPerlモジュールを使いました。
http://gensen.dl.itc.u-tokyo.ac.jp/termextract.html
関心語解析のエージェントプログラムは、C#で書いており、形態素解析は、MeCabのWin32バイナリのDLL中のC関数を、C#から直接コールしています。
また、TermExtractは、C#からスレッドを起こし、その中でActivePerlを起動し、Perlスクリプトの実行結果を標準出力からストリームを使ってC#で取得しています。
(C#からPerlの起動方法は、機会があればコードを示したいと思います)
実現方式は、MeCabが出力する形態素解析結果を、TermExtractに入力して、重要度が1.00よりも大きい語だけのリストを作成し、このリストを参照しながら、MeCabが出力する形態素解析結果を集計していく方式です。
集計の際、TermExtractで出力されたリストを元に、形態素を連結して集計対象として出現頻度統計をとり、これをソートして上位から規定数表示するようにしています。
結果は、以下のような表示を得ることができました。
Kaiseki29.JPG
MeCabでは分割されていたが、今回作成したシステムでは連結して評価できるようになった例は、以下の通りです。

ガンダムOO
世界経済連合
太陽光エネルギー発電システム
経済特区
天才科学者
独立治安維持部隊
宇宙技術者
新型モビルスーツ
公開軍事演習
人類革新連盟
私設武装組織
ソレスタルビーイング
戦争根絶
連邦正規軍
地球連邦政府
イオリア・シュヘンベルグ
日本語形態素解析
麒麟ストロングセブンビール
マックリブセット
米粉蒸しパン
眠り姫病
WBC監督
新規口座開設
東証株価
水着クッション
東証続落
明太子パスタ
野菜ジュース
仮面ライダー
NYダウ続落
麻生総理
日銀砲

・・・・など。
なお、TermExtractをそのまま使うと、今回の用途には以下のような一部の問題があったため、Perlスクリプトを少しだけ修正して使っています。
※ 諸般の都合で、MeCabは、ちょっと古いバージョンを使っています。
(1) ソレスタルビーイング
ソ 名詞,一般,*,*,*,*,ソ,ソ,ソ
レス 名詞,サ変接続,*,*,*,*,レス,レス,レス
タル 名詞,接尾,助数詞,*,*,*,タル,タル,タル  ←これが原因で分割されてしまう
ビーイング 名詞,固有名詞,組織,*,*,*,ビーイング,ビーイング,ビーイング
(2) イオリア・シュヘンベルグ
イオリア 未知語,*,*,*,*,*,*,*,*
・ 記号,一般,*,*,*,*,・,・,・  ←これが原因で分割されてしまう
シュヘンベルグ 未知語,*,*,*,*,*,*,*,*
また、意図しない語が連結されることがあるため、C#でコードを書いて自動回避しています。
いまのところ、ユーザ辞書なしで、満足のいく結果を得ています。
この続きは、実運用して評価した後、また書きます。
謝辞: 東京大学・中川裕志教授、横浜国立大学・森辰則助教授に感謝いたします。

コメント