Consulta de lenguaje natural a SQL

12

He estado trabajando en el desarrollo de un sistema "Conversión de lenguaje natural a consulta SQL".

He leído las respuestas de preguntas similares, pero no pude obtener la información que estaba buscando.

A continuación se muestra el diagrama de flujo para dicho sistema que obtuve de Un algoritmo para transformar el lenguaje natural en consultas SQL para bases de datos relacionales por Garima Singh, Arun Solanki

Diagrama de flujo

Lo he entendido hasta parte del paso de etiquetado del discurso. Pero, ¿cómo me acerco a los pasos restantes.

  1. ¿Necesito entrenar todas las consultas SQL posibles?
  2. O, una vez que se realiza parte del etiquetado del discurso, ¿tengo que jugar con las palabras y formar una consulta SQL?

Editar: he implementado con éxito desde el paso "consulta de usuario" a "Parte del etiquetado de voz".

Gracias.

Deepguy
fuente
2
En Nibi.ai (soy uno de los fundadores) estamos construyendo un motor de NLP a SQL que puede usar como API. Estamos lanzando pronto. Avíseme si desea obtener una demostración.
Yehuda Kogan
Como alternativa, puede pedirle al humano que tome un curso de SQL ...
Marmite Bomber

Respuestas:

15

Si desea abordar el problema desde otra perspectiva, con un aprendizaje de principio a fin , de modo que no especifique de antemano esta gran tubería que ha mencionado anteriormente, lo único que le importa es la asignación entre oraciones y su correspondiente SQL consultas

Tutoriales:

Cómo hablar con tu base de datos

Documentos:

Conjunto de datos:

Un gran corpus de análisis semántico anotado para desarrollar interfaces de lenguaje natural.

Código de Github:

  1. seq2sql
  2. SQLNet

Además, hay soluciones comerciales como nlsql

Fadi Bakoura
fuente
2
+1, por responder bien pero aún no ha pasado por los enlaces
Toros91
@Fadi Bakoura Gracias. Déjame ir a través de los enlaces.
deepguy
4

NLTK tiene una excelente guía paso a paso sobre todo lo que necesita para convertir el lenguaje humano en una consulta SQL utilizando el paquete nltk en python.

Es rudimentario, pero responde a su pregunta.

PyRsquared
fuente
Gracias @ killerT2333. Acabo de mirar. Pero es un poco confuso. ¿Hay algún otro documento simple?
deepguy
1
Esa es la más simple que conozco: es una tarea bastante compleja lo que está preguntando, por lo que no hay una respuesta simple a su pregunta. En la documentación de nltk, lo llevan a través de la teoría a un nivel alto, y también a un nivel bajo con muchos ejemplos de código. Más extenso que eso, probablemente necesite buscar github o trabajos de investigación.
PyRsquared
Voy a pasar por eso una vez más. Y te actualizo aquí.
deepguy
2

Para complementar la respuesta de Fadi, los siguientes son otros documentos útiles sobre los métodos de NL a SQL. La principal diferencia de estos métodos es que admiten consultas que deben responderse utilizando más de una tabla (unir tablas diferentes), sin embargo, el documento de Salesforce (y su conjunto de datos) se centra en consultas en una tabla a la vez.

Ambos documentos utilizan el conjunto de datos GeoQuery disponible aquí .

vahid
fuente