如何解决英语句子动词的语义问题
问题描述:
我正在尝试将英语语句转换为SQL查询。
例如去年创造了多少产品?如何解决英语句子动词的语义问题
这应该得到转化为select count(*) from products where manufacturing date between 1/1/2015 and 31/12/2015
我无法理解如何映射“创建”我的表为“生产日期”的属性动词。我正在使用斯坦福核心nlp套件来解析我的陈述。我也在使用带有JWI框架的wordnet分类法。
我试图通过定义简单规则将动词映射到属性。但它不是一个非常通用的方法,因为我不能提前知道所有的动词。有没有更好的方法来实现这一目标?
我希望在这方面提供任何帮助。
答
我知道这将需要更换工具,但我会推荐Mycroft AI检查Adapt。
这是一个非常直接的意图解析器,它将用户输入转换为json语义表示。
例如:
Input: "Put on my Joan Jett Pandora station."
JSON:
{
"confidence": 0.61,
"target": null,
"Artist": "joan jett",
"intent_type": "MusicIntent",
"MusicVerb": "put on",
"MusicKeyword": "pandora"
}
它看起来像规则很容易指定,做强做大做你只需要构建自己的规则,然后有你想要处理JSON的任何工具,并发送SQL查询。
您可能想看看Semper(https://github.com/percyliang/sempre) - 一般来说,语义分析正试图解决这些类型的问题。 –
我确实看过了我发现我的需求非常整齐的semper。我正在编写Java代码以开始。但是,除了Linux命令行界面外,我无法找到任何代码或任何入口点。我想在使用Java的Windows上开发它。任何指针? –