5
Earleyパーサーから解析フォレストを回復しますか?
私は最近Earleyパーサーを読んでいて、これまで見た中で最もエレガントなアルゴリズムの1つだと思います。ただし、従来の意味でのアルゴリズムは認識機能であり、パーサーではありません。つまり、文字列が特定のCFGに一致するかどうかを検出できますが、解析ツリーは作成できません。私の質問は、解析ツリーではなく、指定された入力文字列のすべての可能な解析の解析フォレストを回復する方法です。 GruneとJacobの「Parsing Techniques:A Practical Guide」では、Earleyレコグナイザーの結果から解析フォレストを回復するために使用できるアルゴリズムを示していますが、実行時間はO(n k + 1)、ここでkは文法の最長の生成の長さです。これは、ランタイムが文法のサイズの多項式ではないことを意味します。さらに、解析フォレストを回復するためのアルゴリズムを示唆するアルゴリズムに関するEarleyの元の論文は間違っています(例えば、富田によるこの記事の 762ページを参照)が、多くのソースはまだ解析フォレストを回復する適切な方法としてそれを引用していますが。 私の質問は、与えられた入力文字列の解析フォレストを多項式時間で回復できるかどうかです。私はここで、PDAのシミュレーションを使用して任意の解析用のキュービックサイズの解析フォレスト表現を生成するアルゴリズムを提供する論文を見つけました。理想的には、入力文法をCNFに変換せずにこれを実行したいです(実際に問題を解決します)。結果の解析フォレストはかなり乱雑になるからです。 あなたが提供できる助けをありがとう!