Empirical Methods for Compund Splitting

Empirical Methods for
Compound Splitting
CJE 勉強会論文紹介
2006年12月20日(水)
奈良先端大 小町守
Abstract
• 複合語は機械翻訳などの NLP アプリケー
ションにとって問題
• 単一言語コーパス・パラレルコーパスから
単語分割のルールを獲得する手法の紹介
• ゴールドスタンダードを用いた評価と統計
的機械翻訳システムに組み込んだときの
性能で評価
2006年12月20日
2
Introduction
• 複合語はたくさんの言語で共通
– 単語同士自由に組み合わせられるので
sparse data problem
• 機械翻訳にとっては
– 未知語を分解すると各部分での翻訳が可能
– 内容語の1対1対応が目標
• 機能語は対象としない
2006年12月20日
3
Aktionplan の分解
2006年12月20日
4
Marcu and Wong, 2002
• 機械翻訳への応用
• Aktionsplan → Akt + Ion + Plan の3語に
間違えて分解?
– Aktion を consistent に Akt + Ion に分解して
いれば、機械翻訳システムは Akt + Ion を 英
語の action 一語として学習
2006年12月20日
5
評価方法
• 1対1対応
– 人手で作った評価データと比較
• 単語ベースの翻訳システムでの性能
• 句ベースの翻訳システムでの性能
– 別に作ったコーパスでの統計的機械翻訳シス
テムを使って比較
2006年12月20日
6
Related Work
• 言語学的性質: (Langer, 1998)
• パラレルコーパスを使う手法: (Brown,
2002)
– 同語源の単語について翻訳辞書に載っている
単語のみ対象
– 翻訳システムに組み込んだ結果は報告されて
いない
2006年12月20日
7
Related Work(Cont.)
• Monz and de Rijke, 2001
• Hedlund et al., 2001
– 辞書ベースの手法を情報検索に適用
• Larson et al., 2000
– データを用いた手法を音声認識に利用
• Morphix
– 様々な分割オプションがある形態素解析器
2006年12月20日
8
分割オプション
• 複合語は既知語をくっつけたもの
• 複合語の分解を全部数え上げるには既知
語による分割を全部考える
– 訓練コーパス(Europarl)に出現する単語を既
知語とする
2006年12月20日
9
単語の結合処理
• 単語を結合するときにフィラー文字が結合
部分に入ることも
– Aktionsplan = Aktion + s + Plan
• 単語を結合するときに文字が脱落すること
も
– Schweigeminute = Schweigen + Minute
• 詳しくは (Langer, 1998)
2006年12月20日
10
複合語分割の戦略
• Dynamic programming を使う
– 既知語と単語間のフィラーを用いて完全な複
合語を作る
– 計算量は問題にならないので再帰的に数え上
げる探索を行う
– 最初3文字を使ったハッシュに既知語を入れる
– 既知語は最低3文字あるものに制限
2006年12月20日
11
DP を用いた分割オプション
• Aktionsplan の分割
– Aktionsplan
– Aktion-plan
– Aktions-plan
– Akt-ion-plan
どれが正しい?
• 複合語の正しい分割を行う手法について
は次に解説
2006年12月20日
12
頻度ベースの基準
• 分割 S: 部分 pi の頻度の幾何平均が最大
となるような S
1
argmaxS ( count( pi )) n
p i S
• ドイツ語(原言語)側のリソースのみで可能
• 複合語そのものが部分の合計より頻度高
ければ、そのまま一語
2006年12月20日
13
Aktionsplan の分割の選択
• Aktionsplan の分割
– Aktionsplan(852)→852
– Aktion(960)-plan(710)→825.6
– Aktions(5)-plan(710)→59.6
– Akt(224)-ion(1)-plan(710)→54.2
• 分割しない選択肢(Aktionsplan)が852で
一番高いので、これを選択
2006年12月20日
14
パラレルコーパスの利用
2006年12月20日
15
パラレルコーパスの利用
• Aktionsplan は action と plan になってほ
しいが、Freitag(Friday) は free(frei) と
day(Tag) になってほしくない
• GIZA++ で翻訳辞書を作成
• 分割オプションそれぞれの部分が翻訳で
きるかチェック
2006年12月20日
16
副翻訳テーブル
• 原言語(ドイツ語)を分割・目的言語(英語)
を分割しないで GIZA++ を使って翻訳辞
書作成
• 新しい文を分割するときは頻度ベースの尺
度を用いる
– 頻度ベースの手法でバックオフ
2006年12月20日
17
品詞の限界
• 接頭辞・接尾辞が分割されるエラーが多い
– 意味を考慮して分割していないため
– 目的言語(英語)側で大量の翻訳事例がある
• 単語の品詞(TnT tagger)を用いてこのエ
ラーを回避
– 前置詞と限定詞は除外
– 内容語: 名詞・副詞・形容詞・動詞に限定
2006年12月20日
18
評価
• Europarl の650,000名詞句・前置詞句
– 計算量のため
– 複合語はだいたい名詞なので、文に関しても
同様の結果になると期待
• 未知の1000名詞句・前置詞句(3498単語)
でテスト
2006年12月20日
19
ゴールドスタンダードでの評価
tp
tn
fn
fp
• エラーの主な原因は訓練データ不足
2006年12月20日
20
機械翻訳での評価
• 分割されすぎているほうがされないのより回復しやすい
• 句ベースの統計翻訳では「いい分割」は統計翻訳が決定
2006年12月20日
21
まとめ
• 複合語の分割方法をいくつか提案
• どの分割が最適かはアプリケーション依存
– 1対1対応では提案手法がもっともよかったが、
統計翻訳での評価では別の手法がよい
• 複合語を分割して得られた単語は普通の
単語と同様に扱わなくてもいい
– もしかしたらもっと性能よくなるかも
2006年12月20日
22