15/08/09 Copyright (C) 2015 by Yusuke Oda, AHC-Lab, IS, NAIST 3
Chomsky 階層
Type-0
Type-1
Type-2
Type-3 正規言語
文脈自由言語
文脈依存言語
帰納的可算言語
● 形式言語理論のおさらい
今日の話題
チューリングマシン上の
アルゴリズム
15/08/09 Copyright (C) 2015 by Yusuke Oda, AHC-Lab, IS, NAIST 4
文脈自由文法
● 文脈自由文法 (context-free grammar: CFG)
– Chomsky 階層の Type-2 文法
– 単一の記号を複数の記号列に書き換える規則の集合
S文
VP動詞句
NP名詞句 DT限定詞 This
isVBZ動詞:三単現
NP名詞句
DT限定詞
NN名詞:単数
a
pen
– 注目している記号の周囲の情報 (=文脈) は考慮しない (=自由)
– CFG により生成される自然言語の構文木は句構造 (phrase structure) と呼ぶ
15/08/09 Copyright (C) 2015 by Yusuke Oda, AHC-Lab, IS, NAIST 5
This is a pen
Cocke-Kasami-Younger アルゴリズム
● Cocke-Kasami-Younger (CKY or CYK) アルゴリズム
– 文法 と入力単語列 が与えられたとき
で を生成可能か判別(構文木も作れる)
– 小さい部分木から順に生成 ... 動的計画法の一種
DT
NNS
NP
VBZ
NNS
DT
NN
NP
NN
S NP
S
VP
SQ
S
全体の解析は
15/08/09 Copyright (C) 2015 by Yusuke Oda, AHC-Lab, IS, NAIST 9
自然言語の曖昧性
● 複数の(多分)正しい構文木が存在する可能性
PRP VBD DT NN IN DT NN
NP VP
NP
PP
NP
S
I saw a girl with a telescope I saw a girl with a telescope
PRP VBD DT NN IN DT NN
NP VP
NP
PP
NP
S
NP
15/08/09 Copyright (C) 2015 by Yusuke Oda, AHC-Lab, IS, NAIST 13
構文解析の評価 (2)
PRP VBD DT NN IN DT NN
NP VP
NP
PP
NP
S
I saw a girl with a telescope I saw a girl with a telescope
PRP VBD DT NN IN DT NN
NP VP
NP
PP
NP
S
NP
Gold Parse
S:1-7 NP:1-1 VP:2-7 NP:3-4
PP:5-7 NP:6-7
S:1-7 NP:1-1 VP:2-7 NP:3-7
NP:3-4 PP:5-7 NP:6-7
– LP = 6/7 85.7%≒
– LR = 100%
– LF1 = (2*LP*LR) / (LP+LR) 92.3%≒
– Crossing brackets = 0
– Tagging accuracy = 100%
15/08/09 Copyright (C) 2015 by Yusuke Oda, AHC-Lab, IS, NAIST 14
単純なPCFGの問題 (1)
● 文法の種類が荒すぎる
– 例: 右の構文木の 2 個の NP は同じ?
● NP … Subject, PRP のみを生成しやすい
● NP … Object, NN を含む句を生成しやすい
● NP が PRP のみを生成する確率は NP の 約 8.7 倍
[Klein&Manning2003]
– 明らかに同じ記号で違う意味のものが存在
● 別の記号に分けるべき
PRP VBD DT NN
NP VP
NP
S
He ate an apple
PRPNP
VBDVP
DTNP
NNNP
NPS
VPS
NPVP
SROOT
He ate an apple
● Parent annotation [Johnson1998]
– 各記号に親のラベルを付与
– 縦方向の 2 階 Markov 連鎖でモデル化するのと同じ
● 普通の PCFG は 1 階 Markov 連鎖
15/08/09 Copyright (C) 2015 by Yusuke Oda, AHC-Lab, IS, NAIST 23
…実際の構文解析器では
● 実際に構文解析を使用するのは、大きなシステムのパイプラインの一部
● 基本的に解析失敗は可能な限り避けたい
– 例: 機械翻訳
形態素
解析
構文
解析
機械
翻訳
入力
テキスト
音声認識
etc.
出力
テキスト
音声合成
etc.
– エラーの発生した場所より先の処理が実行不可能
– ユーザ視点だと「壊れた」のと同じ
● 多少変な入力が渡されても問題なく結果を出力できる頑健性が必要
– もしくは裏でエラー処理をものすごく頑張る
15/08/09 Copyright (C) 2015 by Yusuke Oda, AHC-Lab, IS, NAIST 24
Coarse-to-fine 解析の問題
● Coarse-to-fine 解析は稀に探索に失敗
– 構文木の確率が極端に低い場合、CKY ノードを枝刈りしすぎる
Level 0 (PCFG) Level 1 Level 2
DT22
PP
NN1
JJ
NN
DT
NN2
NN1
NN2
NN21
NN11
NN12
NP11
DT12
DT2
VP
CD
NP
NP2
NP1
NNS
NN
DT21
NP12
NN22
DT1
DT11
– 全ての候補が枝刈りされてしまい、そのノード以下の解析が不可能
● どのような構文木も出力することができない
15/08/09 Copyright (C) 2015 by Yusuke Oda, AHC-Lab, IS, NAIST 25
Coarse-to-fine 解析の中間結果を使用
● 失敗が起こったとき、その前段の CKY テーブルで構文木を生成
– Coarse-to-fine 解析は最後まで実行しなくても問題ない
OK OK OK OK
Level 0
(PCFG)
Level 1 Level 2 Level N Tree
Make
parse tree
Tree
Make
parse tree
OK OK Fail
Level 0
(PCFG)
Level 1 Level 2 Level N Tree
Make
parse tree
● 「最初の解析で失敗しなければ」構文木を生成可能
15/08/09 Copyright (C) 2015 by Yusuke Oda, AHC-Lab, IS, NAIST 26
モデルの不整合による解析失敗
● Coarse-to-fine 解析の初段 (=PCFG) で失敗する場合
– 入力が学習データと大きく離れているため、モデルが対応できていない
– 例: 括弧
?
NN
a symbol
@NP
-LRB-
(
DT
PRN
X
( some phrases
@PRN
-RRB-
)
-LRB-
– Penn Treebank 内で、左括弧は PRN 句の前方にのみ存在
– それ以外の使い方はモデル的に想定されていない
15/08/09 Copyright (C) 2015 by Yusuke Oda, AHC-Lab, IS, NAIST 27
未知語スムージング
● 想定外の用法で出現した単語は未知語と考える
– 普通に解析できなくても、未知語に置き換えた場合に解析できることがある
– 非常に小さい割合で生成確率に未知語の生成確率を補間
?
DT NN
a symbol
@NP
NP
(
-LRB-
unk
NN
λ
元の単語生成確率 未知語生成確率
未知語補間係数
非常に小さい値
(実験ではE-10)