形態素解析器メモ
はじめに
形態素解析器が何たるかも知らずにいたのでメモ。
形態素(単語)に分割する手法
基本用語
- 単語辞書
- 「見出し語」「読み方」「品詞」「活用形」「原形(基本形)」などをそれぞれ保持しているもの
- 辞書に登録されている見出し語を形態素とみなす
- 連接可能性行列
- 「文頭」「文末」「名詞」「動詞」「助詞」「接続詞」など、2つの単語(品詞)が隣接する可能性があるかどうかを0,1で保持している行列
- ラティス
- 単語辞書と隣接可能性行列を使って、入力された文をグラフに直したもの
- http://d.hatena.ne.jp/takeda25/20110807/1312702772 (ラティスとプログラム上の実現などについてわかりやすい!)
コスト最小法
- いろんな形態素に分けられる可能性がある(「きょう/はは/れ」や「きょう/は/はれ」など)
- 分け方の中で妥当そうなものを順位づける方法
- ラティスにおけるすべてのパスについて、以下の2つの総和をそのパスのコストとする
- 一番コストの小さいパスが妥当(そう)な分割
- 隣接可能性行列の要素(辺)をコストにする感じ
- ラティスはDAGとも見れて、各頂点にそこまでの最小コストを保持するDP(ビタビアルゴリズム)で求められる
- 応用として、形態素数最小法、文節数最小法なども考えることができる
- コストの値は人力で与えるなどしないといけない
- コーパスから自動的に学習する手法も開発されてる
- 辞書にない単語(未知語)があるとやばい
- 未知語の扱いをどうするか?
- 新しい言葉づかいなどで書かれた文章だとやばい
- 「こんにちは」が「ちわーっす」などになってると鼻血でそう
- どうすればいいか?
最長一致法
- できるだけ長い形態素(単語)で構成される分け方を優先して選ぶ
N-best探索
- 前向きDP後ろ向きA*アルゴリズムであり得そうな分け方を上位N件求める
- 前向きDPで確率を求める
- 後ろ向きA*で上位N件を求める
- http://ci.nii.ac.jp/naid/110002725063
統計的言語モデルによる手法
- ラティスの頂点・辺のコストを確率値にして、確率が一番高くなるパスをもとめる
- 確率値を求めるのが難しい
- 一部のデータから作る言語モデルを使うといろいろ問題もある
- 隠れマルコフモデル(HMM)
- 生成モデル
- 条件付き確率場(CRF)
- 識別モデル
辞書を使わない方法
- ナウなヤングにバカうけの技術
- 最新の研究成果を使いまくっているので何をいってるかわかry
- とりあえず読んでおきたい資料メモ
- どうやってるかわからないけど企業として辞書なしMAをがんばってるところもあるみたい
- 1000語程度の学習モデルは持つってwikipediaに書いてあった
- http://www.atmarkit.co.jp/news/200708/15/mooter.html