SQL查詢語句的自動生成技術研究
發(fā)布時間:2022-01-08 20:38
隨著IT技術的不斷發(fā)展,醫(yī)療、教育、金融等各個行業(yè)都在使用數(shù)據(jù)庫進行數(shù)據(jù)存儲。軟件工程師在軟件開發(fā)過程中會頻繁地使用SQL語句用于數(shù)據(jù)的增刪改查,業(yè)務人員也經(jīng)常使用SQL語句進行報表與在線分析(OLAP)的定制,從數(shù)據(jù)庫中獲取所需信息。但是,SQL語言本質(zhì)上是一種編程語言,使用者需要具有一定的數(shù)據(jù)庫和SQL語言相關專業(yè)知識,并且需要在熟悉數(shù)據(jù)庫模式的前提下,才能熟練進行SQL語句的編寫。如何降低SQL語言的學習成本?如何更快更好地生成SQL查詢語句?如何使用更自然的方式生成SQL語言?針對這些問題,本文研究面向最終用戶的SQL查詢語句的自動生成技術,提出了從交互式自然語言接口生成SQL查詢語句(INL2SQL)和從自然語言生成SQL查詢語句(NL2SQL)的技術與方法。本文主要的貢獻和創(chuàng)新點包括:1)研究提出了一種基于映射的INL2SQL生成方法。本方法使用依賴解析樹生成、解析樹節(jié)點映射、解析樹優(yōu)化重構、查詢樹翻譯模塊對用戶輸入的查詢進行意圖的解析,并將其映射到SQL查詢語句上。通過交互式對話器和用戶接口模塊對意圖的解析與映射進行補充和重構。本文采用Classicmodels和MAS數(shù)...
【文章來源】:上海交通大學上海市 211工程院校 985工程院校 教育部直屬院校
【文章頁數(shù)】:86 頁
【學位級別】:碩士
【部分圖文】:
–6Classicmodels數(shù)據(jù)庫的數(shù)據(jù)庫模式圖
上海交通大學碩士學位論文第三章基于深度強化學習的NL2SQL生成第三章基于深度強化學習的NL2SQL生成本章基于深度強化學習技術,研究并提出了自然語言生成SQL查詢語句(NL2SQL)的方法。3.1研究問題NL2SQL的輸入表示為x,其包含由單詞wi組成的自然語言問題w以及由列名cj組成的業(yè)務數(shù)據(jù)庫單張表的模式c(其中,列名cj可由單個或多個單詞組成)。輸出為一條可執(zhí)行的SQL查詢語句y以及其在業(yè)務數(shù)據(jù)庫中執(zhí)行的結果r。現(xiàn)通過給出NL2SQL任務中一個典型的例子(如圖3–1所示)來進一步說明。圖3–1NL2SQL的一個典型示例Figure3–1AnExampleofNL2SQL在圖3–1中,w為自然語言問題“WhatistheheightofWillisTowerinChicago?”,其中w0,w1,w2,...分別為單詞“What”、“is”、“the”等。c庫業(yè)務數(shù)據(jù)庫的模式“NameLocationHeight(ft)FloorYear”,其中c0,c1,c2,...分別為單詞“Name”、“Location”、“Height(ft)”等。輸入x是由w和c組成的集合。輸出y在該示例中對應的SQL查詢語句為“SELECT‘Height(ft)’WHEREName=‘WillisTower’ANDLocation=‘Chicago’”,其在業(yè)務數(shù)據(jù)庫中執(zhí)行的結果r為1451。NL2SQL的研究問題在于如何去理解自然語言語句的意圖并在一次交互的狀態(tài)下將意圖映射到SQL查詢語句上,即在知道數(shù)據(jù)庫模式c的狀態(tài)下,將用戶輸入的自然語言問題w轉換為一條SQL查詢語句y并得到數(shù)據(jù)庫執(zhí)行結果r!21—
上海交通大學碩士學位論文第三章基于深度強化學習的NL2SQL生成圖3–4激活函數(shù)Figure3–4ActivationFunction輸入層(inputlayer):輸入層接收由外部輸入的數(shù)據(jù)并傳遞給下一層,不進行任何的計算。隱藏層(hiddenlayer):隱藏層進行數(shù)據(jù)處理和計算,將計算結果傳遞給下一層。在網(wǎng)絡中可以存在多個隱藏層,其節(jié)點個數(shù)也可能不一致。輸出層(outputlayer):輸出層往往會將結果映射到所需的輸出格式上,例如采用softmax函數(shù)進行多分類。輸入層隱藏層輸出層輸入層隱藏層隱藏層輸出層圖3–5神經(jīng)網(wǎng)絡的基礎架構Figure3–5TheBasicInfrastructureofNeuralNetwork3.2.2.3反向傳播機制反向傳播(BackwardPropagation)機制[31]是訓練神經(jīng)網(wǎng)絡的幾種方式之一,使用它可以利用訓練數(shù)據(jù)來進行監(jiān)督學習。簡單來說,反向傳播就是“從錯誤中學習”,每當計算結果與正確結果不一致時,反向傳播機制可以有效地糾正神經(jīng)網(wǎng)絡。從圖3–6可以看出,首先經(jīng)過前向傳播得到模型的輸出與正確結果之間的總誤差Etotal,然后使用鏈式法則將誤差向后傳播并得到所有向量和權重的更新梯度!25—
本文編號:3577243
【文章來源】:上海交通大學上海市 211工程院校 985工程院校 教育部直屬院校
【文章頁數(shù)】:86 頁
【學位級別】:碩士
【部分圖文】:
–6Classicmodels數(shù)據(jù)庫的數(shù)據(jù)庫模式圖
上海交通大學碩士學位論文第三章基于深度強化學習的NL2SQL生成第三章基于深度強化學習的NL2SQL生成本章基于深度強化學習技術,研究并提出了自然語言生成SQL查詢語句(NL2SQL)的方法。3.1研究問題NL2SQL的輸入表示為x,其包含由單詞wi組成的自然語言問題w以及由列名cj組成的業(yè)務數(shù)據(jù)庫單張表的模式c(其中,列名cj可由單個或多個單詞組成)。輸出為一條可執(zhí)行的SQL查詢語句y以及其在業(yè)務數(shù)據(jù)庫中執(zhí)行的結果r。現(xiàn)通過給出NL2SQL任務中一個典型的例子(如圖3–1所示)來進一步說明。圖3–1NL2SQL的一個典型示例Figure3–1AnExampleofNL2SQL在圖3–1中,w為自然語言問題“WhatistheheightofWillisTowerinChicago?”,其中w0,w1,w2,...分別為單詞“What”、“is”、“the”等。c庫業(yè)務數(shù)據(jù)庫的模式“NameLocationHeight(ft)FloorYear”,其中c0,c1,c2,...分別為單詞“Name”、“Location”、“Height(ft)”等。輸入x是由w和c組成的集合。輸出y在該示例中對應的SQL查詢語句為“SELECT‘Height(ft)’WHEREName=‘WillisTower’ANDLocation=‘Chicago’”,其在業(yè)務數(shù)據(jù)庫中執(zhí)行的結果r為1451。NL2SQL的研究問題在于如何去理解自然語言語句的意圖并在一次交互的狀態(tài)下將意圖映射到SQL查詢語句上,即在知道數(shù)據(jù)庫模式c的狀態(tài)下,將用戶輸入的自然語言問題w轉換為一條SQL查詢語句y并得到數(shù)據(jù)庫執(zhí)行結果r!21—
上海交通大學碩士學位論文第三章基于深度強化學習的NL2SQL生成圖3–4激活函數(shù)Figure3–4ActivationFunction輸入層(inputlayer):輸入層接收由外部輸入的數(shù)據(jù)并傳遞給下一層,不進行任何的計算。隱藏層(hiddenlayer):隱藏層進行數(shù)據(jù)處理和計算,將計算結果傳遞給下一層。在網(wǎng)絡中可以存在多個隱藏層,其節(jié)點個數(shù)也可能不一致。輸出層(outputlayer):輸出層往往會將結果映射到所需的輸出格式上,例如采用softmax函數(shù)進行多分類。輸入層隱藏層輸出層輸入層隱藏層隱藏層輸出層圖3–5神經(jīng)網(wǎng)絡的基礎架構Figure3–5TheBasicInfrastructureofNeuralNetwork3.2.2.3反向傳播機制反向傳播(BackwardPropagation)機制[31]是訓練神經(jīng)網(wǎng)絡的幾種方式之一,使用它可以利用訓練數(shù)據(jù)來進行監(jiān)督學習。簡單來說,反向傳播就是“從錯誤中學習”,每當計算結果與正確結果不一致時,反向傳播機制可以有效地糾正神經(jīng)網(wǎng)絡。從圖3–6可以看出,首先經(jīng)過前向傳播得到模型的輸出與正確結果之間的總誤差Etotal,然后使用鏈式法則將誤差向后傳播并得到所有向量和權重的更新梯度!25—
本文編號:3577243
本文鏈接:http://sikaile.net/kejilunwen/ruanjiangongchenglunwen/3577243.html
最近更新
教材專著