Consulta de linguagem natural para SQL

12

Eu tenho trabalhado no desenvolvimento de um sistema "Convertendo a linguagem natural em consulta SQL".

Li as respostas de perguntas semelhantes, mas não consegui obter as informações que estava procurando.

Abaixo está o fluxograma para esse sistema, obtido de Um algoritmo para transformar a linguagem natural em consultas SQL para bancos de dados relacionais de Garima Singh, Arun Solanki

Fluxograma

Eu entendi até parte da etapa de marcação de fala. Mas como abordar as etapas restantes.

  1. Preciso treinar todas as consultas SQL possíveis?
  2. Ou, depois que parte da marcação de fala é concluída, tenho que brincar com as palavras e formar uma consulta SQL?

Editar: implementei com êxito a etapa "consulta do usuário" para "Parte da marcação da fala".

Obrigado.

deepguy
fonte
2
No Nibi.ai (eu sou um dos fundadores), estamos construindo um mecanismo de PNL para SQL que você pode usar como uma API. Estamos lançando em breve. Deixe-me saber se você deseja obter uma demonstração.
Yehuda Kogan 29/08
Como alternativa, você pode perguntar o ser humano para fazer um curso de SQL ...
Marmite Bomber

Respostas:

15

Se você quiser resolver o problema de outra perspectiva, com um aprendizado de ponta a ponta , para não especificar antecipadamente esse grande pipeline mencionado anteriormente, tudo o que importa é o mapeamento entre as frases e o SQL correspondente. consultas.

Tutoriais:

Como falar com seu banco de dados

Papéis:

Conjunto de dados:

Um grande corpus de análise semântica anotada para o desenvolvimento de interfaces de linguagem natural.

Código do Github:

  1. seq2sql
  2. SQLNet

Além disso, existem soluções comerciais como o nlsql

Fadi Bakoura
fonte
2
+1, por responder bem, mas ainda não passou pelos links #
Toros91 16/05/19
@Fadi Bakoura Obrigado. Deixe-me ver os links.
Deepguy 16/0518
4

O NLTK possui um excelente guia passo a passo sobre tudo o que você precisa para converter a linguagem humana em uma consulta SQL usando o pacote nltk em python.

É rudimentar, mas responde à sua pergunta.

PyRsquared
fonte
Obrigado @ killerT2333. Eu apenas olhei. Mas é meio confuso. Existe algum outro documento simples?
deepguy
11
Essa é a mais simples que eu conheço - é uma tarefa bastante complexa, o que você está pedindo, portanto não há uma resposta simples para sua pergunta. Na documentação do nltk, eles mostram a teoria em um nível alto e também em um nível baixo, com muitos exemplos de código. Mais extenso que isso, você provavelmente precisará pesquisar no github ou em documentos de pesquisa.
PyRsquared
Eu vou passar por isso mais uma vez. E atualizá-lo aqui.
deepguy
2

Para complementar a resposta de Fadi, a seguir estão outros documentos úteis sobre métodos NL para SQL. A principal diferença desses métodos é que eles suportam consultas que devem ser respondidas usando mais de uma tabela (juntando-se a tabelas diferentes); no entanto, o documento do Salesforce (e seu conjunto de dados) concentra-se em consultas em uma tabela por vez.

Ambos os documentos usam o conjunto de dados GeoQuery disponível aqui .

vahid
fonte