Abfrage von natürlicher Sprache zu SQL


12

Ich habe an der Entwicklung eines Systems "Konvertieren natürlicher Sprache in SQL-Abfrage" gearbeitet.

Ich habe die Antworten aus ähnlichen Fragen gelesen, konnte jedoch nicht die gesuchten Informationen abrufen.

Unten ist das Flussdiagramm für ein solches System, das ich von einem Algorithmus zur Umwandlung natürlicher Sprache in SQL-Abfragen für relationale Datenbanken von Garima Singh, Arun Solanki, erhalten habe

Flussdiagramm

Ich habe bis zu einem Teil des Sprachmarkierungsschritts verstanden. Aber wie gehe ich mit den verbleibenden Schritten um?

  1. Muss ich alle möglichen SQL-Abfragen trainieren?
  2. Oder muss ich nach Abschluss der Sprachkennzeichnung mit den Wörtern spielen und eine SQL-Abfrage erstellen?

Bearbeiten: Ich habe den Schritt "Benutzerabfrage" bis "Teil der Sprachkennzeichnung" erfolgreich implementiert.

Danke.


2
Bei Nibi.ai (ich bin einer der Gründer) erstellen wir eine NLP-zu-SQL-Engine, die Sie als API verwenden können. Wir starten bald. Lassen Sie mich wissen, wenn Sie eine Demo erhalten möchten.
Yehuda Kogan

Alternativ können Sie den Menschen bitten, einen SQL-Kurs
Marmite Bomber

Antworten:


15

Wenn Sie das Problem aus einer anderen Perspektive mit einem End-to-End-Lernen angehen möchten , sodass Sie diese große Pipeline, die Sie zuvor erwähnt haben, nicht im Voraus angeben, ist alles, was Sie interessiert, die Zuordnung zwischen Sätzen und dem entsprechenden SQL Anfragen.

Tutorials:

So sprechen Sie mit Ihrer Datenbank

Papiere:

Datensatz:

Ein großer kommentierter semantischer Parsing-Korpus zur Entwicklung von Schnittstellen in natürlicher Sprache.

Github-Code:

  1. seq2sql
  2. SQLNet

Es gibt auch kommerzielle Lösungen wie nlsql


2
+1, für die gute Antwort, aber noch nicht durch die Links gegangen
Toros91

@Fadi Bakoura Danke. Lassen Sie mich die Links durchgehen.
Deepguy

4

NLTK bietet eine hervorragende Schritt-für-Schritt-Anleitung für alles, was Sie zum Konvertieren der menschlichen Sprache in eine SQL-Abfrage mithilfe des nltk-Pakets in Python benötigen.

Es ist rudimentär, aber es beantwortet Ihre Frage.


Danke @ KillerT2333. Ich habe nur geschaut. Aber es ist irgendwie verwirrend. Gibt es ein anderes einfaches Dokument?
Deepguy

1
Das ist die einfachste, die ich kenne - es ist eine ziemlich komplexe Aufgabe, die Sie stellen, daher gibt es keine einfache Antwort auf Ihre Frage. In der nltk-Dokumentation führen sie Sie auf hohem Niveau und auch auf niedrigem Niveau mit vielen Codebeispielen durch die Theorie. Umfangreicher als das, müssen Sie wahrscheinlich Github oder Forschungsarbeiten suchen.
PyRsquared

Ich werde das noch einmal durchgehen. Und aktualisiere dich hier.
Deepguy

2

Um die Antwort von Fadi zu ergänzen, finden Sie im Folgenden weitere nützliche Informationen zu NL-zu-SQL-Methoden. Der Hauptunterschied dieser Methoden besteht darin, dass sie Abfragen unterstützen, die mit mehr als einer Tabelle beantwortet werden sollten (Verknüpfung verschiedener Tabellen). Das Salesforce-Dokument (und deren Dataset) konzentriert sich jedoch auf Abfragen für jeweils eine Tabelle.

Beide Artikel verwenden hier den verfügbaren GeoQuery-Datensatz .

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.