自然语言问题的 SQL 查询自动生成与重排序
1. 引言
在过去十年中,人们开发了各种方法来自动将自然语言问题转换为机器可读的指令。在数据库领域,问答系统需要通过执行 SQL 查询来回答自然语言问题。这是一项复杂的任务,因为系统需要处理自然语言表达与数据库结构之间的词汇差距。
数据库设计时,领域专家会以有意义的方式命名表和列,同时数据库模式会指定约束和数据类型,这些元数据存储在信息模式(IS)中。我们可以利用这些元数据,结合自然语言处理方法和先进的机器学习技术,构建基于核的重排序器,来填补自然语言与数据库结构之间的差距。
例如,对于问题 “Which rivers run through New York”,虽然 “rivers” 可直接与表 “river” 和列 “river name” 匹配,但 “run” 与元数据中的列无直接映射,不过可通过查找语义距离较近的元数据项 “traverse” 来消除歧义。而 “New York” 的匹配则更复杂,可能需要在整个数据库中查找其词干。我们可以利用相关元数据信息生成所有可能的查询,并使用重排序器选择最合理的查询。
2. 问题描述
2.1 自然语言问题与依赖列表
为了表示自然语言句子的文本关系,我们使用类型化依赖关系。斯坦福依赖表示法提供了一种简单而一致的方式来描述支配词和从属词之间的二元语法关系。我们使用其折叠表示法,将涉及介词、连词以及关系从句指称信息的依赖关系折叠,以获得内容词之间的直接依赖关系。
例如,问题 “What are the capitals of the states that border the most populous
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



