ElasticSearchを触っていて、形態素解析について基本的なことを知りたかったので、『はじめての自然言語処理』を読んだ。形態素解析については3章に書かれている。基本的なことがまとまっていてよかった。
初心者向けの本なので、以下のような基本的なことから説明されいた。
- 形態素解析とは、文を形態素と呼ばれる塊ごとに分割することである。日本語においては形態素はほぼ単語のことである。また、形態素解析では分割された形態素(単語)がどの品詞なのかということも判定する。
- 形態素解析は辞書を使う。形態素解析で使う辞書とは、人間用の辞書ではなく、単語の表記・活用形・品詞・活用形などの情報を持つデータセットである。
- 形態素解析は難しい。日本語の特徴として外来語をカタカナ表記することが多い。どれを複合語とするのかの判断が難しい。
このように『はじめての自然言語処理』は自然言語処理の初心者が基本的な用語や概念を把握するのにちょうどいい内容だった。サイズもページ数も参考文献と索引を含めても138ページと長くない。
- 単語辞書と連接可能性辞書を用いて、素朴に連結可能な組み合わせを見つけていく基本的な方法
- 最長一致法などのヒューリスティックな(経験則に基づく)方法
- 統計的言語モデルによる手法
- ビタビアルゴリズム(動的計画法の一種)
- 単語同士の接続しやすさを表すコストと単語自体のコストからグラフを作り、そのグラフからコストが最小となるパスを見つける方法
ところで、日本語の形態素解析ライブラリ の Kurmoji のwebサイトでは、ビタビアルゴリズムのグラフを見る事ができる。
形態素解析についてぼんやりとした知識しかなかったので、具体的なアルゴリズムについて知ることができてよかった。形態素解析が具体的に何をしているのかという知識がないと、日本語の形態素解析でハマったときに何がなんだかわからないので、知ることができてよかった。