Skip to main content

Un. Qu'est-ce que nl2sql?


NL2SQL (langue naturelle à SQL), car le nom montre, consiste à convertir une langue naturelle en relevés SQL. Il peut servir de base de données d'interfaces intelligentes, de sorte que les utilisateurs ne se familiarisent pas avec la base de données puisse rapidement trouver les données souhaitées. Par exemple, la nuit vendredi, le personnel des affaires Xiao Li souhaitait écrire un rapport de travail, résumant les travaux de ce mois-ci. En termes de contenu, il est nécessaire de voir la vente totale d'un produit ce mois-ci, mais la société n'a pas de données de rapport spécifiques sur cette question. Le cœur de Xiao Li a été envisagé, j'ai donc étudié la base de données elle-même. Si ces données le sent dans cette table. À la fin, il a donné au développeur Xiao Wang à appeler. Je veux qu'il l'aide à vérifier de la base de données de fond, qui sait que Xiao Wang est arrivé le week-end, puis développé Xiaoxia. Un appel téléphonique, le résultat n'est que personne qui répond, vraiment au sommeil de Xiao Li est difficile! HaltèreJusqu'à présent, s'il y a une boîte de recherche, Xiao Li vient d'entrer "Je veux voir la vente totale d'un produit en septembre" et revenir enfin à Xiao Li, une déclaration SQL ou un résultat de requête, pas beaucoup de gens . Wow.


L'exemple ci-dessus est un script d'application de NL2SQL, quel que soit le résultat du numéro de retour ou de l'afficher en tant que rapport pour l'utilisateur. En fait, sur la base des questions et des réponses d'assurance qualité basées sur la carte, elle est similaire à celle-ci. La question et la réponse de la carte de connaissances consiste à convertir la requête de l'utilisateur en SPARQL, puis recherchez les résultats de la carte de l'utilisateur. Soulever une châtaigne, comme le montre la figure 1, l'utilisateur a présenté la question suivante: "Quel est le nombre total de chansons fabriquées par Anna Nalick?" Une fois que le système analyse le système, le dernier a été payé pour les utilisateurs qui sont une instruction SQL de chaîne " ?????? ????? ????? ????? ????? ????? ????? ? ????? ??????? ? ???? ???? ???? ???? ???? ???? ???? ???? ???? ???? ???? ???? ???? ???? ???? ??????? ??????? ??????? ????, ou retourner les résultats de mise en œuvre: 1.



]




NL2SQL a une longue histoire. Au début de 1973, Woods et al. Développer un calendrier lunaire nommé. Le système peut répondre au problème des motifs rocheux de la lune. En 1978, il a conçu une interface de langue naturelle connectée à la base de données d'informations sur les navires naval américaines, nommée Lifer / Ladder. Ces systèmes ne prennent en charge qu'une activité de table d'une base de données spécifique.

Ces dernières années, les chercheurs ont également tenté de développer un système complexe pouvant créer différentes déclarations de requête. En 2008, SIASAR ET AL. Proposer un système d'experts basé sur des concepts de base de syntaxe et de connaissances sémantiques et proposer une magieLes mathématiques peuvent choisir une déclaration de requête appropriée à partir de plusieurs résultats. Après cela, en 2010, Rao et al. Proposer un système contenant des requêtes simples et cachées. En 2013, Chaudhari a mis en place un système pour gérer les fonctions de requête et synthétiser simplement en utilisant une technologie prototypique. Ces deux systèmes n'ont pas été développés en plusieurs opérations liées au tableau. En 2014, Ghosh et al. Sur la base des résultats de la recherche de Chaudhari, développant un générateur de requête automatique basé sur la base. Il utilise du texte en langage vocal ou naturel comme entrée, prend en charge des opérations de requête simples et des ensembles imbriqués et le système peut également les gérer que la propriété est clairement montrée. La même année, Reinaldha et Widagdo utilisent différentes manières d'étudier différentes formes d'intrants, ils utilisent des règles sémantiques pour déterminer la relation entre les mots qui apparaissent dans des incidents et des attributs dans la base de données. En 2015, Palakurthi et al. Fournir des informations relatives àTypes d'attributs et de caractéristiques de classification, décrivez comment différentes propriétés apparaissent dans des phrases dans des phrases. 2016, Ghosal et al. Vous proposer un système peut gérer plusieurs tables simples, mais le dictionnaire de données utilisé est limité. La même année, Kaur et J, Jan ont renforcé la requête et les connexions simples du système, mais ne prennent pas en charge les termes avancés tels que des fonctions intégrées, des groupes et de l'OUI. Singh et Solanki ont également proposé un algorithme de conversion de langue naturelle aux requêtes SQL. Ils utilisent des verbes, des noms et des règles pour mapper des propriétés et des tableaux pour des mots dans des phrases et le système a géré le traitement de l'entrée flou du texte. En 2017, Google a mis au point un système analytique, un système interactif avec une langue naturelle, une prise en charge linguistique liée à l'utilisateur pour explorer l'analyse des données et des données. Le système a été utilisé dans deux produits dans Google, l'une est une QA QA QA QA de la table en ligne et du C.Est à nouveau un élément d'accès aux données de revenus et aux bases de données d'inventaire. La même année, Sukthankar, Nandan et al. A développé le système NQuery, une langue naturelle au générateur de requêtes SQL, prend en charge les fonctions synthétiques et de nombreuses conditions de la clause de l'endroit où les clauses avancées (comme commande dans l'ordre et oui). 2018, Utama, Prasetya, V.v a développé des outils DBPal, l'une est confrontée à une interface de langue naturelle à partir de la fin de la base de données. Il y a deux principales caractéristiques de DBPAL. Effets de requête.


Les études ci-dessus ont été analysées sur la base de phrases anglophones et de recherches sur la NL2SQL de la Chine n'ont pas été révélées. Jusqu'en juin 2019, une technologie poursuit un concours chinois NL2SQL sur la plate-forme Tianchi, où il existe une position dans la NL2SQL de la Chine.





sur le jeu de données, une comparaison de données anglaise avec Wikisql, Spider, WikalTQuestions, ATIS, etc chacunL'ensemble de données a ses propres caractéristiques, qui seront brièvement introduits dans les ensembles de données suivants.

Wikisql: Ces données sont l'ensemble de données NL2SQL à grande échelle de Salesforce proposée en 2017 et constitue également le plus grand ensemble de données NL2SQL. Il contient 24, 241 tables, 80, 645 questions de langage naturel et des relevés SQL correspondants. Actuellement, la précision prévue de la communauté académique peut atteindre 91,8%.

Spider: Spider Dataset est le nouvel ensemble de données NL2SQL d'Université de Yale en 2018. L'ensemble de données contient 10 181 questions sur la langue naturelle, distribué 5 693 SQL dans 200 bases de données indépendantes, comprend 138 zones différentes. Bien que la quantité de données ne soit pas aussi bonne que Wikisql, Spider introduit l'utilisation de SQL, telle que les groupes, la commande, v.v même besoin de rejoindre différentes tables, à proximité des scènes réelles, très difficiles. La précision actuelle n'est que de 54,7%.

WikitaireQuestions: Cet ensemble de données est un projet de données proposé en 2015 en 2015, y compris des ensembles de données deLa demi-forme a cette structure dans Wikipedia, dont 22 033 questions réelles et 2 108 tables. Étant donné que les sources de données sont Wikipedia, les données de la table sont correctes et non normalisées. Une cellule peut contenir de nombreuses entités ou significations, telles que "Beijing, Chine" ou "200 km"; Dans le même temps, il s'agit de très bonnes données ouvertes dans d'autres domaines, la relation entre des sujets et des entités de table dans des contrôles de données n'est pas visible dans le kit de formation.

Système d'information sur les voyages aéronautiques (ATIS): ATIS est un ensemble de données classique plus long en raison de l'instrument Texas, publié en 1990. Ce jeu de données a été des instructions pour la moyenne officielle de la moyenne officielle (OAG, 1990), dont 27 tables et moins que 2 000 demandes, avec une moyenne de 7 rounds, 93%, doivent être combinées à plus de 3 tables moyennes pour obtenir la réponse, le contenu de l'enquête de match inclut les vols, les coûts, les villes, le service terrestre et d'autres informations.

Adresse GitHub:

Wikisql: https: //github.com/saLesforce / wikisql
Spider: https: //yale-lily.github.io/spider
ATIS

ATIS: https://www.kaggle.com/siddhadev/ms-cntk-atis


Actuellement, une série de données est poursuivie à Tianchi, dont 40 000 données d'étiquettes en tant que formateur, 10 000 données ne permettent pas d'étiqueter comme kit de test .. Le résultat de la première place du concours a atteint 92%.







Dans la communauté académique, la technologie NL2SQL a créé un ensemble de méthodes, la figure 2 est des fourmis trois couches de NL2SQL.


Comme indiqué sur l'image, NL2SQL est divisé en une interface de requête d'utilisateur, une unité de manutention, une base de données en trois parties, dans laquelle l'unité de manutention est moyenne le centre de l'architecture entière et analyse sémantique. Le noyau est placé et le canal d'interaction utilisateur et la base de données, y compris la finition intelligente, l'identification de l'entité, TRUyens Connaissances, V.V. Dans ces études, l'algorithme interne de l'unité de manutention progresse progressivement dans la direction de l'apprentissage profond. Ci-dessous, examinez quelques structures système classiques NL2SQL.

Structure du système de l'année .analyza


Google a mis au point un système d'analyse pour ses propres caractéristiques commerciales et toute la structure du système illustrée à la figure 3.


Les systèmes ZA similaires incluent quatre composants: UI utilisateur, analyseur, répondeur de moteur et stockage. Divisez des unités de traitement de trois étages en deux parties: le moteur d'analyse et d'analyse. Jetons un coup d'œil aux rôles de chaque département.


UTILISATEURS UI: Interface interactive utilisateur, y compris les questions rapides automatiques (comme illustré à la figure 4), la visualisation et d'autres fonctions.
Archives: Archive est le centre de stockage de données, correspondant à des métadonnées sur la photo, y compris la carte des connaissances, de l'intention et des informations de schéma.base de données. Dans le même temps, le journal de recherche de l'utilisateur est également stocké.

L'analyseur: principalement responsable des requêtes des utilisateurs, y compris des annotations (combinant String + Ner + Identification de l'intention), grammaire (détection de syntaxe), prédiction sémantique (prédiction de sémantique), classement (points d'organisation). Cette section appellera pour améliorer l'exactitude des entités et identifiera les relations avec la carte.

Outil de réponse: Utilisé pour convertir des résultats de résolution sémantique en SQL, y compris l'identification de la table, le générateur de relevé de la requête, etc revenant enfin les résultats (données, liens photo fruits, SQL, etc.) pour les utilisateurs.




Structure du système DBPAL et l'analyse de l'ombre de l'architecture NL2SQL à trois couches. Il suffit légèrement différemment un peu détaillé. Contrairement à l'analyse, DBPAL se compose principalement de deux parties, qui sont des traducteurs de requêtes nerveuses et une interaction automatique complète.


comme illustré à la figure 5, pHLe côté supérieur gauche intègre les propositions de requête et ampli; Terminez automatiquement la fonction de rappel de la question automatique, non seulement fournissant aux utilisateurs une meilleure expérience et doit guider les utilisateurs à obtenir des réponses plus précises. Sur le côté droit de l'IG 4, le côté serveur est le noyau de DBPAL. Son objectif principal est de convertir les requêtes des utilisateurs en SQL, en l'exécutant comme une tâche de traduction, en utilisant des modèles d'apprentissage approfondis dans l'ordre, des données qu'il est également créée par la formation de modèle RNV et a augmenté de nombreuses activités avant la transformation et la période de pose avant et après le modèle avant et après le modèle.


Brève description du déploiement de sept.NL2SQL

Pour chaque système NL2SQL, à l'intérieur, petite structure de datong petite, mais la technologie est différente. La figure 5 décrit les détails de base créés à partir de cette question à la question à SQL. Simple, tout le système Split Split Nl2SQL dans l'identification SQL Certaines clauses SQL, y compris la clause Selece, où la clause WHERE et peut bien sûr avoir des groupes en fonction de, limités et plusAlors. Chaque section impliquera de nombreux détails, tels que la reconnaissance de la table, l'identification d'attributs, des indicateurs supplémentaires supplémentaires et plus encore. La figure 5 est un déploiement NL2SQL par le décodeur de codeur par une méthode d'apprentissage profonde. L'analyse de Google a été construite par des règles analysées et sémantiques, et l'explication du papier était principalement due aux problèmes de données.



    Conclusion


Pour NL2SQL, l'auteur profonde se sent difficile à travailler, à travers les principes de ces articles sur un prototype de NL2SQL, suivi pour améliorer continuellement. Cet article est principalement un résumé proche de la NL2SQL. Le contenu est relativement fragile et il sera conscient des papiers correspondants s'il existe une question sur le contenu pertinent. Enfin, si vous êtes intéressé par la NL2SQL ou l'étude, vous pouvez ajouter un WECKAT pour découvrir la pratique industrielle de NL2SQL Chine!

Neuf. Référence


Dar, Hafsa Shareeef, et al. "Cadre pour interroger des bases de données en langage naturel: une évaluation littéraire." ARXIV INTRINT ARXIV: 1909.01822 (2019)

Hiregoudar, Shavankumar, Manjunath Galon et K. G. Karibasappa. "Parler avec un générateur SQL - une approche vocale."

Soleil, Yibo, et al. "Analysant avec SQL Syntax SQL et Table-Cays-Cays." Arxiv Instrint Arxiv: 1804.08338 (2018).
Utana, Prasetya, et al. "Interface de langue naturelle nerveuse du début à la fin de la base de données." ARXIV INTRINT ARXIV: 1804.00401 (2018).

Xu, Xiaojun, Chang Liu et Dawn Song. "SQLNET: créer des requêtes structurées de la langue naturelle sans apprendre." Arxiv Instrint Arxiv: 1711.04436 (2017).
Sukthankar, Nandan, et al. "NQuery - une déclaration de langue naturelle pour la génération de requête SQL." Actes d'ACL 2017, atelier de recherche sur les étudiants. 2017.

Dhamdhere, Kedar, et al. "Analyse: découvrez des données avec le jeuDistrict. "Actes de la 22e Conférence internationale sur l'interface utilisateur intelligente. ACM, 2017.

Liang, Percy." Apprendre sémantique analyse de la langue naturelle. "Arxiv Instrint Arxiv: 1603.06677 (2016). Singh, Garima et arun pour Solanki. Un algorithme pour transformer la langue naturelle en requêtes SQL pour des bases de données relationnelles.

Sujets

Catégories