本技術(shù)涉及數(shù)據(jù)處理,尤其涉及一種sql語句生成方法、裝置、設(shè)備及存儲介質(zhì)。
背景技術(shù):
1、在sql(structured?query?language,結(jié)構(gòu)化查詢語言數(shù)據(jù)庫)的應(yīng)用場景中,相關(guān)人員需要查詢和使用相應(yīng)數(shù)據(jù)時,需要通過相應(yīng)的語言轉(zhuǎn)換技術(shù),將相關(guān)人員的自然語言自動轉(zhuǎn)換至能用于sql數(shù)據(jù)庫查詢的sql語句,以使得相關(guān)人員可直接與sql數(shù)據(jù)庫進行直接交互,提高使用便捷性。
2、但是在使用語言自動轉(zhuǎn)換功能時,通常需要根據(jù)相應(yīng)的問題和數(shù)據(jù)庫模式信息之間的關(guān)聯(lián)關(guān)系,生成復(fù)雜的信息關(guān)聯(lián)關(guān)系異構(gòu)圖,并使用該異構(gòu)圖,進行相應(yīng)的信息解析,并根據(jù)解析的結(jié)果,生成相應(yīng)的sql語句。
3、但是,由于異構(gòu)圖中各信息之間的關(guān)聯(lián)程度復(fù)雜,在查詢相應(yīng)數(shù)據(jù)時,導(dǎo)致在部分查詢場景中,解析并生成sql語句的動作會受到信息之間的關(guān)聯(lián)關(guān)系的噪聲影響,無法精準地對應(yīng)不同查詢場景的信息差異化的查詢需求,導(dǎo)致最終生成的sql語句的語義信息不準確,無法真正反饋得到準確的問句答復(fù)。
4、申請內(nèi)容
5、本技術(shù)的主要目的在于提供一種sql語句生成方法、裝置、設(shè)備及存儲介質(zhì),旨在解決當(dāng)前生成的sql語句的語義信息不準確,無法真正反饋得到準確的問句答復(fù)的技術(shù)問題。
6、為實現(xiàn)上述目的,本技術(shù)提供一種sql語句生成方法,所述sql語句生成方法包括以下步驟:
7、獲取查詢問句和數(shù)據(jù)庫模式信息,并根據(jù)所述查詢問句和所述數(shù)據(jù)庫模式信息,生成異構(gòu)圖;
8、根據(jù)所述查詢問句,對所述異構(gòu)圖進行降噪優(yōu)化處理,得到目標(biāo)降噪優(yōu)化結(jié)果;
9、對所述目標(biāo)降噪優(yōu)化結(jié)果中所涉及的信息進行編碼,得到編碼結(jié)果,并根據(jù)所述編碼結(jié)果,生成可執(zhí)行的sql語句。
10、可選地,所述根據(jù)所述查詢問句和所述數(shù)據(jù)庫模式信息,生成異構(gòu)圖的步驟,包括:
11、確定所述查詢問句中的詞語,以及確定所述數(shù)據(jù)庫模式信息中的列名和表名,將所述詞語、所述列名和所述表名作為節(jié)點;
12、根據(jù)所述查詢問句和所述數(shù)據(jù)庫模式信息之間的關(guān)聯(lián)關(guān)系,確定各節(jié)點之間的節(jié)點關(guān)系,并確定所述節(jié)點所涉及的節(jié)點關(guān)系的數(shù)量;
13、根據(jù)預(yù)設(shè)量化公式,將所述節(jié)點關(guān)系的數(shù)量轉(zhuǎn)化為對應(yīng)節(jié)點的量化數(shù)值,并根據(jù)所述節(jié)點的量化數(shù)值,確定各節(jié)點之間的關(guān)系邊;
14、根據(jù)所述節(jié)點和所述關(guān)系邊,生成異構(gòu)圖。
15、可選地,所述節(jié)點關(guān)系包括主動節(jié)點關(guān)系和被動節(jié)點關(guān)系,所述根據(jù)所述查詢問句和所述數(shù)據(jù)庫模式信息之間的關(guān)聯(lián)關(guān)系,確定各節(jié)點之間的節(jié)點關(guān)系的步驟,包括:
16、根據(jù)所述查詢問句和所述數(shù)據(jù)庫模式信息之間的關(guān)聯(lián)關(guān)系,確定存在關(guān)聯(lián)關(guān)系的各節(jié)點之間的關(guān)系起點和關(guān)系終點;
17、若所述節(jié)點為存在關(guān)聯(lián)關(guān)系的各節(jié)點中的關(guān)系起點,則確定所述節(jié)點與其他節(jié)點之間存在被動節(jié)點關(guān)系;
18、若所述節(jié)點為存在關(guān)聯(lián)關(guān)系的各節(jié)點中的關(guān)系終點,則確定所述節(jié)點與其他節(jié)點之間存在主動節(jié)點關(guān)系。
19、可選地,所述根據(jù)預(yù)設(shè)量化公式,將所述節(jié)點關(guān)系的數(shù)量轉(zhuǎn)化為對應(yīng)節(jié)點的量化數(shù)值的步驟,包括:
20、確定所述節(jié)點所涉及的主動節(jié)點關(guān)系的第一數(shù)量和被動節(jié)點關(guān)系的第二數(shù)量;
21、若所述第一數(shù)量和所述第二數(shù)量相等,則賦予預(yù)設(shè)量化數(shù)值至對應(yīng)節(jié)點;
22、若所述第一數(shù)量和所述第二數(shù)量不相等,則根據(jù)預(yù)設(shè)量化公式,將所述第一數(shù)量和所述第二數(shù)量轉(zhuǎn)化為對應(yīng)節(jié)點的量化數(shù)值;
23、所述根據(jù)所述節(jié)點的量化數(shù)值,確定各節(jié)點之間的關(guān)系邊的步驟,包括:
24、根據(jù)相鄰的節(jié)點的量化數(shù)值,在所述相鄰的節(jié)點之間生成關(guān)系邊,其中,所述關(guān)系邊為根據(jù)所述量化數(shù)值的正負情況而生成的具備正負值屬性的邊。
25、可選地,所述根據(jù)所述查詢問句,對所述異構(gòu)圖進行降噪優(yōu)化處理,得到目標(biāo)降噪優(yōu)化結(jié)果的步驟,包括:
26、根據(jù)所述查詢問句,對所述異構(gòu)圖的信息范圍進行初步裁剪,得到初始降噪優(yōu)化結(jié)果;
27、對所述初始降噪優(yōu)化結(jié)果進行分割處理,得到由多個子異構(gòu)圖組成的目標(biāo)降噪優(yōu)化結(jié)果。
28、可選地,所述根據(jù)所述查詢問句,對所述異構(gòu)圖的信息范圍進行初步裁剪,得到初始降噪優(yōu)化結(jié)果的步驟,包括:
29、將所述查詢問句進行分詞處理,得到分詞結(jié)果,并對所述查詢問句進行語義分析,得到分析結(jié)果;
30、根據(jù)所述分詞結(jié)果和所述分析結(jié)果,確定所述查詢問句所對應(yīng)的搜索范圍;
31、在所述異構(gòu)圖內(nèi),查詢與所述搜索范圍匹配的主鍵節(jié)點和所述主鍵節(jié)點對應(yīng)的主鍵關(guān)系邊;
32、將所述主鍵節(jié)點和所述主鍵關(guān)系邊為裁剪中心,并根據(jù)所述裁剪中心和預(yù)設(shè)裁剪距離,對所述異構(gòu)圖進行初步裁剪,得到初始降噪優(yōu)化結(jié)果。
33、可選的,所述對所述初始降噪優(yōu)化結(jié)果進行分割處理,得到由多個子異構(gòu)圖組成的目標(biāo)降噪優(yōu)化結(jié)果的步驟,包括:
34、確定所述初始降噪優(yōu)化結(jié)果中符合預(yù)設(shè)分割條件的待分割關(guān)系邊;
35、根據(jù)所述待分割關(guān)系邊,對所述初始降噪優(yōu)化結(jié)果進行分割處理,得到多個子異構(gòu)圖;
36、確定分割處理后的結(jié)果的邊界節(jié)點,以及確定所述邊界節(jié)點的邊界量化數(shù)值;
37、若所述邊界量化數(shù)值的大小大于預(yù)設(shè)閾值,則將所述邊界量化數(shù)值轉(zhuǎn)化為預(yù)設(shè)數(shù)值,以得到目標(biāo)降噪優(yōu)化結(jié)果。
38、此外,為實現(xiàn)上述目的,本技術(shù)還提供一種sql語句生成裝置,所述sql語句生成裝置包括:
39、獲取模塊,用于獲取查詢問句和數(shù)據(jù)庫模式信息,并根據(jù)所述查詢問句和所述數(shù)據(jù)庫模式信息,生成異構(gòu)圖;
40、優(yōu)化模塊,用于根據(jù)所述查詢問句,對所述異構(gòu)圖進行降噪優(yōu)化處理,得到目標(biāo)降噪優(yōu)化結(jié)果;
41、生成模塊,用于對所述目標(biāo)降噪優(yōu)化結(jié)果中所涉及的信息進行編碼,得到編碼結(jié)果,并根據(jù)所述編碼結(jié)果,生成可執(zhí)行的sql語句。
42、此外,為實現(xiàn)上述目的,本技術(shù)還提供一種sql語句生成設(shè)備,所述sql語句生成設(shè)備包括:存儲器、處理器及存儲在所述存儲器上并可在所述處理器上運行的sql語句生成程序,所述sql語句生成程序配置為實現(xiàn)如上所述的sql語句生成方法的步驟。
43、此外,為實現(xiàn)上述目的,本技術(shù)還提供一種計算機可讀存儲介質(zhì),所述計算機可讀存儲介質(zhì)上存儲有sql語句生成程序,所述sql語句生成程序被處理器執(zhí)行時實現(xiàn)如上所述的sql語句生成方法的步驟。
44、本技術(shù)通過獲取查詢問句和數(shù)據(jù)庫模式信息,并根據(jù)所述查詢問句和所述數(shù)據(jù)庫模式信息,生成異構(gòu)圖;根據(jù)所述查詢問句,對所述異構(gòu)圖進行降噪優(yōu)化處理,得到目標(biāo)降噪優(yōu)化結(jié)果;對所述目標(biāo)降噪優(yōu)化結(jié)果中所涉及的信息進行編碼,得到編碼結(jié)果,并根據(jù)所述編碼結(jié)果,生成可執(zhí)行的sql語句,從而可通過根據(jù)查詢問句進行降噪優(yōu)化后的目標(biāo)降噪優(yōu)化結(jié)果,實現(xiàn)對相應(yīng)信息的過濾效果,以此降低數(shù)據(jù)庫模式信息中的部分信息對查詢問句產(chǎn)生編碼影響的噪聲,因而,提高生成的可執(zhí)行的sql語句的準確性。
技術(shù)實現(xiàn)思路