2013年12月25日
ビッグデータを扱う際に、テキストマイニングが重要となってきました。
どうすれば膨大なテキストデータから、意味のある情報を取り出せるかは、少し自然言語処理の理論とアルゴリズムの知識が必要です。
弊社は長年、日本語のテキストマイニングのシステム開発に関わってきました。
クチコミ収集から、意味解析、文章要約、知識表現まで、色々の領域で自然言語処理の技術開発を手伝わせて頂きました。
その経験から、応用例を挙げながら、何回かにわたって基本となる技術を紹介したいと思います。
「応用例1」検索エンジン
検索エンジンは、文字列検索より少し賢いことをやらないといけません。
例えば、以下の文章を含めてページがあるとします。
ページ①
昨日、島に出かけました。
ページ②
会社に忘れ物をしてしまいました。
そこで、ユーザが「しま」というキーワードで検索するとします。
常識だと、ページ①の「島」がヒットしないといけません。
また、ページ②の「しまいました」の「しま」はヒットしてはいけません。
但し、単なる文字列検索だと、①はヒットせず、②はヒットしてしまいます。
この問題を解決するためには、形態素解析が必要です。
「形態素解析」
形態素解析とは、文章を意味のある単語に切り分ける処理です。
例えば、
昨日、島に出かけました。
は
昨日 / 、 / 島 / に / 出かけました / 。 /
となります。
同じく、
会社に忘れ物をしてしまいました。
は
会社 / に / 忘れ物 / を / して / しまいました / 。 /
となります。
この切り分けの処理は、「わかち書き」とも呼びます。
但し、形態素処理には、もう一つの重要な処理があります。「品詞付け」です。
それぞれの単語は、どのような単語なのかを解析する処理です。
結果として、
表記 | 読み | 品詞 | 基本形 |
昨日 | きのう | 時相名詞 | |
、 | 、 | 読点 | |
島 | しま;とう | 普通名詞 | |
に | に | 助詞 | |
出かけました | でかけました | 動詞 | 出かける |
。 | 。 | 句点 |
表記 | 読み | 品詞 | 基本形 |
会社 | かいしゃ | 普通名詞 | |
に | に | 助詞 | |
忘れ物 | わすれもの | 普通名詞 | |
を | を | 助詞 | |
して | して | 動詞 | する |
しまいました | しましました | 動詞性接尾辞 | しまう |
。 | 。 | 句点 |
となります。
注)説明のため出力を一部編集しました。実際のエンジンの生の出力とは多少異なりますので、ご注意ください。
このように、単語に分かられますと、読みと基本形の欄に、厳密の文字列検索すれば、
「しま」は「島」の読みの欄とマッチし、「しまいました」とマッチしないようになり、問題が解決されます。
「形態素解析エンジンの例」
無償: ChaSen, MeCab, Sen, Lucene Gosen
有償: Perceptrons Engine, SemanticFinder
などがあります。
「おまけ(エンジニア向け)」どうやって実装されているの?
簡単に言えば、意味のある単語(とのその品詞)のテーブルを用意し、そのテーブルの中に検索すれば良いです。
そのテーブルは「辞書」とも呼ばれます。
実際のパーサ処理は色々ありますが、イメージ的には
- 文章の頭から順番に眺めて
- テーブルの中から引いて、現在眺めている文字列がテーブルの中にびったり合う単語があれば、それを出力する
- 1.に戻ってその後の文字列を引き続き処理する。
のような処理です。
問題は、
しまいました
を
/しまいました [しまう] /
にするか
/しま [島] / いました [居る]/
にするのかです。
(両方とも、辞書に存在する意味のある単語から成しています。)
一番長いマッチイングが一番良いマッチングとは限りません。
普通、「島居ました」と言わないのですね。「島」の後に、「に」とか「で」とか「を」とかが無いと意味が成り立ちない、という人間の事前知識があります。
このような「普通は、○○△△と言わない」や
「○○の後に、△△が付く」などの事前知識を
形態素解析エンジンに与える必要があります。
その知識の与え方として、「コーパスから学習する」という手法がよく用いられます。
「コーパス」とは?
コーパスとは、人間が予め文章の中の単語に、手動で品詞などの情報を付与したテキストの大集合です。
つまり、色々な文章の形態素解析結果を人間が予め用意をし、エンジンがそれを学習するためのものです。
コーパスの中にある正解を確率モデルなどで学習すれば、形態素解析エンジンは、「しまいました」は「島居ました」より「しまいました(しまう)」の方が正しい、と判断できるようになる訳です。
コーパスは購入できます。コーパス制作に専念している日本の会社・研究機関もいくつかあります。
有名なのは、国立国語研究所です。
他もありますので、検索してみてください。
———————————————————————————————————
以上、第一回の「形態素解析」でした。
第2回は近日に掲載する予定です。ご期待下さい。