【发布时间】:2011-03-27 08:34:02
【问题描述】:
我有一个应用程序,它在后台有常用的数学函数:
- 添加(x,y)
- 乘法(x, y)
- 正方形(x)
界面是一个简单的谷歌风格的文本字段。我希望用户能够输入纯文本描述 -
- '2*3'
- '2 次 3'
- '乘以 2 和 3'
- '取2和3的乘积'
并得到一个数学答案
问题是,我应该如何将文本描述映射到函数?我猜我需要
- 标记文本
- 识别关键标记(函数名、参数)
- 尝试将令牌组合映射到函数签名
不过,我猜这在机器学习领域已经是一个“已解决的问题”。我应该使用自然语言处理吗?纯文本搜索?还有什么?
感谢所有想法,以及实施建议 [我正在使用 Python/AppEngine;我知道 NLTK 和 Whoosh]
[PS 我知道谷歌已经这样做了,至少对于列表中的前两个查询。我猜他们也有统计数据,有大量的搜索数据。我没有大量可用数据,因此需要另一种方法]。
【问题讨论】:
-
一些问题——一句话写多少个操作是合法的? (例如 - 这是否合法 - “取 2 和 3 的乘积并将其添加到 7 和 6 的乘积的平方”?)如果不止一个 - 嵌套操作的最大深度是多少?从这些问题的答案中可以清楚地看出 - 您是否需要完整的语法树解析...
-
对于我上面的复合句,你需要生成这样的syntax tree
标签: artificial-intelligence machine-learning