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
Ich habe bis zu einem Teil des Sprachmarkierungsschritts verstanden. Aber wie gehe ich mit den verbleibenden Schritten um?
- Muss ich alle möglichen SQL-Abfragen trainieren?
- 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.
Antworten:
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:
Seq2SQL: Generieren strukturierte Abfragen von Natural Language mit Reinforcement Learning Salesforce
Neural Enquirer: Lernen, Tabellen in natürlicher Sprache abzufragen
Datensatz:
Ein großer kommentierter semantischer Parsing-Korpus zur Entwicklung von Schnittstellen in natürlicher Sprache.
Github-Code:
Es gibt auch kommerzielle Lösungen wie nlsql
quelle
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.
quelle
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 .
quelle