【问题标题】:Natural language command language自然语言命令语言
【发布时间】:2009-10-22 07:06:14
【问题描述】:

我有兴趣为具有现有规则的域开发一种自然语言命令语言。当 Terry Winograd 的 SHRDLU 指明方向时,我印象非常深刻(下面的对话是 40 岁!令人惊讶)。我们现在可以做得更好吗?如果可以,我可以从哪里获得示例?

人:捡起一个大红色方块。
电脑:好的。
人:抓住金字塔。
电脑:我不明白你说的是哪个金字塔。
人(改变主意):找一个比你拿着的那个高的积木,然后把它放进盒子里。
电脑:“它”是指比我拿着的那个高的方块。
电脑:好的。
人:盒子里装的是什么?
电脑:蓝色金字塔和蓝色方块。
人:金字塔是靠什么支撑的?
电脑:盒子。
人:盒子里没有多少块?
电脑:四个。
人:至少有一个比我让你拿起的那个窄吗?
计算机:是的,红色立方体。

我有一个领域的本体,因此可以推理常见问题。

【问题讨论】:

    标签: command-line nlp


    【解决方案1】:

    看看OpenCyc,一个通用知识库和常识推理引擎。

    【讨论】:

    • 非常感谢。我知道 Cyc 但不太了解 OpenCyc。你知道人们是否已经将它与 NLP 交互了吗?
    • 也许这个关于向 JavaNLP 添加 Cyc 接口的演示文稿:nlp.stanford.edu/~ditka/cyc/cycPresentation.ppt
    • @luvieere 看起来很有用 - 不确定实现了多少
    【解决方案2】:

    看看Attempto project中开发的受控英语(ACE)。 它似乎具有所需的表现力和灵活性。 ACE 解析器将 ACE 语句解析为一阶逻辑公式(称为 DRS 的变体),然后可用于进一步处理,例如自动推理。 该解析器在 LGPL 下可用,请参阅演示 here

    【讨论】:

    • 这与我所寻找的非常接近,而且您似乎已经涵盖了最棘手的问题(否定、回指等)。已经开始部署了吗?
    • 是的,ACE 在量化、回指、否定、问题等方面非常具有表现力。它还支持祈使句(如您的示例中所示)。我知道它已在许多研究项目中使用,但我不知道它在其他地方的使用方式和使用量。
    【解决方案3】:

    我也刚刚遇到了被 NASA 广泛使用的 Regulus (http://en.wikipedia.org/wiki/Regulus_Grammar_Compiler)。

    【讨论】: