自然言語処理入門 Vol.1 形態素解析

スポンサーリンク
StartLab 挫折しないプログラミング学習
スポンサーリンク
StartLab 挫折しないプログラミング学習

概要

  • 今回は「形態素解析」について紹介します
  • 「形態素解析」は、現在では、様々な自然言語処理を行う際に使用する基本的な処理に位置します。

形態素解析とは

  • 形態素解析については、Wikipediaに、次のように書かれています。

文法的な情報の注記の無い自然言語のテキストデータ(文)から、対象言語の文法や、辞書と呼ばれる単語の品詞等の情報にもとづき、形態素(Morpheme, おおまかにいえば、言語で意味を持つ最小単位)の列に分割し、それぞれの形態素の品詞等を判別する作業である。

形態素解析」Wikipedia より
  • 形態素解析の結果を利用して、より複雑な処理を実施することが多く、精度や速度が要求されます。
  • 精度向上や速度向上のために様々な技術が導入されてきました。
  • 実際の実行結果の例を示します

「長い髪の黒い眼の大きな少女」

形態素品詞
長い形容詞
名詞
助詞
黒い形容詞
名詞
助詞
大きな連体詞
少女名詞

形態素解析の確率モデル

  • 形態素解析を実現するために、形態素列の出現確率に基づいているものがあります。
  • 出現確率を表現する一つの例を示しておきます。
  • この確率モデルに従うと、正しい形態素解析結果を得るのは、「形態素生起コスト」と「品詞連接コスト」の合計を最小化することで実現できます。
  • これらのコストは、いわゆる「辞書」中に格納されています。コスト設定は、大量のコーパスから統計的に求めたり、人手による調整を施したものもあります。適切なコスト設定がされていれば、そのコストを最小とするような組み合わせを求めることで適切な形態素解析結果を得ることができます。

コスト最小法

  • 前述の確率モデルに基づいて、用意されたコストを用いて形態素解析を実行する例を示します
  • 形態素解析は、単純な形態素区切りを判定すればいいわけですが、複数の区切り位置候補があった場合に、どの区切りを採用するのかが精度に影響します
  • すべての候補列を並べて、その中の最小コストの候補列を選択すればいいのですが、単純な方法では計算量が膨大になってしまいます。現実的には候補列をグラフで表現し、最小コストを求めるためにビタビアルゴリズムを用いて計算します
    (下図の太枠の経路が最小コストになっています)

リンク:フリーの形態素解析システム・辞書

  • 世の中には、フリーで提供されている形態素解析システムがすでに複数存在していて、その実績が確認されています。
  • したがって、形態素解析を利用する立場では、前述のようなモデルやアルゴリズムを独自に実装する必要はありません。
  • 以下にリンクをを示しておきます

M.H

タイトルとURLをコピーしました