java - 将自然语言转换为数学方程式

标签 java math nlp

我有一个使用 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. 请注意,我没有提交最后几项更改,因此我给出的一些与数学相关的示例将不起作用。

最佳答案

经过更多的谷歌搜索(我一开始不知道我在做什么)我发现有人已经做了类似的事情:

http://www.objecthunter.net/exp4j/

编辑:完成: https://github.com/Sprakle/HomeAutomation/blob/master/src/net/sprakle/homeAutomation/interpretation/module/modules/math/Math.java

关于java - 将自然语言转换为数学方程式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15869147/

相关文章:

java - 使用 HTTP header 进行 Rest token 身份验证

c++ - 可更新的 DAWG 库或未分类数据的 DAWG 构造

machine-learning - 如何使用 LDA 或任何主题建模算法获取文档的意图

java - 无法根据 Hashmap 中的键打印值

java - 在相对路径上解析具有 DTD 架构的 XML 文件

java - 指导 Apache poi 如何读取日期单元格

java - Project Euler #10 Java 解决方案不起作用

css - 使用 CSS 构建 3D 金字塔

c++ - 清晰缩放图像的算法

python-3.x - python : How to extract addresses from a sentence/paragraph (non-Regex approach)?