KyTea v.s. MeCab - 形態素解析における点予測対系列ラベリング,または品詞の要不要など

@zzzelch さん,@taku910 さん,@neubig さんの議論をまとめました.
7
Zelch @zzzelch

むしろこっち。http://t.co/16L84c1e 「点予測による自然言語処理」 RT @AntiBayes zzelch先生の発表資料はこちら http://t.co/WkUlAFN2 #TokyoNLP

2011-11-23 15:18:13
Taku Kudo @taku910

点予測による単語分割が分野適応に便利なことは理解できるが、Juman/MeCabといった最小コスト法のものに、単語を追加する方法と本質的にどう違うのだろうか。語彙の追加以上にユーザの負荷が軽減するのか直感的にはわからない。

2011-11-24 16:39:55
Taku Kudo @taku910

例えば、「なう」を文末っぽいところ*だけ*終助詞にしたければ、MeCabなら単語登録で済む。点予測の場合は、前方の品詞が分からないので、終助詞以外の「なう」と区別するにはそれなりの量の文脈をアノテートしないといけない。

2011-11-24 16:44:59
Graham Neubig @neubig

@taku910 確かに気になりますね。日本語には普遍的な品詞分布があれば、新しい単語に対応するためにこの未知語+品詞の情報しか必要がないはずです。新しい分野において辞書追加 vs. 辞書追加+コーパス追加を比べたらある程度この仮定がどれぐらい正しいかは分かるので、計ってみます。

2011-11-24 19:06:59
Graham Neubig @neubig

@taku910 点予測の1つの明確な利点としては未知語モデルを作らなくても動くところです(ラティスのコスト最小化でももちろんできますがご存知の通り難しいです)。これに伴ってアノテーションするべき箇所を選ぶのも比較的簡単になって、単純にスコアの低いところを使って未知語を拾えます。

2011-11-24 19:11:38
Taku Kudo @taku910

そいや、点予測は各予測を完全に並列化できるので、OpenMPを使って超お手軽に高速化できそう。MeCabでやろうか考えたがLatticeを組むときに、Critical Sectionがいくつかあるのでめんどくさそう。(というか高速になるか謎)

2011-11-24 19:49:41
Zelch @zzzelch

まず、変化球の返答ですが、品詞をつけなくてもよい。 @taku910 点予測による単語分割が分野適応に便利なことは理解できるが、Juman/MeCabといった最小コスト法のものに、単語を追加する方法と本質的にどう違うのだろうか。

2011-11-24 21:02:42
Zelch @zzzelch

ついで、同一品詞で文脈によって読みが違う単語が、読みとともに部分的アノテーションすれば、読みが峻別できる。#KyTea

2011-11-24 21:04:25
Zelch @zzzelch

ab/POS1 c/POS2 と a/POS1 bc/POS2 が文脈に応じて区別できるように追加できる。#KyTea

2011-11-24 21:07:46
Zelch @zzzelch

多くの場合、未知語は実際の文中で発見されるので、たんに単語を登録するのではなく、その文脈も含めるて登録すると、単なる単語登録以上の情報量があるはずです。点予測はそれを簡単に実現する。#KyTea

2011-11-24 21:13:09
Zelch @zzzelch

右が文末かも見るので、少量でいいと思うけど。@taku910 例えば、「なう」を文末っぽいところ*だけ*終助詞にしたければ、MeCabなら単語登録で済む。点予測の場合は、前方の品詞が分からないので、終助詞以外の「なう」と区別するにはそれなりの量の文脈をアノテートしないといけない。

2011-11-24 21:25:29
Taku Kudo @taku910

@zzzelch 要するに、文脈情報をレキシカルな文脈か、品詞で内包するかの違いですね。興味はこの2つのどちらがユーザにとって簡単で制御しやすいかということです。語彙化された文脈はどうしてもスパースで過学習しそうに思えるのですが... (すなわち制御が難しい)

2011-11-25 09:45:57
Taku Kudo @taku910

@zzzelch 終助詞が常に文末に来るとは限らないですよね。他の例だと、「っち」とか「たん」といった人名接尾も、人名の後ろという情報でおおよそ汎化できるのに、語彙化された文脈が本当に必要なのでしょうか?

2011-11-25 09:49:51
Zelch @zzzelch

まずは、単語分割だけでよいユーザーに品詞体系の理解を要求しないことは重要でしょう。次に、形態素解析の曖昧性のほとんどは単語分割にある。で、"なう/終助詞" を機械に教えるより、"Context1 なう/終助詞 Context2" で教えるほうが情報量が多い。 @taku910

2011-11-25 10:43:51
Zelch @zzzelch

「語彙化された文脈が必要」というのは90年代後半以降の自然言語処理では常識だとおもうのですが...。@taku910

2011-11-25 10:52:36
Taku Kudo @taku910

@zzzelch タスク依存でしょう。少なくとも人名接尾の話題に語彙化はオーバースペック。無限にリソースがありタグ付けできるのであれば語彙化という理想論で問題ないです。今議論しているのは、ユーザにとって何が楽かです。楽するために品詞経由で既知語の統計量を借りてくる。

2011-11-25 12:57:51
Zelch @zzzelch

"なう/終助詞" の存在の情報量と "Context1 なう/終助詞 Context2" の存在の情報量の比較の結果は明白ですよね。あとは分類器がどうさばくかです。Context1 と Context2 を無視して単なる単語登録とするのは包含されている。 @taku910

2011-11-25 14:56:20
Zelch @zzzelch

助詞の細分類がわかる作業者を見つけるのは困難ですよ。品詞大分類の体系ですら習得してもらうのは容易ではないです。そしてさらに、タスクが品詞不要なら、もう何のために品詞情報を付与しているのか。と思いませんか。@taku910

2011-11-25 14:59:48
Zelch @zzzelch

言語モデルを作るのが目的の場合、JUMAN や ChaSen/MeCab はオーバースペックであるだけでなく、分野適応のための単語登録に品詞体系の理解を要求してくる。単語分割情報だけでよい #KyTea の設計のよさが際立つ。

2011-11-25 15:32:04
Graham Neubig @neubig

「形態素解析の分野適応:辞書追加だけでいいのか」を調べるために実験をやってみました: http://t.co/F9dubiRg 。コーパスを追加することで可能な改善の75-80%は辞書追加で可能らしい。また、MeCabもKyTeaも辞書追加で同じぐらい向上するのも面白かった。

2011-11-25 15:47:00
Taku Kudo @taku910

@zzzelch mecabであれば文脈は連接表が担います。単語だけの登録でも既知語のふるまいと共有します。点予測の文脈は語彙なのでスパースだけだなく既知語の情報を再利用しません。少量のアノテーションであれば後者はスパース過ぎます。

2011-11-25 15:47:23
Zelch @zzzelch

誤解の訂正です。点予測の文脈は文字列と文字種列です。前後1文字の文字種くらいだとぜんぜんスパースではないですよ。RT @taku910 点予測の文脈は語彙なのでスパースだけだなく既知語の情報を再利用しません。

2011-11-25 15:55:45
Zelch @zzzelch

私が言いたいのは、ある分野のテキストでの高い解析精度を必要最小限のアノテーションで実現できる枠組みの重要性です。点予測がよいということではありません。CRF でも SVM でも It's still a classifier to me. http://t.co/P9iayiE5

2011-11-25 16:00:05
拡大
Graham Neubig @neubig

先ほどの実験結果に具体例を追加しました: http://t.co/F9dubiRg 。コーパスを追加しないと解析できなかった単語は「なん」、「感じ」、「^^」。やっぱり口語的なものが多い。

2011-11-25 16:52:30
Taku Kudo @taku910

@zzzelch 字種は逆に足りないです。分かちがきに有効な方法ですが品詞はつらい。人名はひらがな、カタカナ何でもありですよ。

2011-11-25 18:11:40