【问题标题】:How to resolve English sentence verbs semantically如何在语义上解析英语句子动词
【发布时间】:2016-10-10 07:38:02
【问题描述】:

我正在尝试将英文语句转换为 SQL 查询。
例如去年创造了多少产品?

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

我无法理解如何将动词“created”映射到表中的“manufacturing date”属性。我正在使用斯坦福核心 nlp 套件来解析我的陈述。我还在 JWI 框架中使用 wordnet 分类法。

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

我将不胜感激这方面的任何帮助。

【问题讨论】:

  • 您可能想看看 Semper (github.com/percyliang/sempre) -- 一般来说,语义解析正试图解决这些类型的问题。
  • 我确实看过 semper,我发现它非常适合我的需求。我正在编写 Java 代码以开始使用。但除了 Linux 命令行界面,我找不到任何 javadoc 或代码的任何入口点。我想在 Windows 上使用 Java 开发它。任何指针?

标签: nlp stanford-nlp semantics wordnet jwi


【解决方案1】:

我知道这需要更换工具,但我建议查看 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 查询。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-07-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-12
    相关资源
    最近更新 更多