Current Path : /usr/local/share/doc/mecab/ |
FreeBSD hs32.drive.ne.jp 9.1-RELEASE FreeBSD 9.1-RELEASE #1: Wed Jan 14 12:18:08 JST 2015 root@hs32.drive.ne.jp:/sys/amd64/compile/hs32 amd64 |
Current File : //usr/local/share/doc/mecab/feature.html |
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>MeCab の開発経緯</title> <link type="text/css" rel="stylesheet" href="mecab.css"> </head> <body> <h1>MeCab の開発経緯</h1> <h2>形態素解析の歴史</h2> <p> オープンな形態素解析器として Juman, ChaSen が存在する. それぞれの 基本的な開発理念は以下である </p> <ul> <li><a href="http://www.kc.t.u-tokyo.ac.jp/nl-resource/juman.html">Juman</a> <p> Juman 以前の商用的に配布されていた形態素解析器は, 辞書や品詞体系 連接規則はほぼ固定されており, ユーザ自身自由に定義できなかった. Juman は これらの定義すべて外部に出し自由な定義が可能になった. </p> <p> 辞書は比較的入手しやすいが, 連接コストや単語生起コストの定義は 人手によって行わざるをえなかった. 解析ミスを発見するたびに副作用が無い範 囲で連接コストを修正する必要があり, 開発コストが大きい. </p> <p> また, Juman は日本語の形態素解析として開発されていたので, 未知語処理が日本語に特化されており, 未知語処理の定義を 自分で与えることはできない. また, 品詞は2階層までに固定されており, 品詞体系には一種の制限がある. </p> <li><a href="http://chasen.naist.jp">ChaSen</a> <p> ChaSen の貢献の1つは, 統計処理 (HMM) によって連接コストや単語生起コストを 推定するようになった点にある. この処理のおかげで, 解析ミスを 蓄積するだけで自動的にコスト値を推定できるようになった. さらに, 品詞階層も無制限になり, 品詞体系を含めて(本当の意味で) 自由に定義できるようになった. </p> <p> しかし, 複雑な品詞体系にすればするほど, データスパースネスの問題が 発生する. HMM を使う場合, HMM の内部状態(Hidden Class)を 1つに固定する 必要があるため, 各品詞から内部状態への「変換」が必要となる. 単純には 各品詞を1つの内部状態に割りあてればよいが, 活用まで含めて品詞を すべて展開すると, その数は 500 にも及び, 低頻度の品詞について 信頼度の高い推定量を得ることができない. 逆に, 頻度の高い「助詞」等の品詞は 語彙も含めて内部状態にしないと高い精度が得られない. 複雑な品詞体系にすればするほど, 内部状態の定義が困難になる. つまり, 現状の(複雑な)品詞体系を扱うには, HMM では力不足であり, それを補助するための人手コストが大きくなっている. </p> <p> また, ChaSen にはコスト値推定モジュールが付与されていない. NAISTの内部では利用できるらしいが, 上記の理由から設定すべき パラメータが多く, 使いこなすのが困難である. </p> <p>さらに, ChaSen も未知語処理もハードコーディングされており 自由に定義することはできない. </p> </ul> <h2>MeCab 0.90の機能</h2> <ul> <li>コスト値推定に <a href="http://www.cis.upenn.edu/~pereira/papers/crf.pdf">Conditional Random Fields, CRF</a> を採用 <br> <p> HMM は, 唯一の内部状態を定義する必要があった. 一方 CRF はオーバラッ プを含めた複数の内部状態を定義することが可能である. この機能により, 細い品詞階層と粗い品詞階層の確率値を混ぜるといった, 「スムージング」が自然にかつ自動的に実現できる. これは, 複雑な品詞体系を扱う上で便利な機能であり, 人手処理を大幅に簡略化することができる. </p> <p> CRF の採用により, 品詞体系, 単語長, 辞書の変更に対し柔軟にかつ低コストで対応できるようになる. さらに, CRF は, HMM の 1/3 程度の学習コーパスで同程度の 性能が得られることが分かっている. つまり, 新しいドメインへの 適用といった事にも低コストで対処できるであろう. </p> <p> また, CRF は, これまでの最小コスト法として定式化できるため, 解析速度の劣化はない. </p> <p>MeCab 0.90 は, コスト推定プログラムも含め配布する. 最小限の設定でも高い精度が得られるようなユーザビリティーを 提供する.</p> <center> <p><small>解析結果: 上 Juman, 下 ChaSenとの比較. <br> seg:わかち書きの精度, top:品 詞まで含める, all:活用まですべて含める<br> E-HMMs が現状の MeCab/ChaSen</small></p> <p><img src="result.png"></p></center> <li>未知語処理の外部定義<br> <p> MeCab 0.90 では, ユーザが未知語処理の戦略を自由に定義可能となる. 基本的な戦略として字種に基づくわかち書きを行う. 字種そのものの定義(どの文字コードがどの字種に対応するか), 各字種に対するわかち書きの定義 (グループ化するか, N文字づつまとめる か), わかち書きされたものにどのような品詞を割りあてるか. といた事がユーザ自身で定義できる. </p> <p>字種を表現するための内部コードに Unicode を用いており, 未知語処理の言語非依存性が(部分的に)実現できる. </p> <p>また, 未知語処理のパラメータも CRF により推定される. ChaSen や Juman に比べれば, 未知語に対する 解析精度の向上が期待できる </p> <p>解析例</p> <p>MeCab 0.81 の解析結果</p> <pre> ホリエモン氏に会った。 ホ 名詞,一般,*,*,*,*,ホ,ホ,ホ リエ 名詞,固有名詞,人名,名,*,*,リエ,リエ,リエ モン 名詞,固有名詞,一般,*,*,*,モン,モン,モン 氏 名詞,接尾,人名,*,*,*,氏,シ,シ に 助詞,格助詞,一般,*,*,*,に,ニ,ニ 会っ 動詞,自立,*,*,五段・ワ行促音便,連用タ接続,会う,アッ,アッ た 助動詞,*,*,*,特殊・タ,基本形,た,タ,タ 。 記号,句点,*,*,*,*,。,。,。</pre> <p>MeCab 0.90 の解析結果 (周辺のコンテキストを考慮しながら「ホリエモン」を正しく解析できる)</p> <pre> ホリエモン氏に会った。 ホリエモン 名詞,固有名詞,人名,一般,*,*,* 0,10 氏 名詞,接尾,人名,*,*,*,氏,シ,シ 10,12 に 助詞,格助詞,一般,*,*,*,に,ニ,ニ 12,14 会っ 動詞,自立,*,*,五段・ワ行促音便,連用タ接続,会う,アッ,アッ 14,18 た 助動詞,*,*,*,特殊・タ,基本形,た,タ,タ 18,20 。 記号,句点,*,*,*,*,。,。,。 20,22</pre> <li>ソフトなわかち書き</li> <p> 形態素解析器の仕事は, おおざっぱに言えば「入力文を形態素に区切る」こ とにある. しかし 「本部長」のように単独の解を得られない場合がある. (本/部長 or 本部/長). また長い複合語が定義されている時, その構成語が出力されないという問題もある. </p> <p>MeCab 0.90 では, 「入力文を形態素に区切る」という機能とは別の 「入力文から形態素を抽出する」という機能を提供する. 「形態素を抽出する」機能を実現するには, 入力文のすべての部分文字列の「形態素らしさ」を 算出する必要がある. MeCab 0.90 では この「形態素らしさ」を「形態素周辺確率」 という形で算出する. 詳細は言語処理学会 2005 にて<a href="http://chasen.org/~taku/publications/nlp2005.pdf">発表</a>済み </p> <p> 以下が解析例である </p> <pre> 本部長 本部 名詞,固有名詞,地域,一般,*,*,本部,モトブ,モトブ 0.026441 本部 名詞,一般,*,*,*,*,本部,ホンブ,ホンブ 0.619559 * 本 名詞,固有名詞,人名,姓,*,*,本,モト,モト 0.010897 本 名詞,一般,*,*,*,*,本,ホン,ホン 0.046961 本 接頭詞,名詞接続,*,*,*,*,本,ホン,ホン 0.292945 部長 名詞,一般,*,*,*,*,部長,ブチョウ,ブチョー 0.352623 長 名詞,一般,*,*,*,*,長,チョウ,チョー 0.013549 長 名詞,接尾,一般,*,*,*,長,チョウ,チョー 0.624362 * </pre> <p> * が付いたものが実際の解析結果. 「形態素らしさ(形態素周辺確率)」も同時に 出力される </p> <p> 「形態素らしら」は入力文によって変わることに注意されたい. </p> <pre> 松本さんに会う。 松本 名詞,固有名詞,人名,姓,*,*,松本,マツモト,マツモト 0.989497 * さん 名詞,接尾,人名,*,*,*,さん,サン,サン 0.998228 * に 助詞,格助詞,一般,*,*,*,に,ニ,ニ 0.990367 * 会う 動詞,自立,*,*,五段・ワ行促音便,基本形,会う,アウ,アウ 0.999387 * 。 記号,句点,*,*,*,*,。,。,。 0.999999 * EOS 松本市に行く。 松本 名詞,固有名詞,地域,一般,*,*,松本,マツモト,マツモト 0.919221 * 松本 名詞,固有名詞,人名,姓,*,*,松本,マツモト,マツモト 0.073882 市 名詞,接尾,地域,*,*,*,市,シ,シ 0.886151 * 市 名詞,一般,*,*,*,*,市,シ,シ 0.110607 に 助詞,副詞化,*,*,*,*,に,ニ,ニ 0.013169 に 助詞,格助詞,一般,*,*,*,に,ニ,ニ 0.986618 * 行く 動詞,自立,*,*,五段・カ行促音便,基本形,行く,イク,イク 0.966972 * 行く 動詞,自立,*,*,五段・カ行促音便ユク,基本形,行く,ユク,ユク 0.030681 。 記号,句点,*,*,*,*,。,。,。 0.999997 * EOS </pre> <p>上記のように「松本」の形態素らしさは周辺のコンテキストで変化する</p> <li>複数の解析モデルを解析器とは別に配布 <p>解析器とパラメータ(辞書, 連接コスト)が完全に独立に 設計されるので, 以下の辞書についてのパラメータを個別に配布する. ただし, ライセンスは個々の辞書に準ずる </p> <ul> <li>IPADIC <li>JUMAN <li>Canna (学習用コーパスが無いので作るかも?) <li>中国語解析 (未定) <li>英語解析 (未定) </ul> </ul> <hr> </body> </html>