6

这个答案显示了一个使用解析器生成器查看文本以查找某些感兴趣模式的漂亮示例。在该示例中,它是产品价格。

有谁知道在给定训练示例(文档+我想要的信息)中生成语法的工具?我找到了几篇论文,但没有工具。我浏览了一下ANTLR文档,但它处理的是语法;“识别器”将语法作为输入,而不是训练示例。

4

2 回答 2

3

这是一个机器学习问题。你最多可以得到一个近似值。但我认为没有人做得很好,更不用说发布工具了。(我积极跟踪人们为构建​​计算机语言的语法所做的工作,这个想法已经被多次提出,但我还没有看到有用的实现)。

问题在于,对于任何固定的示例集,都有大量可能的语法。很容易构造一个朴素的语法:对于固定的示例集,只需提出一个语法,它有一个规则来识别每个示例。这有效,但几乎没有帮助。现在的问题是,你可以用多少种方法来概括这一点,哪一种是最好的?事实上,您无法知道,因为您的下一个新示例在结构方面可能完全出人意料。(理论定义:语言是组成它的一组句子)。

我们甚至还没有讨论过学习语言的位这个更简单的问题。你建议如何学习浮点数的合法字符串是什么?

于 2011-03-29T16:07:30.733 回答
2

执行此操作的一种工具是NLTK。我强烈推荐它,涵盖它的 O'Reilly 书籍可在线免费获得。有解析、学习语法等工具……唯一的缺点是它主要是一个研究而不是生产工具,所以重点不在性能上。

NLTK 能够从标记的训练样本中构建语法,这正是您所要求的。看看伟大的文档和书。(我上次使用它的经验也让它通过 Jython 在 JVM 上运行,没有任何问题。)

于 2011-05-23T11:52:37.160 回答