IT NoViCe

IT 初心者の勉強備忘録ブログ

形態素分析

私たちは、文をみて大体の場合すぐに意味を理解できます。

だが、機械にとってはそうはなりません。

機械が意味を理解するための第一歩、「形態素解析」について今日は書いていきます。

 

 

形態素解析とは

 私たちから見たら意味の分かる文でも、

コンピューターから見たら単なる文字の羅列にしか見えません。

そのため、意味を持つ最小の文字列である 形態素 ヘ分割し、

その形態素の品詞は何か・活用はあるか・元の表記は何か などを解析します。

この処理を形態素解析といいます。

 

形態素解析の難しさ

形態素解析とは、簡単に言えば辞書に登録されてるどの単語が

文章に含まれているか調べる処理です。

その中で以下のような難しさがあります。

  • 同音異義語が多く、正しい区切り目を見つけ出すことができない。
  • 文法体系が多く、正解の文法(正書法)が存在しない。
  • 省略する表現が多く文法に則った表現をするとは限らない。
  • 外来語のカタカナ表記
  • 複合語の判断
  • 同じ単語でも読みが異なることがある。
  • 方言による表記の揺れ

 

これらの問題の解決策としては、

絶対に守らなくてはならない「それ以外はあり得ない」という硬いルールである

制約(絶対的な制約)や、

「常識的に考えるとこういう解釈が一般的だろう」という柔らかいルールである

選考(優先的な制約)などを利用することが多いです。

 

形態素解析の基本的なアルゴリズム

形態素解析の基本的なアルゴリズムは以下の2ステップで実現されます。

  1. 入力された文中の各位置から始まる単語を単語辞書を参照して取り出す。
  2. 前後に位置する単語が連続して書かれる可能性を判断しながら単語をつなげる。

ステップ1では単語辞書を使用しますが未定義後は取り出すことができません。

例として人名や地名などがありますが、これらは連続する漢字、カタカナ、記号などを

1つの名詞として処理することである程度は解決できます。

また、ステップ2で前後に位置する単語がつながってよいかを判断する際に

単語辞書とは別の連接可能性辞書(2つの単語が隣接する可能性があるかどうか)

を用いて処理を行います。

この2ステップによる解析を文末まで繰り返し行うことで、形態素解析が行われます。

しかしここまでの処理では複数の可能性や不自然な候補が存在しています。

そのためある程度結果を絞り込むために様々な処理を施していきます。

 

ですが、その処理についてはまた書いていきます。

 

ちなみに、前回と同じく参考はこちらでした。

はじめての自然言語処理

はじめての自然言語処理

 

 

とりあえず今回はここまで。