ここで、形態素を対象とした自然言語処理の解析プロセスを形態素解析(morphological analysis)と呼ぶ。
形態素解析は以下の3つのstepで構成される。
日本語処理では単語分割、品詞付与、原型への復元を同時に行う。その中で単語の分割が主な処理になる。この処理のためには以下の二つの知識が必要となる。
入力された文字列に対して、この二つの知識(制約)を用いて、以下の2stepを繰り返す。
この2stepを繰り返すことで、グラフの一種である、ラティス(lattice)が得られる。ラティスの文頭ノードから文末ノードまでのパスが、形態素解析結果になる。ただ、ここで複数のパスが得られる可能性は十分ある。
制約だけを用いると、複数の解析結果が得られてしまう。そこで選好を導入する。すると、もっとも良い可能性を一つ選択することが可能となる。
伝統的な日本語の形態素解析において用いられてきた選好としては例えば以下の2つがある。
しかし、これらの選好は必ずしも理論的な根拠があるわけではない。人工知能における用語としてはこのようなものをヒューリスティック(発見的手法)とも呼ぶことができる。
実際の日本語形態素解析プログラムで用いられる手法としては、コスト最小法がある。コスト最小法ではラティスの中でのノードとリンクにコスト(単語コスト、連接コスト)を与え、コスト最小のパスを最適解として選択する。そこで、解を求めるアルゴリズムとして動的計画法(DP, dynamic programming)の一種である、ビタビ(Viterbi)アルゴリズムを用いる。そのほかにも$A^*$アルゴリズムを用いることで、コストが小さい順に上位Nこの形態素解析結果を得ることもできる。(N-best探索)
しかし、コスト最小法の問題点としては、コストを人手で経験的に与えないといけない点である。このコストをコーパスから自動で得る方法も研究されている。また、未知語への対応も課題である。
英語の形態素解析では品詞付与が重要な処理となる。品詞付与は入力単語列に対して、もっとも適切な品詞列を出力する問題である。この問題に対して統計的言語モデルを用いる手法を考える。以下のように問題を定式化できる。
単語列$W = w_1\cdots w_n$が入力された時、品詞列$T = t_1\cdots t_n$を出力する。この時、$P(T|W)$を最大とする$T$を求める。
ここで、$P(T|W)$の計算をもうするかが問題となる。一つに手法としては以下の近似方が考えられる。
近似のために、各単語について品詞を与える確率は前後の単語とは独立であるという仮定を置く。すると、以下の式が成り立つ。
ここで$P(t_i|w_i)$は品詞タグ付きコーパスがあれば、以下のように計算することができる。(近似)
$$P(t_i|w_i) = \frac{C(w_i, t_i)}{C(w_i)}$$しかしこのモデルでは品詞の並びにおいて、ある品詞の次にはこの品詞はあまり出てこない、この品詞はよく出るなどの情報は全く利用できていない。
ここで、もう少し工夫したモデルを考える。
ベイズの定理を用いると、
$$
P(T|W) = \frac{P(T)\times P(W|T)}{P(W)}
$$
となる。
ここでいくつかの仮定を置いて以下の近似をするとすると、 $$ \begin{align} P(T) &\approx \Pi_{i=1}^{n}P(t_i|t_{i-1})\\ P(T) &\approx \Pi_{i=1}^{n}P(w_i|t_i) \end{align} $$ 以下のようになる。 $$ P(T|W) \approx \Pi_{i=1}^{n} P(t_i|t_{i-1}) \times P(w_i|t_i) $$
ここで、品詞タグ付けコーパスがあればそれぞれ遷移確率、単語出力確率は以下のように計算できる。 $$ \begin{align} P(t_i|t_{i-1}) &= \frac{C(t_{i-1},t_i)}{C(t_{i-1})}\\ P(w_i|t_{i}) &= \frac{C(w_i,t_i)}{C(t_i)}\\ \end{align} $$
ここでの遷移確率が「品詞の並びにおいて、ある品詞の次にはこの品詞はあまり出てこない、この品詞はよく出るなどの情報」に対応する。
ここで、遷移確率を連接コスト、単語しゅつ色確率を単語コストと考えれば、このモデルはコスト最小法に対応することがわかる。よって、同じく最適解を求めるためにビタビアルゴリズムを用いることも可能である。
遷移確率と単語出力確率の二つの確率で品詞不意の問題を定式化するこの考え方は雑音のある通信路モデル(noisy channel model)と呼ばれる。