使用示例生成语法的工具?

时间:2011-03-29 15:58:38

标签: grammar text-mining

This answer显示了使用解析器生成器查看某些感兴趣模式的文本的一个很好的示例。在那个例子中,它是产品价格。

有没有人知道生成语法的工具给出了训练样例(文档+我想要的信息)?我发现了几篇论文,但没有工具。我稍微浏览了ANTLR个文档,但它处理的是语法; “识别器”将语法作为输入,而非训练示例。

2 个答案:

答案 0 :(得分:3)

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

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

我们甚至没有谈到学习语言的 lexemes 这个更简单的问题。您如何建议了解浮点数的合法字符串是什么?

答案 1 :(得分:2)

执行此操作的一个工具是NLTK。我强烈推荐它,the O'Reilly book that covers it可以在线免费获得。有解析,学习语法等工具......唯一的缺点是它主要是研究而不是生产工具,因此重点不在于性能。

NLTK能够从标记的训练样本构建语法,正好你所要求的。看看伟大的文档和书。 (我之前的经验也让它通过Jython在JVM上工作而没有任何问题。)