Langage naturel vers requête SQL

13

J'ai travaillé sur le développement d'un système "Conversion du langage naturel en requête SQL".

J'ai lu les réponses aux questions similaires, mais je n'ai pas pu obtenir les informations que je cherchais.

Voici l'organigramme d'un tel système que j'ai obtenu d' un algorithme pour transformer le langage naturel en requêtes SQL pour les bases de données relationnelles par Garima Singh, Arun Solanki

Organigramme

J'ai compris jusqu'à une partie de l'étape de balisage vocal. Mais comment aborder les étapes restantes.

  1. Dois-je former toutes les requêtes SQL possibles?
  2. Ou, une fois qu'une partie du balisage vocal est terminée, je dois jouer avec les mots et former une requête SQL?

Edit: J'ai réussi à implémenter l'étape "requête utilisateur" à "partie du balisage vocal".

Je vous remercie.

deepguy
la source
2
Chez Nibi.ai (je suis l'un des fondateurs), nous construisons un moteur NLP vers SQL que vous pouvez utiliser comme API. Nous lançons bientôt. Faites-moi savoir si vous souhaitez obtenir une démo.
Yehuda Kogan
Comme alternative, vous pouvez demander à l'humain de suivre un cours SQL ...
Marmite Bomber

Réponses:

16

Si vous voulez aborder le problème dans une autre perspective, avec un apprentissage de bout en bout , de sorte que vous ne spécifiez pas à l'avance ce grand pipeline que vous avez mentionné plus tôt, tout ce qui vous intéresse est le mappage entre les phrases et leur SQL correspondant requêtes.

Tutoriels:

Comment parler à votre base de données

Papiers:

Base de données:

Un grand corpus d'analyse sémantique annoté pour développer des interfaces en langage naturel.

Code Github:

  1. seq2sql
  2. SQLNet

En outre, il existe des solutions commerciales comme nlsql

Fadi Bakoura
la source
2
+1, pour avoir bien répondu mais n'avez pas encore parcouru les liens
Toros91
@Fadi Bakoura Merci. Permettez-moi de parcourir les liens.
deepguy
4

NLTK a un excellent guide étape par étape sur tout ce dont vous avez besoin pour convertir le langage humain en une requête SQL en utilisant le package nltk en python.

C'est rudimentaire, mais cela répond à votre question.

PyRsquared
la source
Merci @ killerT2333. Je viens de regarder. Mais c'est un peu déroutant. Existe-t-il un autre document simple?
deepguy
1
C'est la plus simple que je connaisse - c'est une tâche assez complexe que vous demandez, donc il n'y a pas de réponse simple à votre question. Sur la documentation de nltk, ils vous guident à travers la théorie à un niveau élevé, et également à un niveau bas avec de nombreux exemples de code. Plus étendu que cela, vous devrez probablement rechercher github ou des documents de recherche.
PyRsquared
Je reviendrai là-dessus une fois de plus. Et vous mettre à jour ici.
deepguy
2

Pour compléter la réponse de Fadi, voici d'autres articles utiles sur les méthodes NL vers SQL. La principale différence de ces méthodes est qu'elles prennent en charge les requêtes auxquelles il faut répondre à l'aide de plusieurs tables (joindre des tables différentes), mais le document Salesforce (et leur jeu de données) se concentre sur les requêtes sur une table à la fois.

Ces deux articles utilisent ici l'ensemble de données GeoQuery disponible .

vahid
la source