所屬的技術(shù)人員能夠理解,本發(fā)明的各個(gè)方面可以實(shí)現(xiàn)為系統(tǒng)、方法或程序產(chǎn)品。因此,本發(fā)明的各個(gè)方面可以具體實(shí)現(xiàn)為以下形式,即:完全的硬件實(shí)施方式、完全的軟件實(shí)施方式(包括固件、微代碼等),或硬件和軟件方面結(jié)合的實(shí)施方式,這里可以統(tǒng)稱(chēng)為“電路”、“模塊”或“系統(tǒng)”。根據(jù)本發(fā)明的這種實(shí)施方式的電子設(shè)備。電子設(shè)備僅僅是一個(gè)示例,不應(yīng)對(duì)本發(fā)明實(shí)施例的功能和使用范圍帶來(lái)任何限制。電子設(shè)備以通用計(jì)算設(shè)備的形式表現(xiàn)。電子設(shè)備的組件可以包括但不限于:上述至少一個(gè)處理器、上述至少一個(gè)儲(chǔ)存器、連接不同系統(tǒng)組件(包括儲(chǔ)存器和處理器)的總線(xiàn)。其中,所述儲(chǔ)存器存儲(chǔ)有程序代碼,所述程序代碼可以被所述處理器執(zhí)行,使得所述處理器執(zhí)行本說(shuō)明書(shū)上述“示例性方法”部分中描述的根據(jù)本發(fā)明各種示例性實(shí)施方式的步驟。儲(chǔ)存器可以包括易失性?xún)?chǔ)存器形式的可讀介質(zhì),例如隨機(jī)存取儲(chǔ)存器(ram)和/或高速緩存儲(chǔ)存器,還可以進(jìn)一步包括只讀儲(chǔ)存器(rom)。儲(chǔ)存器還可以包括具有一組(至少一個(gè))程序模塊的程序/實(shí)用工具,這樣的程序模塊包括但不限于:操作系統(tǒng)、一個(gè)或者多個(gè)應(yīng)用程序、其它程序模塊以及程序數(shù)據(jù),這些示例中的每一個(gè)或某種組合中可能包括網(wǎng)絡(luò)環(huán)境的實(shí)現(xiàn)。總線(xiàn)可以為表示幾類(lèi)總線(xiàn)結(jié)構(gòu)中的一種或多種,包括儲(chǔ)存器總線(xiàn)或者儲(chǔ)存器控制器、外圍總線(xiàn)、圖形加速端口、處理器或者使用多種總線(xiàn)結(jié)構(gòu)中的任意總線(xiàn)結(jié)構(gòu)的局域總線(xiàn)。電子設(shè)備也可以與一個(gè)或多個(gè)外部設(shè)備(例如鍵盤(pán)、指向設(shè)備、藍(lán)牙設(shè)備等)通信,還可與一個(gè)或者多個(gè)使得用戶(hù)能與該電子設(shè)備交互的設(shè)備通信,和/或與使得該電子設(shè)備能與一個(gè)或多個(gè)其它計(jì)算設(shè)備進(jìn)行通信的任何設(shè)備(例如路由器、調(diào)制解調(diào)器等等)通信。這種通信可以通過(guò)輸入/輸出(i/o)接口進(jìn)行。并且,電子設(shè)備還可以通過(guò)網(wǎng)絡(luò)適配器與一個(gè)或者多個(gè)網(wǎng)絡(luò)(例如局域網(wǎng)(lan),廣域網(wǎng)(wan)和/或公共網(wǎng)絡(luò),例如因特網(wǎng))通信。通過(guò)以上的實(shí)施方式的描述,本領(lǐng)域的技術(shù)人員易于理解,這里描述的示例實(shí)施方式可以通過(guò)軟件實(shí)現(xiàn),也可以通過(guò)軟件結(jié)合必要的硬件的方式來(lái)實(shí)現(xiàn)。因此,根據(jù)本公開(kāi)實(shí)施方式的技術(shù)方案可以以軟件產(chǎn)品的形式體現(xiàn)出來(lái),該軟件產(chǎn)品可以存儲(chǔ)在一個(gè)非易失性存儲(chǔ)介質(zhì)(可以是cd-rom,u盤(pán),移動(dòng)硬盤(pán)等)中或網(wǎng)絡(luò)上,包括若干指令以使得一臺(tái)計(jì)算設(shè)備(可以是個(gè)人計(jì)算機(jī)、服務(wù)器、終端裝置、或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行根據(jù)本公開(kāi)實(shí)施方式的方法。在本公開(kāi)的示例性實(shí)施例中,還提供了一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其上存儲(chǔ)有能夠?qū)崿F(xiàn)本說(shuō)明書(shū)上述方法的程序產(chǎn)品。在一些可能的實(shí)施方式中,本發(fā)明的各個(gè)方面還可以實(shí)現(xiàn)為一種程序產(chǎn)品的形式,其包括程序代碼,當(dāng)所述程序產(chǎn)品在終端設(shè)備上運(yùn)行時(shí),所述程序代碼用于使所述終端設(shè)備執(zhí)行本說(shuō)明書(shū)上述“示例性方法”部分中描述的根據(jù)本發(fā)明各種示例性實(shí)施方式的步驟。所述程序產(chǎn)品可以采用一個(gè)或多個(gè)可讀介質(zhì)的任意組合??勺x介質(zhì)可以是可讀信號(hào)介質(zhì)或者可讀存儲(chǔ)介質(zhì)??勺x存儲(chǔ)介質(zhì)例如可以為但不限于電、磁、光、電磁、紅外線(xiàn)、或半導(dǎo)體的系統(tǒng)、裝置或器件,或者任意以上的組合。可讀存儲(chǔ)介質(zhì)的更具體的例子(非窮舉的列表)包括:具有一個(gè)或多個(gè)導(dǎo)線(xiàn)的電連接、便攜式盤(pán)、硬盤(pán)、隨機(jī)存取存儲(chǔ)器(ram)、只讀存儲(chǔ)器(rom)、可擦式可編程只讀存儲(chǔ)器(eprom或閃存)、光纖、便攜式緊湊盤(pán)只讀存儲(chǔ)器(cd-rom)、光存儲(chǔ)器件、磁存儲(chǔ)器件、或者上述的任意合適的組合。計(jì)算機(jī)可讀信號(hào)介質(zhì)可以包括在基帶中或者作為載波一部分傳播的數(shù)據(jù)信號(hào),其中承載了可讀程序代碼。這種傳播的數(shù)據(jù)信號(hào)可以采用多種形式,包括但不限于電磁信號(hào)、光信號(hào)或上述的任意合適的組合??勺x信號(hào)介質(zhì)還可以是可讀存儲(chǔ)介質(zhì)以外的任何可讀介質(zhì),該可讀介質(zhì)可以發(fā)送、傳播或者傳輸用于由指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結(jié)合使用的程序??勺x介質(zhì)上包含的程序代碼可以用任何適當(dāng)?shù)慕橘|(zhì)傳輸,包括但不限于無(wú)線(xiàn)、有線(xiàn)、光纜、rf等等,或者上述的任意合適的組合。可以以一種或多種程序設(shè)計(jì)語(yǔ)言的任意組合來(lái)編寫(xiě)用于執(zhí)行本發(fā)明操作的程序代碼,所述程序設(shè)計(jì)語(yǔ)言包括面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言—諸如java、c++等,還包括常規(guī)的過(guò)程式程序設(shè)計(jì)語(yǔ)言—諸如“c”語(yǔ)言或類(lèi)似的程序設(shè)計(jì)語(yǔ)言。程序代碼可以完全地在用戶(hù)計(jì)算設(shè)備上執(zhí)行、部分地在用戶(hù)設(shè)備上執(zhí)行、作為一個(gè)獨(dú)立的軟件包執(zhí)行、部分在用戶(hù)計(jì)算設(shè)備上部分在遠(yuǎn)程計(jì)算設(shè)備上執(zhí)行、或者完全在遠(yuǎn)程計(jì)算設(shè)備或服務(wù)器上執(zhí)行。在涉及遠(yuǎn)程計(jì)算設(shè)備的情形中,遠(yuǎn)程計(jì)算設(shè)備可以通過(guò)任意種類(lèi)的網(wǎng)絡(luò),包括局域網(wǎng)(lan)或廣域網(wǎng)(wan),連接到用戶(hù)計(jì)算設(shè)備,或者,可以連接到外部計(jì)算設(shè)備(例如利用因特網(wǎng)服務(wù)提供商來(lái)通過(guò)因特網(wǎng)連接)。此外,上述附圖僅是根據(jù)本發(fā)明示例性實(shí)施例的方法所包括的處理的示意性說(shuō)明,而不是限制目的。易于理解,上述附圖所示的處理并不表明或限制這些處理的時(shí)間順序。另外,也易于理解,這些處理可以是例如在多個(gè)模塊中同步或異步執(zhí)行的。應(yīng)當(dāng)注意,盡管在上文詳細(xì)描述中提及了用于動(dòng)作執(zhí)行的設(shè)備的若干模塊或者單元,但是這種劃分并非強(qiáng)制性的。實(shí)際上,根據(jù)本公開(kāi)的實(shí)施方式,上文描述的兩個(gè)或更多模塊或者單元的特征和功能可以在一個(gè)模塊或者單元中具體化。反之,上文描述的一個(gè)模塊或者單元的特征和功能可以進(jìn)一步劃分為由多個(gè)模塊或者單元來(lái)具體化。以上所述,僅為本發(fā)明的具體實(shí)施方式,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉本的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到的變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)以權(quán)利要求的保護(hù)范圍為準(zhǔn)。
背景技術(shù):
1、目前通過(guò)語(yǔ)言轉(zhuǎn)換模型實(shí)現(xiàn)自然語(yǔ)言與sql語(yǔ)言的轉(zhuǎn)換,傳統(tǒng)的語(yǔ)言轉(zhuǎn)換模型先將自然語(yǔ)言進(jìn)行分析拆解,再根據(jù)傳統(tǒng)的語(yǔ)言轉(zhuǎn)換規(guī)則,對(duì)拆解得到的詞組進(jìn)行sql語(yǔ)言轉(zhuǎn)換,即對(duì)詞組直接進(jìn)行語(yǔ)義轉(zhuǎn)換,當(dāng)需要轉(zhuǎn)換的自然語(yǔ)言語(yǔ)句的語(yǔ)義過(guò)低時(shí),經(jīng)過(guò)sql語(yǔ)言轉(zhuǎn)換得到的sql語(yǔ)言語(yǔ)句可能無(wú)法準(zhǔn)確的表達(dá)轉(zhuǎn)換前的自然語(yǔ)言語(yǔ)句的本意,因此,得到的sql語(yǔ)言語(yǔ)句可能存在表述不清的情況,對(duì)sql語(yǔ)言語(yǔ)句的后續(xù)應(yīng)用造成影響。
技術(shù)實(shí)現(xiàn)思路
1、針對(duì)上述技術(shù)問(wèn)題,本發(fā)明采用的技術(shù)方案為:
2、根據(jù)本技術(shù)的一個(gè)方面,提供一種基于語(yǔ)義分析的語(yǔ)言模型訓(xùn)練方法,包括如下步驟:
3、步驟s100、獲取若干歷史自然語(yǔ)句;
4、步驟s200、對(duì)每一歷史自然語(yǔ)句進(jìn)行語(yǔ)義分析,以得到每一歷史自然語(yǔ)句中包括的若干歷史自然分詞;
5、步驟s300、對(duì)每一歷史自然分詞進(jìn)行sql語(yǔ)言轉(zhuǎn)換,以得到每一歷史自然分詞對(duì)應(yīng)的歷史初始sql語(yǔ)言分詞;
6、步驟s400、根據(jù)每一歷史初始sql語(yǔ)言分詞的分詞字符長(zhǎng)度和分詞信息熵,得到每一歷史自然語(yǔ)句對(duì)應(yīng)的語(yǔ)句字符長(zhǎng)度和語(yǔ)句信息熵;
7、步驟s500、若任一歷史自然語(yǔ)句對(duì)應(yīng)的語(yǔ)句字符長(zhǎng)度和語(yǔ)句信息熵均滿(mǎn)足預(yù)設(shè)的改寫(xiě)條件,則將該歷史自然語(yǔ)句確定為目標(biāo)歷史自然語(yǔ)句;
8、步驟s600、根據(jù)預(yù)設(shè)的語(yǔ)句改寫(xiě)規(guī)則,對(duì)每一目標(biāo)歷史自然語(yǔ)句對(duì)應(yīng)的若干歷史初始sql語(yǔ)言分詞進(jìn)行改寫(xiě),以得到每一目標(biāo)歷史自然語(yǔ)句對(duì)應(yīng)的若干歷史改寫(xiě)sql語(yǔ)言分詞;
9、步驟s700、將每一目標(biāo)歷史自然語(yǔ)句對(duì)應(yīng)的若干歷史初始sql語(yǔ)言分詞和若干歷史改寫(xiě)sql語(yǔ)言分詞分別輸入至預(yù)設(shè)的初始語(yǔ)言模型中進(jìn)行訓(xùn)練,以得到目標(biāo)語(yǔ)言模型。
10、在本技術(shù)的一種示例性實(shí)施例中,步驟s200包括:
11、步驟s210、對(duì)每一歷史自然語(yǔ)句進(jìn)行語(yǔ)義分析,得到每一歷史自然語(yǔ)句中包括的若干歷史自然分詞,以確定歷史自然分詞列表集f=(f1,f2,...,fr,...,fs);fr=(fr1,fr2,...,frt,...,fru(r));其中,r=1,2,...,s;s為歷史自然語(yǔ)句的數(shù)量;fr為第r個(gè)歷史自然語(yǔ)句對(duì)應(yīng)的歷史自然分詞列表;t=1,2,...,u(r);u(r)為第r個(gè)歷史自然語(yǔ)句中包括的歷史自然分詞的數(shù)量;frt為第r個(gè)歷史自然語(yǔ)句中包括的第t個(gè)歷史自然分詞。
12、在本技術(shù)的一種示例性實(shí)施例中,步驟s300包括:
13、步驟s310、遍歷歷史自然分詞列表集f中的每一歷史自然分詞,對(duì)frt進(jìn)行sql語(yǔ)言轉(zhuǎn)換,以得到frt對(duì)應(yīng)的歷史初始sql語(yǔ)言分詞grt。
14、在本技術(shù)的一種示例性實(shí)施例中,步驟s400包括:
15、步驟s410、獲取第r個(gè)歷史自然語(yǔ)句對(duì)應(yīng)的每一歷史初始sql語(yǔ)言分詞的分詞字符長(zhǎng)度,得到第r個(gè)歷史自然語(yǔ)句對(duì)應(yīng)的分詞字符長(zhǎng)度列表hr=(hr1,hr2,...,hrt,...,hru(r));其中,hrt為grt的分詞字符長(zhǎng)度;
16、步驟s420、確定第r個(gè)歷史自然語(yǔ)句對(duì)應(yīng)的語(yǔ)句字符長(zhǎng)度ir=(∑u(r)t=1hrt)/u(r);
17、步驟s430、獲取第r個(gè)歷史自然語(yǔ)句對(duì)應(yīng)的每一歷史初始sql語(yǔ)言分詞的分詞信息熵,得到第r個(gè)歷史自然語(yǔ)句對(duì)應(yīng)的分詞信息熵列表jr=(jr1,jr2,...,jrt,...,jru(r));其中,jrt為grt的分詞信息熵;
18、步驟s440、確定第r個(gè)歷史自然語(yǔ)句對(duì)應(yīng)的語(yǔ)句信息熵rr=(∑u(r)t=1jrt)/u(r)。
19、在本技術(shù)的一種示例性實(shí)施例中,步驟s500包括:
20、步驟s510、遍歷每一歷史自然語(yǔ)句對(duì)應(yīng)的語(yǔ)句信息熵,若rr≤r0,則執(zhí)行步驟s520;其中,r0為預(yù)設(shè)的信息熵閾值;
21、步驟s520、若ir≤i0,則將第r個(gè)歷史自然語(yǔ)句確定為目標(biāo)歷史自然語(yǔ)句;其中,i0為預(yù)設(shè)的字符長(zhǎng)度閾值。
22、在本技術(shù)的一種示例性實(shí)施例中,步驟s600包括:
23、步驟s610、獲取任一目標(biāo)歷史自然語(yǔ)句對(duì)應(yīng)的每一歷史初始sql語(yǔ)言分詞中包括的改寫(xiě)標(biāo)識(shí);
24、步驟s620、根據(jù)每一改寫(xiě)標(biāo)識(shí)對(duì)應(yīng)的預(yù)設(shè)的語(yǔ)句改寫(xiě)規(guī)則,對(duì)該改寫(xiě)標(biāo)識(shí)對(duì)應(yīng)的歷史初始sql語(yǔ)言分詞進(jìn)行改寫(xiě),以得到該歷史初始sql語(yǔ)言分詞對(duì)應(yīng)的歷史改寫(xiě)sql語(yǔ)言分詞;任一歷史改寫(xiě)sql語(yǔ)言分詞的信息熵大于該歷史改寫(xiě)sql語(yǔ)言分詞對(duì)應(yīng)的歷史初始sql語(yǔ)言分詞的信息熵。
25、在本技術(shù)的一種示例性實(shí)施例中,步驟s510還包括:
26、步驟s511、若rr>r0,且ir>i0,則將第r個(gè)歷史自然語(yǔ)句確定為關(guān)鍵歷史自然語(yǔ)句;
27、步驟s512、根據(jù)預(yù)設(shè)的字符簡(jiǎn)寫(xiě)規(guī)則,對(duì)關(guān)鍵歷史自然語(yǔ)句對(duì)應(yīng)的每一歷史初始sql語(yǔ)言分詞進(jìn)行簡(jiǎn)寫(xiě),以得到關(guān)鍵歷史自然語(yǔ)句對(duì)應(yīng)的若干歷史改寫(xiě)sql語(yǔ)言分詞;任一歷史改寫(xiě)sql語(yǔ)言分詞的字符長(zhǎng)度小于該歷史改寫(xiě)sql語(yǔ)言分詞對(duì)應(yīng)的歷史初始sql語(yǔ)言分詞的字符長(zhǎng)度;
28、步驟s513、若關(guān)鍵歷史自然語(yǔ)句對(duì)應(yīng)的每一歷史改寫(xiě)sql語(yǔ)言分詞的信息熵與該歷史改寫(xiě)sql語(yǔ)言分詞對(duì)應(yīng)的歷史初始sql語(yǔ)言分詞的信息熵的差值小于預(yù)設(shè)的信息熵差閾值,則將該關(guān)鍵歷史自然語(yǔ)句確定為目標(biāo)歷史自然語(yǔ)句,并執(zhí)行步驟s700。
29、在本技術(shù)的一種示例性實(shí)施例中,步驟s520還包括:
30、步驟s521、若ir>i0,且max(hr)對(duì)應(yīng)的歷史初始sql語(yǔ)言分詞的分詞信息熵小于r0,則將max(hr)對(duì)應(yīng)的歷史初始sql語(yǔ)言分詞從第r個(gè)歷史自然語(yǔ)句中刪除,并執(zhí)行步驟s400。
31、根據(jù)本技術(shù)的一個(gè)方面,提供一種非瞬時(shí)性計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),所述存儲(chǔ)介質(zhì)中存儲(chǔ)有至少一條指令或至少一段程序,所述至少一條指令或所述至少一段程序由處理器加載并執(zhí)行以實(shí)現(xiàn)前述的基于語(yǔ)義分析的語(yǔ)言模型訓(xùn)練方法。
32、根據(jù)本技術(shù)的一個(gè)方面,提供一種電子設(shè)備,包括處理器和前述的非瞬時(shí)性計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)。
33、本發(fā)明至少具有以下有益效果:
34、本發(fā)明的基于語(yǔ)義分析的語(yǔ)言模型訓(xùn)練方法,通過(guò)對(duì)每一歷史自然語(yǔ)句進(jìn)行語(yǔ)義分析,得到每一歷史自然語(yǔ)句中包括的若干歷史自然分詞,再對(duì)每一歷史自然分詞進(jìn)行sql語(yǔ)言轉(zhuǎn)換,以得到每一歷史自然分詞對(duì)應(yīng)的歷史初始sql語(yǔ)言分詞,并根據(jù)每一歷史初始sql語(yǔ)言分詞的分詞字符長(zhǎng)度和分詞信息熵,得到每一歷史自然語(yǔ)句對(duì)應(yīng)的語(yǔ)句字符長(zhǎng)度和語(yǔ)句信息熵,若任一歷史自然語(yǔ)句對(duì)應(yīng)的語(yǔ)句字符長(zhǎng)度和語(yǔ)句信息熵均滿(mǎn)足預(yù)設(shè)的改寫(xiě)條件,則將該歷史自然語(yǔ)句確定為目標(biāo)歷史自然語(yǔ)句,根據(jù)預(yù)設(shè)的語(yǔ)句改寫(xiě)規(guī)則,對(duì)每一目標(biāo)歷史自然語(yǔ)句對(duì)應(yīng)的若干歷史初始sql語(yǔ)言分詞進(jìn)行改寫(xiě),以得到每一目標(biāo)歷史自然語(yǔ)句對(duì)應(yīng)的若干歷史改寫(xiě)sql語(yǔ)言分詞,將每一目標(biāo)歷史自然語(yǔ)句對(duì)應(yīng)的若干歷史初始sql語(yǔ)言分詞和若干歷史改寫(xiě)sql語(yǔ)言分詞分別輸入至預(yù)設(shè)的初始語(yǔ)言模型中進(jìn)行訓(xùn)練,以得到目標(biāo)語(yǔ)言模型。通過(guò)對(duì)符合改寫(xiě)條件的目標(biāo)歷史自然語(yǔ)句對(duì)應(yīng)的若干歷史初始sql語(yǔ)言分詞進(jìn)行改寫(xiě),以使得到的歷史改寫(xiě)sql語(yǔ)言分詞的語(yǔ)義比改寫(xiě)前的歷史初始sql語(yǔ)言分詞的語(yǔ)義更豐富,便于sql語(yǔ)言的轉(zhuǎn)換。