将NLP转换为SQL的方法有哪些?

时间:2019-02-22 02:10:45

标签: machine-learning nlp

最近,已经开始研究对话型聊天机器人的概念,并一直在考虑将自然语言查询转换为SQL的不同方法。 这些是我从头开始编写之前要评估的一些库。还有其他想法或建议吗?

3 个答案:

答案 0 :(得分:2)

检查此开源Python框架(始于2014年):

Quepy是将自然语言转换为数据库查询的框架。它可以轻松地针对自然语言和数据库查询中的各种问题进行自定义。因此,只需编写少量代码,您就可以构建自己的系统,以自然语言访问数据库。

答案 1 :(得分:1)

从AllenNLP查看此演示:https://demo.allennlp.org/atis-parser

将自然语言文本转换为SQL查询。他们也有python库allennlp

这是他们的github仓库:https://github.com/allenai/allennlp

有关语义解析的文档:

https://allenai.github.io/allennlp-docs/api/allennlp.data.dataset_readers.semantic_parsing.html

答案 2 :(得分:0)

这里的主要挑战是适应最终用户的需求。大多数最终用户在技术上还不够熟练,他们也不了解数据库架构。

此处提到的所有开放源代码库都需要在输入请求中使用列名,因此最终用户应将请求设计为“让我计数column_name小于120的column_name”。这种假设是错误的,因为最终用户通常不关心数据库结构和列名。使用开源库,您可以在常规SQL之上创建另一个“结构查询语言”层。

我建议在构建服务之前先看一下NLP库:

BERT ==== https://github.com/hanxiao/bert-as-service

句子变形金刚==== https://github.com/UKPLab/sentence-transformers

VaderSentiment ==== https://github.com/cjhutto/vaderSentiment

此外,我建议您查看NLP to SQLNatural Language to SQL软件体系结构和现有的商业软件