本申請涉及人工智能領(lǐng)域,尤其涉及一種語句糾錯模型的訓(xùn)練方法、語句糾錯方法及裝置。
背景技術(shù):
1、結(jié)構(gòu)化查詢語言數(shù)據(jù)庫(structured?query?language,sql)是一種專門用于管理和處理數(shù)據(jù)庫的語言。在使用sql語句進(jìn)行數(shù)據(jù)庫操作時,經(jīng)常會遇到各種錯誤,這就需要對錯誤的sql進(jìn)行糾錯。
2、在一些實例中,可利用sql編譯器中的語法分析器或者訓(xùn)練好的模型對sql語句進(jìn)行糾錯,sql編譯器中的語法分析器可對用戶編寫的sql語句進(jìn)行提示,但該方式不能處理語義錯誤和拼寫錯誤等問題,因此對于一些比較復(fù)雜的sql語句,其糾錯能力比較有限。還可以利用開發(fā)人員的經(jīng)驗,進(jìn)行排查及手動調(diào)試,但效率非常低。
技術(shù)實現(xiàn)思路
1、本申請實施例提供一種語句糾錯模型的訓(xùn)練方法、語句糾錯方法及裝置,以解決相關(guān)技術(shù)中利用sql編譯器中的語法分析器或者訓(xùn)練好的模型對sql語句進(jìn)行糾錯,不能處理語義錯誤和拼寫錯誤,而利用人工進(jìn)行糾錯效率較低的問題。
2、第一方面,提供了一種語句糾錯模型的訓(xùn)練方法,包括:
3、基于歷史sql語句的sql日志數(shù)據(jù),采集樣本數(shù)據(jù),所述樣本數(shù)據(jù)包括正樣本集合和正負(fù)樣本集合;
4、利用所述正負(fù)樣本集合中的數(shù)據(jù),對bert預(yù)訓(xùn)練模型進(jìn)行訓(xùn)練,得到bert分類模型,所述bert分類模型用于對待糾錯的sql語句進(jìn)行分類檢測,以確定所述sql語句的正確性;
5、在所述正樣本集合中的數(shù)據(jù)中添加基于預(yù)設(shè)噪聲函數(shù)確定的噪聲,得到重構(gòu)文本數(shù)據(jù);
6、利用bart算法框架對所述重構(gòu)文本數(shù)據(jù)進(jìn)行訓(xùn)練,得到bart預(yù)訓(xùn)練語言模型;
7、利用所述正負(fù)樣本集合中的數(shù)據(jù),對所述bart預(yù)訓(xùn)練語言模型進(jìn)行訓(xùn)練,得到bart糾錯模型,所述bart糾錯模型用于對所述bert分類模型確定出的錯誤的sql語句進(jìn)行改寫糾錯。
8、第二方面,提供了一種語句糾錯方法,包括:
9、接收用戶輸入的sql語句;
10、將所述sql語句輸入至如第一方面所述的bert分類模型中進(jìn)行分類處理,輸出所述sql語句的類型,所述類型包括正確、錯誤;
11、在所述sql語句的類型為錯誤的情況下,將所述sql語句輸入至如第一方面所述的bart糾錯模型中進(jìn)行改寫糾錯,輸出糾錯后的sql語句,并執(zhí)行所述糾錯后的sql語句。
12、第三方面,提供了一種語句糾錯模型的訓(xùn)練裝置,包括:
13、采集模塊,用于基于歷史sql語句的sql日志數(shù)據(jù),采集樣本數(shù)據(jù),所述樣本數(shù)據(jù)包括正樣本集合和正負(fù)樣本集合;
14、第一訓(xùn)練模塊,用于利用所述正負(fù)樣本集合中的數(shù)據(jù),對bert預(yù)訓(xùn)練模型進(jìn)行訓(xùn)練,得到bert分類模型,所述bert分類模型用于對待糾錯的sql語句進(jìn)行分類檢測,以確定所述sql語句的正確性;
15、添加模塊,用于在所述正樣本集合中的數(shù)據(jù)中添加基于預(yù)設(shè)噪聲函數(shù)確定的噪聲,得到重構(gòu)文本數(shù)據(jù);
16、第二訓(xùn)練模塊,用于利用bart算法框架對所述重構(gòu)文本數(shù)據(jù)進(jìn)行訓(xùn)練,得到bart預(yù)訓(xùn)練語言模型;
17、第三訓(xùn)練模塊,用于利用所述正負(fù)樣本集合中的數(shù)據(jù),對所述bart預(yù)訓(xùn)練語言模型進(jìn)行訓(xùn)練,得到bart糾錯模型,所述bart糾錯模型用于對所述bert分類模型確定出的錯誤的sql語句進(jìn)行改寫糾錯。
18、第四方面,提供了一種語句糾錯裝置,包括:
19、接收模塊,用于接收用戶輸入的sql語句;
20、分類模塊,用于將所述sql語句輸入至如第一方面所述的bert分類模型中進(jìn)行分類處理,輸出所述sql語句的類型,所述類型包括正確、錯誤;
21、糾錯模塊,用于在所述sql語句的類型為錯誤的情況下,將所述sql語句輸入至如第一方面所述的bart糾錯模型中進(jìn)行改寫糾錯,輸出糾錯后的sql語句,并執(zhí)行所述糾錯后的sql語句。
22、第五方面,提供了一種終端設(shè)備,包括:存儲器、處理器及存儲在所述存儲器上并可在所述處理器上運行的計算機(jī)程序,所述計算機(jī)程序被所述處理器執(zhí)行時實現(xiàn)如第一方面所述的方法的步驟,或者實現(xiàn)如第二方面所述的方法的步驟。
23、第六方面,提供了一種計算機(jī)可讀存儲介質(zhì),所述計算機(jī)可讀存儲介質(zhì)上存儲計算機(jī)程序,所述計算機(jī)程序被處理器執(zhí)行時實現(xiàn)如第一方面所述的方法的步驟,或者實現(xiàn)如第二方面所述的方法的步驟。
24、在本申請實施例中,首先基于歷史sql語句的sql日志數(shù)據(jù),采集樣本數(shù)據(jù),樣本數(shù)據(jù)包括正樣本集合和正負(fù)樣本集合;然后利用正負(fù)樣本集合中的數(shù)據(jù),對bert預(yù)訓(xùn)練模型進(jìn)行訓(xùn)練,得到bert分類模型,bert分類模型用于對待糾錯的sql語句進(jìn)行分類檢測,以確定sql語句的正確性;再在正樣本集合中的數(shù)據(jù)中添加基于預(yù)設(shè)噪聲函數(shù)確定的噪聲,得到重構(gòu)文本數(shù)據(jù);利用bart算法框架對重構(gòu)文本數(shù)據(jù)進(jìn)行訓(xùn)練,得到bart預(yù)訓(xùn)練語言模型;最后利用正負(fù)樣本集合中的數(shù)據(jù),對bart預(yù)訓(xùn)練語言模型進(jìn)行訓(xùn)練,得到bart糾錯模型,bart糾錯模型用于對bert分類模型確定出的錯誤的sql語句進(jìn)行改寫糾錯。本申請實施例分別利用bert算法模型和bart算法模型訓(xùn)練得到bert分類模型和bart糾錯模型,并且利用噪聲函數(shù)進(jìn)行文本重構(gòu),增加訓(xùn)練數(shù)據(jù),使得模型訓(xùn)練更加準(zhǔn)確,再把bert分類模型和bart糾錯模型結(jié)合一起進(jìn)行sql語句糾錯,提高了語句糾錯的準(zhǔn)確率。
1.一種語句糾錯模型的訓(xùn)練方法,其特征在于,包括:
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述基于歷史sql語句的sql日志數(shù)據(jù),采集樣本數(shù)據(jù),包括:
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述在所述正樣本集合中的數(shù)據(jù)中添加基于預(yù)設(shè)噪聲函數(shù)確定的噪聲,得到重構(gòu)文本數(shù)據(jù),包括:
4.一種語句糾錯方法,其特征在于,包括:
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述方法還包括:
6.根據(jù)權(quán)利要求4或5所述的方法,其特征在于,在執(zhí)行sql語句之后,所述方法還包括:
7.一種語句糾錯模型的訓(xùn)練裝置,其特征在于,包括:
8.根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述添加模塊,用于:
9.一種語句糾錯裝置,其特征在于,包括:
10.根據(jù)權(quán)利要求9所述的裝置,其特征在于,所述裝置還包括: