我正试图想出一种方法来浏览大约一百万个正式文档(为了论证起见,它们是论文文档)。它们并不都是标准化的,但已经足够接近了。它们是标题、章节、段落等。可能会出现微妙的差异,例如在英语中,我们称标题为“title”,但在法语中,它是“titre”。
因此,在我看来,最好的方法是创建一个ebnf,其中包含title:=title titre的所有可能组合。
我不太关心是否能提出ebnf。我主要关心的是如何实现解析。我看过安特尔、奥斯陆、讽刺和其他很多地方,但没有专业知识来判断它们是否适合我的任务。
所以,我向你们中的学者提出的问题是
-
对于这种规模的文档解析,您建议使用哪种dsl工具?
-
什么样的dsl工具在解析时最准确,但在匹配时却可以忽略(即,我们必须定义大小写规则,数字对罗马数字和外语(法语)如何)。
-
有没有一个过程/算法我没有考虑过,你会推荐作为DSL的替代品?(从头开始重写是一种选择,但我想让一些工作迅速)。
-
有没有人试图通过dsls(想想遗传算法和神经网络)将学习和智能添加到解析算法中?
-
你会在生产环境中使用这些dsl工具吗?
我选择的开发平台是C。我之所以提到这一点,是因为理想情况下,我希望将dsl工具集成到代码中,以便我们可以从现有的应用程序中使用它。