我设法创建了 Earley 识别器,一切正常。我有所有适当的情况。但我只能用它来决定单词是否被语法接受。如何让它解析?我需要一些文章或解释,似乎我需要与产生新情况的情况建立关联。任何帮助,将不胜感激。
我的实现完全基于:http ://www.cs.uvic.ca/~nigelh/Publications/PracticalEarleyParsing.pdf
我设法创建了 Earley 识别器,一切正常。我有所有适当的情况。但我只能用它来决定单词是否被语法接受。如何让它解析?我需要一些文章或解释,似乎我需要与产生新情况的情况建立关联。任何帮助,将不胜感激。
我的实现完全基于:http ://www.cs.uvic.ca/~nigelh/Publications/PracticalEarleyParsing.pdf
从 Earley 识别器生成解析森林是很棘手的。有这篇论文“Recognition is not parsing — SPPF-style parsing fromcubic recognisers”解释了 Earley 的解析器版本不正确,然后展示了如何从 Earley 识别器生成解析森林。
http://www.sciencedirect.com/science/article/pii/S0167642309000951
每当您进行推理时,请跟踪您来自哪里,即。哪些项目用于形成新项目。然后可以通过探索跨越整个输入的顶部元素来找到解析森林。如果您使用歧义语法进行解析,您还应该考虑歧义包装,即。不要将(本地)等效分析重新组合在一起。
对于事物的理论方面,我真的推荐 Klaas Sikkel 的优秀书籍“Parsing Schemata”。