我有一个使用 Java 运行的家庭自动化系统,我想添加简单的数学功能,例如加法、减法、乘法、除法、根和幂。
在系统当前状态下,它可以将短语转换为标签,如下例所示:
例子:
Phrase: "what is one hundred twenty two to the power of seven"
Tagged: {QUESTION/math} {NUMBER/122} {MATH/pwr} {NUMBER/7}
例子:
Phrase: "twenty seven plus pi 3 squared"
Tagged: {NUMBER/27} {MATH/add} {NUMBER/3.14159} {MATH/multiply} {MATH/pwr} {NUMBER/2}
这个例子可以很容易地转换成这样:
27 + 3.14159 * 3^2
每个标签都是一个可以查询其值的对象。
编辑:具体问题:
所以现在我需要一种方法来读取这组标签作为一个方程,并返回一个数值结果。作为最后的手段,我可以使用 google 或 wolfram alpha,但这会更慢,而且我正在努力使自动化系统完全独立。
如果您想查看完整的源代码,here it is in github. 请注意,我没有提交最后几项更改,因此我给出的一些与数学相关的示例将不起作用。
最佳答案
经过更多的谷歌搜索(我一开始不知道我在做什么)我发现有人已经做了类似的事情:
关于java - 将自然语言转换为数学方程式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15869147/