将用自然语言编写的条件解释为Java代码

时间:2012-12-20 09:07:35

标签: java nlp interpreter

问题:

  • 我希望用户能够在文本编辑器中以简单的语法编写条件,如: 甲outcome1:(B outcome2:outcome3)

A和B是布尔条件。所以上面的句子意味着:如果A为真,则为outcome1,否则如果B为真,则结果为2,否则为结果3。

在Java中,我实现了这种语法的解释器,以便A,B,outcome1,outcome2,outcome3被转换为预先存储在某处的值(A和B将是返回布尔值的函数,结果将是对象) ,并评估条件并返回结果。

我的问题是,我在这里重新发明轮子吗?是否有Java包或库已经提供了“[约束]自然语言解释为Java代码”类功能的整洁实现?

THX!

1 个答案:

答案 0 :(得分:0)

我最终用Java编写了一个类,它读取了一个人为编写的规则并对其进行了解释。在这里找到它: https://github.com/seinecle/Umigon/blob/master/src/java/RuleInterpreter/Interpreter.java