Query da linguaggio naturale a SQL


13

Ho lavorato allo sviluppo di un sistema "Conversione del linguaggio naturale in query SQL".

Ho letto le risposte da domande simili, ma non sono riuscito a ottenere le informazioni che stavo cercando.

Di seguito è riportato il diagramma di flusso per tale sistema che ho ottenuto da Un algoritmo per trasformare il linguaggio naturale in query SQL per database relazionali di Garima Singh, Arun Solanki

Diagramma di flusso

Ho capito fino a una parte della fase di tagging vocale. Ma come posso affrontare i passaggi rimanenti.

  1. Devo addestrare tutte le possibili query SQL?
  2. Oppure, una volta terminata la parte della codifica vocale, devo giocare con le parole e formare una query SQL?

Modifica: ho implementato con successo il passaggio da "query utente" a "Parte della codifica vocale".

Grazie.


2
Su Nibi.ai (io sono uno dei fondatori) stiamo costruendo un motore NLP to SQL che puoi usare come API. Ci lanceremo presto. Fammi sapere se vuoi ottenere una demo.
Yehuda Kogan,

In alternativa potresti chiedere all'essere umano di seguire un corso SQL ...
Marmite Bomber,

Risposte:


16

Se vuoi affrontare il problema da un'altra prospettiva, con un apprendimento end-to-end , in modo da non specificare in anticipo questa grande pipeline che hai menzionato in precedenza, tutto ciò che ti interessa è la mappatura tra le frasi e il loro SQL corrispondente interrogazioni.

Tutorial:

Come parlare con il tuo database

Papers:

dataset:

Un grande corpus di analisi semantico annotato per lo sviluppo di interfacce di linguaggio naturale.

Codice Github:

  1. seq2sql
  2. SQLNet

Inoltre, ci sono soluzioni commerciali come nlsql


2
+1, per aver risposto bene ma non ho ancora
esaminato

@Fadi Bakoura Grazie. Lasciami passare attraverso i collegamenti.
deepguy

4

NLTK ha un'eccellente guida passo passo su tutto il necessario per convertire il linguaggio umano in una query SQL usando il pacchetto nltk in python.

È rudimentale, ma risponde alla tua domanda.


Grazie @ killerT2333. Ho appena guardato. Ma è un po 'confuso. C'è qualche altro documento semplice?
deepguy

1
È quello più semplice che conosco: è un compito piuttosto complesso quello che stai chiedendo, quindi non c'è una risposta semplice alla tua domanda. Nella documentazione di nltk ti guidano attraverso la teoria ad alto livello, e anche a basso livello con molti esempi di codice. Più ampio di quello, probabilmente dovrai cercare github o documenti di ricerca.
PyRsquared

Lo esaminerò ancora una volta. E ti aggiorno qui.
deepguy

2

A complemento della risposta di Fadi, di seguito sono riportati altri articoli utili sui metodi NL a SQL. La principale differenza di questi metodi è che supportano le query a cui è necessario rispondere utilizzando più di una tabella (unendo tabelle diverse), tuttavia il paper di Salesforce (e il loro set di dati) è focalizzato sulle query su una tabella alla volta.

Entrambi questi documenti utilizzano il set di dati GeoQuery disponibile qui .

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.