【コラム】
ITの世界は理系の人間が幅をきかせていると思われがちだが、システムインテグレーションの現場では、意外と文系的な素養が求められることも多い…… などという無理なこじつけはさておき、今回は「日本語」を扱う上で欠かせないツールを紹介しよう。
以前、「MUSASHI」というオープンソースのツールを使って「データマイニング」の基本的な手法を紹介したことがあったが、データはなにもデータベースやXMLとして整理されたものばかりではない。むしろ日本語なら日本語という自然言語で記述されたデータの方が、量的には圧倒的に多いはずだ。例えば、顧客や同僚と毎日のようにやりとりしているメールなどは、データとしてみれば宝の山だし、実際昔のメールを消せずにずっと残しているという人も多いだろう。ただ、日々増え続けていくメールを溜まるがままにしておいても、せいぜいメールソフトの検索機能を使って備忘録にするぐらいしか有効な使い道はない。せっかく溜めたメールなら、もっと徹底的に活用したいではないか。そこで重要になるのが、データマイニングの技術の中でも自然文を分析対象とする「テキストマイニング」の技術だ。
ところが日本語という言語は、ただでさえ文字の種類や数が多くコード化がやっかいなうえ、文法的にもややこしい品詞の「活用」などがあって、単純なルールに則った処理を行いにくい。また、欧米の言語のように単語毎にスペースで区切られることもないので、たかだか文章を単語に分割するだけのことが非常に難しくなってしまう。英語ならスペース区切り毎に文章を分割すれば、「単語毎の出現回数」などの分析は簡単に行える。活用も単数形・複数形、現在形・過去形・過去分詞程度の違いが主なので、正規表現などを使えばかなり高度な処理も簡単に行えるだろう。日本語はそうはいかない。システム屋をやっていると、つくづく因果な言語の国に生まれついてしまった、と我が身の不幸を憂えることも少なくないのだ。
しかし、オープンソースの世界にはそんな悩みも一挙に解決してくれる便利なツールがある。今回取り上げるのは、奈良先端科学技術大学院大学で開発された「茶筌(ChaSen)」というソフトウェアだ。茶筌は、自然文を解析して「それ以上分割できない最小の文字列(形態素)」に分割する、いわゆる「形態素解析」の処理を行うソフトウェアだ。
茶筌は、プログラム(ChaSen)と辞書(ipadic)に分けて配布されている。Debian GNU/Linuxなど一部のLinuxディストリビューションでは、ライセンスの関係でipadicではなくcannadicが利用されることもあったが、それも現在は解決に向かっているようで、基本的にはChaSenとipadicの一組で茶筌というソフトウェアの機能が実現されていると考えて良い。
導入は、一般的な環境なら至って簡単。最新バージョンをWebサイトから取得し、それぞれについてお約束のconfigure、make、make installを実行するだけだ。ただ、ChaSenは辞書の検索に「Darts (Double-ARray Trie System)」というC++テンプレートライブラリを利用しているので、これをあらかじめインストールしておく必要がある。また、いくつかのプラットフォームではコンパイルがうまくいかないことがあるので、ここでは参考として、chasen-2.3.3を利用することを前提に特に注意すべきことをまとめておこう。
Fedora Core 3で採用されているGCC 3.4は従来よりキャストが厳格になっており、makeが「ISO C++ forbids cast to non-reference type used as lvalue」というエラーで停まってしまう。これを回避するには、lib/dartsdic.cppの180行目あたりを以下のように変更する。
Mac OS X 10.3の場合、configureファイルの8548行目あたりを以下のように変更してから実行する。
Fedora CoreやMac OS Xなど、デフォルトの文字エンコーディングがUTF-8のプラットフォームでは、辞書をUTF-8に変換しておいた方が使い勝手がいいだろう。まず、ipadicの*.dic、*.chaファイルを全てUTF-8に変換する。nkfがインストールされていれば、以下のようなシェルスクリプトで一括して変換するのが楽だ。
UTF-8への変換ができたら、以下のコマンドで辞書を生成する。
最後に、設定ファイル/usr/local/etc/chasenrcもUTF-8に変換する。
chasenを実行する際にも、必ず「chasen -i w」として、明示的にUTF-8エンコーディングによる入力を指定しよう。
以上、ChaSenとipadicがインストールできたら、適当な日本語の文章を解析してみよう。
自然文が単語ごとにばらばらに分割され、読みや品詞、活用形が表示された。ChaSenの基本的な機能はこのようなものだ。次回は、これを実際の仕事に活かすことを考えてみよう。
| 理研、脳・脊髄形成に必要な神経板湾曲の仕組みを解明 [20:16 5/25] |
| 京大、「慢性閉塞性肺疾患」患者の労作時呼吸困難は鍼治療が有効と実証 [20:08 5/25] |
| 120Hz SHVカメラ用イメージセンサーを使った撮像装置 - SHVフルスペック化へ [18:10 5/25] |
| 京大、視覚による物体認知は前頭前野からのトップダウン信号が重要と確認 [17:45 5/25] |
| 製品数の拡大だけでなくBCPの展開なども含めた総合力で事業の強化を図るTI [17:25 5/25] |
|
「ゆりてつ」サイン会は作者と都電に揺られるツアー仕立て [17:45 5/27] ホビー |
|
【ネタバレもありの徹底解明コラム】『サザエさん』タマの意外な事実 [17:30 5/27] ホビー |
|
鍼灸(しんきゅう)師が教える。オフィスで口臭予防ツボ・ベスト3 [17:00 5/27] キャリア |
|
[梶浦由記]米「アニメ・エキスポ」に2度目の参加決定 [17:00 5/27] ホビー |
|
【連載】これだけは要チェック! TOEIC(R)単語帳 第107回 今回のお題は…「chemical」 [17:00 5/27] キャリア |
4つの診断で、自分の適性を見つめなおそう!
働くこと・挑戦し続けることへの思いを綴ったインタビュー
あなたにピッタリのアドバイスを読むことができます。
転職に必要な情報が収集できます
企業からアプローチのメッセージが届きます。