我有具有在幕后共同数学功能的应用程序:调用函数
- 加(X,Y)
- 乘(X,Y)
- 平方(x)的
该界面是一个简单的谷歌风格的文本字段。我希望用户能够进入一个纯文本描述 -
- '2 * 3'
- '2次3'
- '乘以2和3'
- “取的产品2和3'
,并得到一个答案的数学答案
的问题是,我应该怎么映射文字描述的功能呢?我猜我需要
- tokenise文本
- 识别关键标记(函数名称,参数)
- 尝试和地图标记组合函数签名
不过我猜这在机器学习领域已经是一个“解决的问题”。我应该使用自然语言处理吗?纯文本搜索?还有别的吗?
感谢所有想法,加上实施建议[我正在使用Python/AppEngine;我知道NLTK和飞快]
[PS我明白谷歌已经这样做了,至少对列表上的前两个查询。我猜他们也会统计数据,有很多搜索数据。我没有大量的可用数据,因此需要一种替代方法]。
一些问题 - 用一个句子写多少个操作? (例如 - 这是合法的要求 - “取2和3的乘积并将其添加到7和6乘积的平方”?)如果不止一个 - 嵌套操作的最大深度是多少?从这些问题的答案中可以清楚地看到 - 你是否需要全面的语法树解析... – 2011-03-27 09:36:15
对于我上面的复合句子,你需要生成这样的[语法树](http://img819.imageshack。我们/ img819/6347/syntaxtree.png) – 2011-03-27 10:17:31