使用DSL解析文档

时间:2010-02-03 05:42:44

标签: .net parsing dsl dsl-tools

我正试图想出办法来处理大约一百万份正式文件(为了论证,他们是论文文件)。它们并非都是标准化的,但足够接近。它们是标题,部分,段落等。可能会出现微妙的差异,例如在英语中,我们称之为“标题”,但在法语中它是“Titre”。

因此在我看来,最好的方法是创建一个包含Title的所有可能组合的EBNF:= Title |比如Titre。

我不太关心提出EBNF。我主要关心的是如何实现解析。我看过ANTLR,OSLO,Irony以及其他一些人,但他们没有专业知识来判断他们是否适合我的任务。

所以,我对你学到的问题是

  1. 您建议使用哪种DSL工具来解析此规模的文档?
  2. 什么DSL工具在解析时最准确但对匹配宽容(即我们必须定义大写和小写的规则,数字与罗马数字和外语(法语)如何。
  3. 是否有一个过程/算法,我没有考虑过你会推荐作为DSL的替代品? (从头开始重写是一种选择,但我希望能够快速完成工作)。
  4. 有没有人试图通过DSL解析学习和智能(想想遗传算法和神经网络)?
  5. 您是否会在生产环境中使用这些DSL工具?
  6. 我选择的开发平台是C#。我提到这一点是因为理想情况下我想将DSL工具集成到代码中,以便我们可以从现有应用程序中使用它。

1 个答案:

答案 0 :(得分:0)

我遇到了一个名为TinyPG的工具。它不完全是我需要的东西,但要查看源代码将让我生成我需要的东西。