形態素解析とは?仕組みや主なツール、活用例など解説
AIの発達・発展が著しい昨今、コンピューターに人間の言葉を理解させる自然言語処理の技術にも注目が集まっています。そのなかでも「形態素解析」については、既に多くの場面で実用化が進んでいます。無意識にサービスを利用していた方もきっと多いことでしょう。
本記事では、あらためて形態素解析とは何か、紐解いていきます。仕組みから主なツール、実際の活用例まで幅広くピックアップ。興味・関心がある方はぜひ、最後まで読んでみてください。
目次
形態素解析とは?まずは定義と仕組みを理解しよう!
形態素解析とは、日頃使っている言葉(自然言語)を「形態素」(=意味を有する表現要素の最小単位)にまで分割し、それらが品詞としてどれに当たるのか分類する文字列抽出法のことです。
形態素の概念自体は、「単語」とよく似ています。しかし、単語ほど単体で取り扱えるものではありません。“意味を有する表現要素の最小単位”といっても実際は、明確に意味が存在しないものまで含まれます。
とりあえず形態素解析をやってみよう!
形態素解析の仕組みを体系化するには、実践が一番です。早速行いましょう。
例文はこちらです。
まずは形態素まで分割します。
ここからが解析です。そう、分割した形態素が品詞として何に当たるのか、分類します。
これが、形態素解析(の実践)です。
形態素解析で使われる主な品詞
形態素解析によって分類される主な品詞は次の通りです。
・連体詞
・副詞
・判定詞
・助動詞
・接続詞
・指示詞
・感動詞
・名詞
・動詞
・助詞
・接頭辞
・接尾辞
【その他】
・特殊(記号など)
・未定義語(流行語やアルファベット語など)
上記の通り、抽出される品詞は多数存在しますが、実際はここからもさらに細かく分類されます。
たとえば名詞一つをとっても「普通名詞」「サ変名詞」「地名」「人名」など、もはや品詞の領域を超えるほどです。そもそも「特殊」や「未定義語」自体、あまり聞き慣れないものだと思います。これらは形態素解析ならではの仕組みといえるでしょう。なお、上述したのは「JUMAN品詞体系」です。ほかには「IPA品詞体系」と呼ばれるものもあります。
代表的な形態素解析ツール
精度の高い形態素解析を行うには複雑な処理が必要となるため、一般的に各品詞体系に基づいたツールが用いられます。
それが、読んで字のごとくいわゆる形態素解析ツールです。
形態素解析ツールには、自然言語を形態素にまで分解する機能と辞書情報が内蔵されています。両者を照合しながら、基本形への変換(“して”を“する”に変えて出力)といった高度な技術が組み込まれているコンピュータープログラムです。
なお、世の中に存在する形態素解析ツールは「形態素解析エンジン」「形態素解析API」「形態素解析ライブラリ」の三種類に大別できます。
そうした知識も踏まえて(ツールに)触れると理解はより深まるかもしれません。
以下代表的な形態素解析ツールです。
MeCab
「MeCab」は、京都大学情報学研究科と日本電信電話株式会社コミュニケーション科学基礎研究所の共同研究ユニットプロジェクトを通じて開発された、オープンソースの形態素解析ツールです。分類すると形態素解析エンジンに当たります。辞書やコーパス(本、新聞、雑誌などに書かれている内容や文字化した話し言葉を大量に集め、コンピューターで検索・分析できるようにしたデータベース)に依存しない汎用性が特徴です。加えて、「IPAdic」や「NAISTjdic」といった外部の辞書に連結できます。解析可能な言語の範囲は広く動作も軽いため、比較的、利用者が多いツールです。
JUMAN
「JUMAN」は、京都大学大学院情報学研究科で開発された形態素解析エンジンタイプの形態素解析ツールです。「日本語を計算機で解析研究すること」を目的に開発された経緯があり、文法の定義や単語間の接続関係の定義について、使用者が自分好みにカスタマイズできるようになっています。なお、Web上には誰でも使えるデモ版が用意されているため、気軽にトライアルが可能です。
日本語形態素解析API
「日本語形態素解析API」は、Yahoo! JAPANが提供する形態素解析ツールです。基本動作に加え、特別な機能としては統計情報の取得が可能。APIを利用するためのリクエストURLはHTTP、レスポンスはXMLで返される仕様です。アプリケーションID一つにつき、一日50000件までリクエストできます。
Janome
「Janome」は形態素解析ライブラリに分類される、Python上に形態素解析を組み込みたい時に有用な形態素解析ツールです。主な特徴は、pipコマンドで依存ライブラリなしにインストールでき、手軽にアプリケーションに組み込める点が挙げられます。また、デフォルトで「MeCab」と同じ辞書情報を備えているため、解析精度についても高水準です。
形態素解析の活用例
形態素解析は、検索エンジンやニュースアプリ、かな漢字変換などで使われています。そのなかで検索エンジンが行う形態素解析「全文検索」は、最もオーソドックスな活用例(文字列抽出)だといえるでしょう。
しかし、これは検索体験として完全とは言い難い側面があります。なぜなら、日本語は性質上、複雑な構成であるため、言葉の分割や情報処理の難易度が非常に高いからです。形態素解析だけでは、ユーザーが満足いく結果を提供することはほとんどのケースで困難と思われます。
そこで用いられるのが「N-gram法」あるいは「ハイブリッド法」です。 以下、それぞれ説明します。
N-gram法
N-gramとは形態素解析と同じく、言語を分割していくためのアルゴリズムです。N-gram法ではnで指定された文字数を基準に、先頭から1文字ずつ、機械的に言語を分割していきます。
一例として「形態素解析」という言葉をそれぞれの方式で扱ってみましょう。
形態(名詞)・素(名詞)・解析(名詞)
・「形態素解析」をn-gram法(n=2)で分割した場合
形態・態素・素解・解析・析
なるべく検索者の意図を取りこぼさないよう、N-gram法はワードを細かく拾います。しかし、この特徴は時にノイズはたまた誤りを生みやすいのも事実です。たとえば「東京都」が検索されたとして、含まれる文字“京都”の情報が混在するような検索結果は、ユーザーに少なからずストレスを与えてしまうでしょう。
ハイブリッド法
N-gram法単体で起き得るノイズ交じりの検索結果を避けるべく、多くの検索エンジンでは形態素解析と組み合わせた手法を活用しています。そう、これが「ハイブリッド法」です。
ハイブリッド法を用いることで、形態素解析を基本軸に採用しつつも辞書登録のない言葉(人名や商品名、専門用語など)はN-gram法で拾えるようになります。まさに両者の“いいとこどり”です。結果、精度の高い検索結果を提供できるでしょう。
が、そうはいってもやはりハイブリッド法にも弱点は存在します。
それはずばり、動作が重くなってしまう点です。
ハイブリッド法は、形態素解析とN-gram法が同時並行で行われるため、どうしても処理は遅くなります。そのため、検索エンジンのほとんどは、それぞれを同期させずに適宜切り替えるといったやり方でシステムの調整を図っています。
形態素解析が豊かな日常生活を創る!
形態素解析は検索エンジンをはじめ実用化が進んで久しい技術です。自然言語を処理するための手法として、もはや欠かせないともいえるでしょう。近年ではAIのディープラーニングや音声認識の分野にも転用されています。これからもますますその重要性が増していくはずです。
言語処理技術の発達は、日常生活をより便利にひいては豊かにしてくれるものといっても過言ではありません。だからこそ、拙稿で取り上げた形態素解析の仕組み、ツール、活用例を身近に感じてもらえると幸いです。もちろん、それらに対する学びも大切にしてほしいと考えます。
RANKING ランキング
- WEEKLY
- MONTHLY
UPDATE 更新情報
- ALL
- ARTICLE
- MOVIE
- FEATURE
- DOCUMENT