如何解决英语句子动词的语义问题

问题描述:

我正在尝试将英语语句转换为SQL查询。
例如去年创造了多少产品?如何解决英语句子动词的语义问题

这应该得到转化为
select count(*) from products where manufacturing date between 1/1/2015 and 31/12/2015

我无法理解如何映射“创建”我的表为“生产日期”的属性动词。我正在使用斯坦福核心nlp套件来解析我的陈述。我也在使用带有JWI框架的wordnet分类法。

我试图通过定义简单规则将动词映射到属性。但它不是一个非常通用的方法,因为我不能提前知道所有的动词。有没有更好的方法来实现这一目标?

我希望在这方面提供任何帮助。

+1

您可能想看看Semper(https://github.com/percyliang/sempre) - 一般来说,语义分析正试图解决这些类型的问题。 –

+0

我确实看过了我发现我的需求非常整齐的semper。我正在编写Java代码以开始。但是,除了Linux命令行界面外,我无法找到任何代码或任何入口点。我想在使用Java的Windows上开发它。任何指针? –

我知道这将需要更换工具,但我会推荐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查询。