Hatena::Grouprekken

murawaki の雑記

2010-11-15

Unsupervised phonemic Chinese word segmentation using Adaptor Grammars

Mark Johnson; Katherine Demuth: Unsupervised phonemic Chinese word segmentation using Adaptor Grammars (COLING 2010) (PDF).

単体の論文としては微妙。既存の手法を少し手直しして新しいデータに適用しましたという話。結果は微妙で考察も浅い。しかし問題設定問題について個人的に思うところがいろいろ。ただし考えがまとまらない。書き出して整理を試みる。

作っているのは単語分割を学習するモデル。食わせるデータは赤ちゃんに向けられた大人の発話。目的は人間の言語獲得を計算モデルを作って解明すること。壮大で役に立たない話。こういう研究ができるのはすばらしい。とはいえ意味の領域には踏み込めないし、それどころか構文の獲得もまだまだ大変。とりあえず単語分割から始めようというのが現状。中で Pitman-Yor Process が使われているとか、そういう瑣末な話はこの際置いておく。

英語コーパスに適用したのが2008年の報告で、今回は中国語。わざわざタイトルで phonemic と断っているように、入力は漢字列ではない。元のコーパスは拼音。それで何が重要かといえば、声調が入っているところ。同時につっこみどころでもある。

その前に英語コーパスでの設定を確認しておく。英語コーパスの設定は以前紹介した Goldwater+ の論文と同じ。具体例を見ると、what is it という発話に対応する入力データは WAtIzIt。音素列を普通のアルファベットで表記したもの。

そもそも赤ちゃんに向けられた発話というのは音声、つまりはアナログの波。一方ここで扱う入力はシンボル列。暗黙に了解されている仮定は次の通り。人間の音声認識信号処理とシンボル処理という2段階のパイプライン処理になっている。そして、信号処理を完璧にやった結果をシンボル処理の入力と仮定してもとりあえずはいいだろうと。この二つのモジュールの組み合わせは通常の音声認識でもやっていることで、とりあえずはよしとする。問題は両者の役割分担。

では、改めて英語コーパスの場合、信号処理が何をしているのか。出力は音素列。異音 (例えば peak の p は有気音で、speak の p は無気音) を区別しない。この仮定は多分妥当。耳が聞いているのは音素であって、シンボルとして異音が認識されることはないのだろう。もっとも実際のところは知らない。脳をやっている人にでも聞いてみたい。

もう一つの特徴は、ストレスの情報がないこと。どう考えても人間は英語を聞き取りにストレスの情報を使っている。この問題は Goldwater+ が少し議論している。曰く、Gambell and Yang (2006) はストレスの情報を使えばルールベースで簡単に単語分割できると言うけど、a とか the にまでストレスを振っててインチキだよと。ストレス情報の利用は今後の課題として流しているけど、もし使うならどう表現すべきなのだろうか。

で、本題の中国語。元のコーパスは拼音。これをそのまま入力データとはしない。変換する。その変換がつっこみどころ。まず拼音を IPA に変換。えっ、とここで絶句する。音素じゃなかったのかと。しかし例を見る限り、異音を頑張って書き分けるような本格的な表記ではなく、なんちゃって IPA みたい。とりあえず音素列とみなしてよいのだろう。

次に音節をばらす。さあ声調をどうするのかと思ったら、声調パターンを母音の直後に置いて直列化する。zen3 が ts ə 214 n になる。ここで再び絶句。声調というのは超分節音素じゃなかったのかと。ちゃんとモデル化するのは今後の課題ということで流しているけど、ここが論文の要のはず。

とりあえず声調は置いておく。論文の設定では、音素列をモデルに食わせて単語を認識させる。評価は単語分割だけ。果たして音節境界がどの程度復元できているのか知りたいところだが、論文は何も言わない。

より根本的な疑問が残る。そもそも中国語信号処理の出力、つまりシンボル処理の入力は、果たして音素列でいいのだろうか。私の予想では、中国人の耳は、音素列ではなく音節列を聞き取っている。シンボル処理が音素列から一気に単語までを復元するのは、頑張るレイヤーを間違えているのではないか。だいたい、声母の n と韻尾の n が同じ音素と認識されているとは思えない。

英語の場合、WA-tI-zIt という音節列に対して、単語列は WAt-Iz-It とずれる。信号処理は音素列を出力していると考えてもよさそうだ。ただし、音素列だとすると、ストレスの情報をどこに付けたらいいのか分からない。音節に付いているのかなあとも思うけど。しかし、中国語は基本的に単語境界が音節境界をまたがない。信号処理の時点で音節単位なのではないか。音節単位なら声調が問題なく扱える。ただし、音節を完全に atomic な単位にしているのではなく、音節の内部構成についても保持していそうな気がする。

とにかく、この仮定が正しいなら、やるべき事が変わってくる。音素列から音節 (そして単語) を教師なしのシンボル処理で獲得させるのではなく、アナログ信号から音節を教師なしの信号処理で獲得させるべき。シンボル処理は音節を引っ付けるか引っ付けないか考えればいいのである。

しかし、この設定も微妙といえば微妙。音節を分断するような意味のまとまりが中国語にないことは、言語獲得のある段階以降は知っているだろうが、最初の段階でこれを仮定するのは良くない。