チャートパーサーは、Chomsky正規形に基づいて実装することも、プロダクションルールに直接基づいて実装することもできます。とりあえず、チョムスキー正規形を使用するCYKチャートパーサーがあると仮定しましょう。2値化は一意に定義されていません。これはCYKチャート解析のパフォーマンスに影響しますか?これを利用して、CYKチャートパーサーのパフォーマンスを改善できますか?
チャートパーサーは、Chomsky正規形に基づいて実装することも、プロダクションルールに直接基づいて実装することもできます。とりあえず、チョムスキー正規形を使用するCYKチャートパーサーがあると仮定しましょう。2値化は一意に定義されていません。これはCYKチャート解析のパフォーマンスに影響しますか?これを利用して、CYKチャートパーサーのパフォーマンスを改善できますか?
回答:
明白な答えは、基本的な複雑さは変更できないということですが、実際に遭遇する文字列を解析するためのより良いまたはより悪いアルゴリズムがあるかもしれません。ただし、問題は個々の文法生成(問題のA、B、C)の相対頻度ではなく、2値化と別の2値化が生成する可能性のある未使用の行き止まり解析の問題のようです。
検索のビットで、私が見つかりましたCKY解析のためのより良い二値化決定的にあなたがいることを結論付けているようだ(歌、鼎、と林、EMNLP 2008)、することができますが、実際に期待する文字列に「より良い」または「悪い方」値化相対を選択します解析する必要があります。実際に最小化したい「行き止まり解析」の名前は不完全な構成要素のようで、最初のページに良い例があります。
実際、チョムスキー標準形(CNF)はCYKを実行する必要はなく、2値化のみが必要です。2値化は、解析の3次の複雑さを維持するために不可欠ですが、非端末(NT)に関してのみ必須です。ただし、2つの非ターミナルといくつかのターミナルのみを含むルールがある場合、CYKアルゴリズムはプログラミングと説明がより複雑になります。
あなたが言うように、二値化を行うには多くの方法があります。一部の文法は他の文法よりも小さくなります。例えば
X -> B C D
Y -> B C E
として二値化することができます
X -> Z D
Y -> Z E
Z -> B C
したがって、因数分解によって1つのルールを保存します。これにより、計算と結果サイズを節約できます。
ただし、他のルールでは、ルールの最初ではなく、最後を因数分解したい場合があります。
Rob Simmonsの回答で引用されているSong、Ding、Linの作品には詳しくありません。アイデアは興味深いですが、計算を最適化する他の方法と比較すると、どれほど効果的であるのでしょうか。私はそれほど恐れていません。
要点は、純粋なCKYアルゴリズムに関してのみ問題を分析することは、学問的ではあるがコストのかかる演習のように思えるということです。
CYKは、明らかに同じ動的プログラミングモデルに基づいて構築されたアルゴリズムファミリの単純なバリエーションの1つにすぎません。これらのアルゴリズムの最も単純なバージョンは動的プログラミングとしてではなく、クロス積として知られているので、私は明らかに言っています。1995年にLangが指摘したように、Bar Hillel、PerlesおよびShamir(1961)により、CF文法Fの言語とFSA A.の通常言語の共通部分を生成するのは、CF文法Gの古い構造です 。
すべてのチャートパーサー、または動的プログラミングに基づく一般的なCFパーサーは、そのクロス積構成の「最適化された」バリアントと見なされ、最適化は主にパーサーの無用な計算を回避するために使用されます。しかし、役に立たない計算を回避すると、有用な計算が重複する可能性があるため、問題は微妙です。
ボトムアップであるため、CKYアルゴリズムは、文法の公理から派生できない部分的な解析の役に立たない計算を生成します。
GLRパーサーのようなアルゴリズム(有名なものの1つに名前を付けますが、欠陥のあるバージョンが公開されています)には、そのような多くの無駄な計算を(場合によってはコストをかけて)回避するトップダウンの知識があります。また、無駄な計算の節約に関して、動作が異なる他の多くのバリアントがあります。
これらの最適化戦略を念頭に置いて、2値化戦略を分析する必要があります。マイナーな問題である可能性のあるものを最適化するポイントは何ですか?より強力な手法は無視してください。
解析プロセスの最適化は、すべての可能な解析を表す、取得された解析構造の「品質」とも密接に関連しており、しばしば(共有)解析フォレストと呼ばれます。それについては別の答えで説明します。
これらの問題のいくつかは文献で議論されています。たとえば、BillotとLangは、解析戦略に関して2値化のいくつかの側面を分析しています。