• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      面向工業(yè)生產(chǎn)的中文Text-to-SQL模型

      2022-11-08 12:42:10呂劍清王先兵陳剛張華王明剛
      計算機應(yīng)用 2022年10期
      關(guān)鍵詞:數(shù)據(jù)表語句標(biāo)簽

      呂劍清,王先兵*,陳剛,張華,王明剛

      (1.空天信息安全與可信計算教育部重點實驗室(武漢大學(xué)),武漢 430072;2.武漢大學(xué) 計算機學(xué)院,武漢 430072;3.遵義鋁業(yè)股份有限公司,貴州 遵義 563100)

      0 引言

      自然語言查詢轉(zhuǎn)SQL(Structured Query Language)語句(Text-to-SQL)任務(wù)就是將自然語言描述轉(zhuǎn)化成對應(yīng)的SQL查詢語句。隨著工業(yè)自動化水平和信息化水平不斷發(fā)展,工業(yè)生產(chǎn)領(lǐng)域早已積累了大量的生產(chǎn)數(shù)據(jù)。但工業(yè)領(lǐng)域與傳統(tǒng)商業(yè)領(lǐng)域不同,工業(yè)領(lǐng)域產(chǎn)生的數(shù)據(jù)可解釋性差且比較分散,這就使得目前工業(yè)生產(chǎn)領(lǐng)域所產(chǎn)生的大部分?jǐn)?shù)據(jù)還停留在數(shù)據(jù)倉庫層面,僅僅只是將歷史數(shù)據(jù)保存起來,并沒有有效發(fā)揮這些數(shù)據(jù)的價值。利用Text-to-SQL 模型,工廠管理人員不再需要去了解具體數(shù)據(jù)庫配置信息和數(shù)據(jù)表信息等底層存儲細節(jié),僅僅需要通過自然語言的交互方式便可獲取想要的數(shù)據(jù)。

      Text-to-SQL 任務(wù)的歷史悠久,自20 世紀(jì)70 年代以來,自然語言數(shù)據(jù)庫接口任務(wù)就開始受到人們關(guān)注[1-5],受限于當(dāng)時的技術(shù)發(fā)展,這些方法無法適用于復(fù)雜多變的自然語言查詢場景,只能應(yīng)用在簡單的單表查詢?nèi)蝿?wù)中。直到近幾年,隨著語義分析高級神經(jīng)方法的發(fā)展以及大規(guī)模、跨領(lǐng)域的Text-to-SQL 數(shù)據(jù)集WikiSQL[6]和Spider[7]的發(fā)布,它才漸漸回歸人們的視線。

      目前Text-to-SQL 任務(wù)主要分為單表查詢和多表查詢兩種場景。單表查詢由于其事先明確了SQL 查詢所對應(yīng)的表格以及自然語言查詢問句對應(yīng)的SQL 語句結(jié)構(gòu),早在2019年英文單表查詢數(shù)據(jù)集WikiSQL 和中文單表查詢數(shù)據(jù)集TableQA 上最優(yōu)模型[8-9]的準(zhǔn)確率就已經(jīng)達到了普通人類水平,因此當(dāng)前研究人員的目標(biāo)在于多表查詢的Text-to-SQL 任務(wù)。在真實的查詢場景中,用戶查詢的數(shù)據(jù)往往包含了數(shù)據(jù)庫中的多個表,SQL 語句的復(fù)雜程度也大大提升,因此Yu等[7]發(fā)布了大規(guī)模、跨領(lǐng)域的英文多表查詢數(shù)據(jù)集Spider,研究人員提出了很多新穎的處理策略和模型使得Spider 數(shù)據(jù)集任務(wù)的準(zhǔn)確率得到了顯著提升[10-15]。相較之下中文多表Text-to-SQL 任務(wù)的研究相對較少,雖然目前已經(jīng)發(fā)布了中文多表查詢數(shù)據(jù)集Cspider[16]和DuSQL[17],但當(dāng)前Text-to-SQL任務(wù)相關(guān)的研究都聚焦于英文數(shù)據(jù)集,中文多表查詢?nèi)蝿?wù)在推出數(shù)據(jù)集后仍有待研究。本文借鑒英文的模型和處理方法并結(jié)合實際查詢需求對模型進行微調(diào)后,構(gòu)建了新的模型用于處理中文工業(yè)數(shù)據(jù)集查詢?nèi)蝿?wù)。

      本文使用基于鋁冶煉行業(yè)的工業(yè)生產(chǎn)數(shù)據(jù)集,在對英文模型進行遷移的過程中,主要存在以下幾點問題:

      1)自然語言查詢的描述與數(shù)據(jù)庫中表名和列名等數(shù)據(jù)庫對象信息的描述不一致,即數(shù)據(jù)庫中表名和列名一般為縮略語等簡略化表達形式,例如自然語言問句中的“出鋁量”,在數(shù)據(jù)庫中的對應(yīng)列名描述為“AlCnt”。

      2)SQL 語句的列名未明顯出現(xiàn)在問句中,而是包含在該列所存儲的數(shù)據(jù)中,很常見的一類就是記錄時間信息的列。

      3)目前英文模型在識別自然語言問句的where 子句中列名對應(yīng)的value 值時使用的方法難以應(yīng)用于大型的工業(yè)數(shù)據(jù)表。文獻[18]通過基于變換器的雙向編碼器表示技術(shù)(Bidirectional Encoder Representation from Transformers,

      BERT)計算出自然語言問句與數(shù)據(jù)庫表中該列存儲的所有數(shù)據(jù)的注意力分?jǐn)?shù),這種方法適用于Spider 這種單表數(shù)據(jù)量小的數(shù)據(jù)集,但實際工業(yè)數(shù)據(jù)集中大部分?jǐn)?shù)據(jù)表都存儲上萬條數(shù)據(jù),所以實際工業(yè)數(shù)據(jù)集的value 識別需要尋求其他解決方法。

      英文模型識別自然語言問句關(guān)鍵信息時所用的是指針網(wǎng)絡(luò)(pointer network)[19],pointer network 最后的輸出結(jié)果會指向輸入序列,即輸出只能從輸入序列中選擇,導(dǎo)致最終英文模型遷移后會產(chǎn)生前兩類問題。根據(jù)文獻[15],Spider 任務(wù)中50%的錯誤都是由這兩類問題導(dǎo)致。針對這兩個問題,本文模型選擇在數(shù)據(jù)庫模式標(biāo)記的過程中添加元數(shù)據(jù)。第一類問題本文選擇將工廠元數(shù)據(jù)信息添加到具體的數(shù)據(jù)使用中,通過元數(shù)據(jù)對自然語言中的描述進行規(guī)范化。第二類問題主要分為兩種情況:1)時間短語的識別,90%以上的工業(yè)報表都包含存儲時間信息的列,同時由于時間短語的表達形式多種多樣,本文使用BERT+雙向長短期記憶(Bidirectional Long Short-Term Memory,BiLSTM)+條件隨機場(Condition Random Field,CRF)模型提取自然語言問句中的時間實體。2)時間短語以外的情況,本文將自然語言中能暗含對應(yīng)列名的序列稱為標(biāo)簽項。例如“武漢”這個標(biāo)簽項暗含了它對應(yīng)的列名“city”,即生成的SQL 語句中會存在“city=‘武漢’”。這種情況在工業(yè)查詢中也經(jīng)常存在,例如氧化鋁生產(chǎn)中“鍋爐煤耗”這個標(biāo)簽項暗含了對應(yīng)的列名“tagname”。但是不同于時間短語,這種標(biāo)簽項的數(shù)量是有限的,數(shù)據(jù)倉庫設(shè)計等工業(yè)元數(shù)據(jù)中會記錄表格中的標(biāo)簽項信息,本文通過N元語言(N-Gram)模型即可標(biāo)記出自然語言中的標(biāo)簽項和對應(yīng)的列實體。

      針對value 問題,本文發(fā)現(xiàn)中文自然語言查詢中value 經(jīng)常出現(xiàn)在對應(yīng)column 相近的位置,根據(jù)這一特性本文使用基于相對位置的注意力機制來識別問句中的value。針對實際工業(yè)數(shù)據(jù)集中SQL 語句的結(jié)構(gòu)問題,本文從SQLNet[20]所用到的sketch 中得到靈感,同時不同于SQLNet 僅僅只有一種標(biāo)準(zhǔn)形式,在詳細分析工業(yè)自然語言問句的特征后將問句進行分類,每種類別設(shè)置不同的標(biāo)準(zhǔn)形式,這幾個類別足以涵括絕大部分查詢場景。

      本文主要研究中文Text-to-SQL 的工業(yè)應(yīng)用,直接將英文的主流模型遷移到中文工業(yè)Text-to-SQL 任務(wù)后得到的SQL語句精確匹配率都不高。本文在分析錯誤原因后發(fā)現(xiàn)當(dāng)前主流模型難以處理列名描述不一致和列名未明顯出現(xiàn)在問句中等問題,然后針對這些問題構(gòu)建了新的模型。本文模型在關(guān)鍵信息標(biāo)記過程中添加元數(shù)據(jù)信息解決以上兩個問題,然后結(jié)合中文問句中value 值的特性,改用相對位置的注意力機制識別where 子句的value值,最后在處理SQL 語句結(jié)構(gòu)時結(jié)合了工業(yè)自然語言問句自身的特點,對問句進行分類后通過槽填充的方式提高SQL 語句結(jié)構(gòu)預(yù)測的準(zhǔn)確率。

      1 數(shù)據(jù)集

      由于缺乏工業(yè)領(lǐng)域的標(biāo)準(zhǔn)數(shù)據(jù)集,本文根據(jù)工廠業(yè)務(wù)人員的實際需求通過人工擴充的方式獲取用于訓(xùn)練和測試的Text-to-SQL 數(shù)據(jù)集,這些問句囊括絕大部分的查詢場景。本次實驗的自然語言問句共2 836條,測試集問句350 條。為了驗證最終的精確匹配率,本文為測試集中的350 條問句設(shè)計了準(zhǔn)確的SQL 語句,即Gold SQL。數(shù)據(jù)庫方面使用部分氧化鋁和電解鋁的數(shù)據(jù)表,共包含數(shù)據(jù)表格27 個。

      本文總結(jié)了工業(yè)數(shù)據(jù)集和其他Text-to-SQL 數(shù)據(jù)集的統(tǒng)計數(shù)據(jù),結(jié)果如表1所示。其 中:ATIS[21]、GeoQuery[22]和Spider 均為英文數(shù)據(jù)集;Cspider 和DuSQL 均為中文數(shù)據(jù)集且Cspider 是對Spider 進行中文翻譯后得到的。表1中,Q 表示自然語言查詢的數(shù)量,DB 表示該數(shù)據(jù)集中包含的數(shù)據(jù)庫數(shù)量,Domain 代表數(shù)據(jù)集涉及的領(lǐng)域數(shù)量,Table/DB 表示平均每個數(shù)據(jù)庫中數(shù)據(jù)表的數(shù)量。

      表1 Text-to-SQL數(shù)據(jù)集的比較Tab.1 Comparison of Text-to-SQL datasets

      圖1 為Spider 數(shù)據(jù)集和本文數(shù)據(jù)集中數(shù)據(jù)庫表格的樣例,其中數(shù)據(jù)表mill 來源于Spider 數(shù)據(jù)集,數(shù)據(jù)表fact_pot_dailymeasure 來源于本文構(gòu)建的鋁冶煉數(shù)據(jù)集。可以看出工業(yè)數(shù)據(jù)集中列名和表名的描述都不會與自然語言描述一致,例如“PotNo”表示電解槽槽號。對比兩張數(shù)據(jù)表可以看出Spider、CSpider 和DuSQL 三個數(shù)據(jù)集中存儲的數(shù)據(jù)都屬于主數(shù)據(jù),在企業(yè)中是用來定義業(yè)務(wù)對象的、具有持續(xù)性和穩(wěn)定性的數(shù)據(jù),而工業(yè)生產(chǎn)中常用的是會隨著時間遷移數(shù)據(jù)量越來越多的業(yè)務(wù)數(shù)據(jù)。

      圖2 中給出了一些鋁冶煉自然語言查詢的示例,可以看出工業(yè)需求的自然語言查詢更加注重業(yè)務(wù)數(shù)據(jù)而不是實體之間的關(guān)系。業(yè)務(wù)數(shù)據(jù)具有鮮明的動態(tài)時空特性,使得90%以上的工業(yè)自然語言查詢問句中都包含時間實體,因此模型遷移過程中必須要對時間實體進行準(zhǔn)確識別。相較于數(shù)據(jù)含義簡單明了的Spider 數(shù)據(jù)集,本文的鋁冶煉數(shù)據(jù)集是面向行業(yè)的數(shù)據(jù)集,符合實際工業(yè)應(yīng)用中SQL 查詢的分布。

      2 本文模型

      2.1 時間實體識別

      本文模型使用命名實體識別(Named Entity Recognition,NER)來提取自然語言問句中的時間表達式,NER 旨在定位文本中的命名實體并分類為預(yù)先定義的類別,例如文獻[23]中用來識別醫(yī)學(xué)時間短語。時間實體識別板塊如圖3 所示,識別文本中的時間實體采用BERT+BiLSTM+CRF 模型。首先,使用Google BERT 的Chinese_L-12_H-768_A-12 模型作為特征表示層,相對于只輸出靜態(tài)詞向量的Word2vec,BERT采用先進的Transformer 模型,使得每個詞都可以捕獲到文本雙向關(guān)系;然后,將特征表示層的輸出加入BiLSTM 中學(xué)習(xí)單詞的上下文語義表示;最后經(jīng)過CRF 對BiLSTM 層的輸出進行優(yōu)化,充分考慮序列前后的標(biāo)簽信息以獲取全局最優(yōu)的標(biāo)簽輸出。

      2.2 表名列名識別

      Schema Link[11]的目標(biāo)就是實現(xiàn)問句中表述的內(nèi)容與數(shù)據(jù)庫的表名和列名等數(shù)據(jù)庫模式信息的映射,然后將得到的列名和表名的標(biāo)記信息同自然語言問句和數(shù)據(jù)表結(jié)構(gòu)信息一同作為神經(jīng)網(wǎng)絡(luò)的輸入,以提高模型的準(zhǔn)確率。

      首先針對自然語言問句于數(shù)據(jù)表的表名和列名描述不一致的問題,通過在Schema Link 的過程中引入包含技術(shù)元數(shù)據(jù)的數(shù)據(jù)字典實現(xiàn)列名的映射,之后根據(jù)標(biāo)記的列名來標(biāo)記問句中涉及的表名。對于column 未明確出現(xiàn)在問句中的問題,這類問題出現(xiàn)的原因在于某些標(biāo)簽項能隱性說明它所對應(yīng)的column,除了2.1 節(jié)提到的時間序列因其本身表述方式多種多樣的特點需要單獨處理外,其他情況可以根據(jù)數(shù)據(jù)字典、數(shù)據(jù)倉庫設(shè)計等元數(shù)據(jù)完成映射。圖4 是鋁冶煉數(shù)據(jù)集的一個例子,自然語言問句為“氧化鋁廠2020 年9 月3 號葉濾精液中苛性化氧化鋁的化驗量?”,其中“葉濾精液”是列名為tagname 的標(biāo)簽項。在沒有其他外部信息輸入的情況下當(dāng)前主流模型難以直接通過“葉濾精液”這個標(biāo)簽項找到對應(yīng)的column,但工廠元數(shù)據(jù)中會存儲這些有限的標(biāo)簽項信息,因此“葉濾精液”這類標(biāo)簽項可以通過技術(shù)元數(shù)據(jù)的數(shù)據(jù)倉庫設(shè)計構(gòu)建標(biāo)簽項與其對應(yīng)列名之間的映射關(guān)系來找到對應(yīng)的列名。

      如圖3 所示,本文使用N-Gram 模型實現(xiàn)Schema Link。N-Gram 模型主要用于評估一個句子是否合理和評估兩個字符串之間的差異,后者可以用于進行模式匹配(又稱字符串查找)。首先枚舉出問句中1 到6 所有的字符串組合(gram),然后按照長度降序的方式與元數(shù)據(jù)中的數(shù)據(jù)字典進行匹配,如果一個gram 被認(rèn)定為列名,則移除與之重疊的全部gram。通過以上方法識別問句中所有的列名實體,然后通過列名可以確認(rèn)對應(yīng)的表名。特別地,氧化鋁的化驗表中存在不同表中有相同的列項的情況,由于不同的表存儲的是不同標(biāo)簽項上的化驗信息,因此通過元數(shù)據(jù)和識別出來的標(biāo)簽項確定對應(yīng)的表名。

      2.3 value值識別

      針對where 子句中value 的識別,目前的方法大多基于數(shù)據(jù)庫內(nèi)容(database content)[18],這種方法在Spider 這類每個數(shù)據(jù)表內(nèi)容不夠多的數(shù)據(jù)集上有良好的效果,但是實際工業(yè)應(yīng)用中每張數(shù)據(jù)表的數(shù)據(jù)量遠比Spider 上多,所以在實際應(yīng)用中需要考慮新的處理方法。本研究著眼于實際的工業(yè)查詢?nèi)蝿?wù),使用了一種基于相對位置的注意力[24]模型來實現(xiàn)value 值的識別。

      自注意力(self-attention)[25]模型的結(jié)構(gòu)如圖5 所示。對于self-attention,Q(Query)、K(Key)、V(value)3 個矩陣均來自同一輸入。首先計算Q與K之間的點乘;然后為了防止其結(jié)果過大,除以一個尺度標(biāo)度再通過Softmax 函數(shù)將其結(jié)果歸一化為一個概率分布;最后再乘以矩陣V就得到權(quán)重求和向量,這個向量可以很好地考慮問句的上下文信息。

      相對位置的模型在self-attention 的基礎(chǔ)上,引入了兩個與相對位置相關(guān)的向量,兩個向量采用da維向量的表示形式。具體公式如下:

      其中權(quán)重系數(shù)aij通過Softmax 計算得到:

      兼容函數(shù)eij計算方法使用Scaled dot product:

      zi是每個輸入序列xi通過加權(quán)求和得到的輸出元素,也就是說,如果xi是attention 的目標(biāo)詞,那么在計算xj對xi的注意力特征時,需要額外考慮xj對xi的兩個與位置相關(guān)的向量。

      本文將最大相對位置裁剪為最大絕對值k,即假設(shè)序列中兩個元素的距離超過預(yù)先設(shè)定的k,則判定兩元素之間的位置信息就沒有意義,裁剪最大距離還能使得模型可以推廣到訓(xùn)練期間沒見到過的序列長度。本文設(shè)置k=4,并且最終只需關(guān)注與column 最相關(guān)的即為對應(yīng)的value。

      2.4 自然語言問句分類

      在對鋁生產(chǎn)行業(yè)進行實際考察后,總結(jié)了實際工業(yè)需求的自然語言輸入問題的四個特點:

      1)查詢的目標(biāo)更多注重于業(yè)務(wù)數(shù)據(jù)而不是實體之間的關(guān)系或知識,即物品的產(chǎn)量、材料的消耗、機器的運行狀態(tài)以及產(chǎn)品的質(zhì)量檢測結(jié)果等。

      2)查詢的數(shù)據(jù)經(jīng)常包含聚合操作,例如最值問題和平均值問題。

      3)查詢問句中的實體描述一般都較為規(guī)范,即所查詢的屬性一定是數(shù)據(jù)庫中原本就有的屬性。

      4)工業(yè)應(yīng)用中查詢的數(shù)據(jù)很大部分屬于生產(chǎn)業(yè)務(wù)數(shù)據(jù),所以問句中一般都會包含有時間信息,如“昨天”“2021 年1月1 日”。由于時間信息的表達方式多種多樣,但是在數(shù)據(jù)庫中時間字段的存儲格式均是統(tǒng)一的,因此需要將問句中的時間段和時間點都進行規(guī)范化。

      根據(jù)以上特點將自然語言問句分為以下幾個類別:

      1)一般查詢類問題。

      該類問題主要是查詢某個時間或時間段的一個或多個屬性值。例如“2021 年3 月20 日槽號為2 835 的電解槽的出鋁量,鋁水平?”??梢钥吹竭@類問題的查詢可以分為槽號、出鋁量、鋁水平三個關(guān)鍵主體,其中有確定value 值的2 835判定為查詢條件,問句中找不到對應(yīng)value 的判定為查詢目標(biāo),所以查詢的主體表就應(yīng)該是包含有電解槽每日出鋁信息的數(shù)據(jù)表。

      2)最值問題。

      該類問題主要是以最值為查詢條件得到一個或多個查詢目標(biāo)。例如“2020 年9 月23 號出鋁量最大的電解槽槽號?”。

      3)時間段最值問題。

      該類問題主要是查詢目標(biāo)在一段時間內(nèi)的最值。例如“氧化鋁廠2021 年1 月1 號到1 月30 號最大實產(chǎn)氧化鋁量?”。

      4)均值問題。

      該類問題主要是查詢某個時間或時間段的屬性均值。例如“今天電解一區(qū)電解槽的平均工作電壓?”“氧化鋁廠1月15 號到2 月15 號平均每天的鍋爐煤耗?”。

      分類方法使用BERT 中文預(yù)訓(xùn)練模型,對BERT 的最后一層進行微調(diào)后即可用于本文的分類任務(wù)中。重載其中的DataProcessor 類并在主函數(shù)中添加該類,對輸入數(shù)據(jù)進行預(yù)處理后即可用于訓(xùn)練和測試,BERT 的標(biāo)志位CLS 接Softmax用于輸出分類結(jié)果。

      3 實驗與結(jié)果分析

      3.1 評價標(biāo)準(zhǔn)

      按照文獻[7]的標(biāo)準(zhǔn),實驗通過精確匹配率對模型進行評估,即自然語言問句生成的SQL 語句與事先準(zhǔn)備的Gold SQL 完全一致的百分比,其中各子句中列名出現(xiàn)的順序不影響準(zhǔn)確率的計算。除了測試模型在工業(yè)數(shù)據(jù)集上的表現(xiàn)外,本研究還評估當(dāng)前主流模型在不添加元數(shù)據(jù)信息的情形下在工業(yè)數(shù)據(jù)集上的表現(xiàn)。由于英文模型不涉及value 的識別,所以評判標(biāo)準(zhǔn)是不考慮where 子句中value 值的SQL 語句精確匹配率。

      精確匹配率的計算公式如下:

      其中:N表示自然語言問句的數(shù)量;PSQL、GSQL分別代表預(yù)測的SQL 語句、標(biāo)準(zhǔn)的SQL 語句;Accqm代表查詢匹配的準(zhǔn)確率。

      3.2 對比實驗

      本文把測試集的350 條問句進行人工英文翻譯后,再將列名進行人工泛化,使得問句中的列與數(shù)據(jù)庫中的表示一致,最后在英文工業(yè)測試集上使用目前Spider 數(shù)據(jù)集各階段的主流模型進行對比實驗。由于Spider 的實驗結(jié)果不考慮value,因此對比實驗也不考慮value,時間實體也可以不進行處理。實驗結(jié)果如表2 所示。

      表2 不同模型的精確匹配率 單位:%Tab.2 Exact match accuracies of different models unit:%

      其中SyntaxSQLNet[10]、IRNet[11]和RAT-SQL[15]為Spider數(shù)據(jù)集任務(wù)各階段表現(xiàn)最好的基礎(chǔ)模型。從表2 中可以看出,Spider 數(shù)據(jù)集任務(wù)的主流模型在遷移到實際的工業(yè)數(shù)據(jù)集時準(zhǔn)確率都偏低。根據(jù)文獻[7]中所述,Spider 是面向多領(lǐng)域的大規(guī)模數(shù)據(jù)集,并且為了提高模型的泛用性,測試集中30%的問句是訓(xùn)練集中從未見過的;但是從實驗結(jié)果可以看出這些模型直接用到實際的工業(yè)問句中效果并不好,主要原因在于工業(yè)數(shù)據(jù)庫的表結(jié)構(gòu)信息遠比Spider 數(shù)據(jù)集復(fù)雜,同時工業(yè)數(shù)據(jù)庫中存儲的數(shù)據(jù)可解釋性差,在沒有元數(shù)據(jù)的情況下機器難以理解自然語言查詢問句的語義。另外由于表結(jié)構(gòu)的差異,測試集中大量問句的列名沒有明顯出現(xiàn)在問句中,經(jīng)統(tǒng)計本文構(gòu)建的測試集中這類問句有126條,占全部測試集的40%,導(dǎo)致Spider 任務(wù)的模型找不到正確的列名或者根本沒有識別出標(biāo)簽項處存在列名。對比本文模型的結(jié)果可以看出修改后的模型在處理工業(yè)自然語言查詢問題時的有效性,同時也說明本文在遷移過程中提出的修改方法和處理策略具有一定理論意義和研究價值。

      3.3 消融實驗

      對模型進行消融實驗查看各個模塊在模型中起到的作用。首先如果不使用元數(shù)據(jù)且不對原問句進行人工同義化處理,依靠現(xiàn)在模型的方法根本不能識別問句中任意一個列實體;然后評估添加部分元數(shù)據(jù)消除表述不一致的問題后模型的準(zhǔn)確率;最后添加完整的元數(shù)據(jù)信息對比顯示元數(shù)據(jù)在處理列名不會明顯出現(xiàn)在問句中的效果。消融實驗在本文構(gòu)建的測試集上進行且會考慮value。表3 顯示了消融實驗的結(jié)果。

      表3 消融實驗的結(jié)果 單位:%Tab.3 Results of ablation experiment unit:%

      從表3 可以看出,添加部分元數(shù)據(jù)后雖然可以映射到大部分的列名,但對于問句中僅存在標(biāo)簽項的情況,列實體沒有被識別出來,準(zhǔn)確率只有39.4%,對比英文模型準(zhǔn)確率提高了3%,說明單一領(lǐng)域的Text-to-SQL 問題針對查詢問句的特征設(shè)計分類模型效果更好。在添加用于映射標(biāo)簽項的元數(shù)據(jù)之后本文模型的準(zhǔn)確率提高了20%以上,說明引入元數(shù)據(jù)可以有效地處理列名未出現(xiàn)在問句中的問題。對比表2中本文模型的準(zhǔn)確率可以看出本文模型在考慮where 子句value 時精確匹配率降低了8%,原因在于value 標(biāo)記錯誤和匹配錯誤。消融結(jié)果表明針對數(shù)據(jù)解釋性差且分散的工業(yè)數(shù)據(jù)集任務(wù),利用存儲著數(shù)據(jù)庫配置信息和數(shù)據(jù)表信息的元數(shù)據(jù)能讓工業(yè)Text-to-SQL 任務(wù)的準(zhǔn)確率得到顯著的提升。

      3.4 錯誤分析

      在對比分析了測試集預(yù)測的SQL 語句和用于參照的Gold SQL后,主要發(fā)現(xiàn)以下3 類錯誤:

      1)value 匹配錯誤。主要原因在于工業(yè)自然語言問句中where 子句涉及的列實體較多且這些列實體所存儲的數(shù)據(jù)類型相似,難以找到合適的特征區(qū)分這些value 導(dǎo)致列實體的匹配出現(xiàn)錯誤。

      2)from 子句的表名匹配錯誤。主要原因在于工業(yè)數(shù)據(jù)庫中不同表中經(jīng)常含有相同的字段名,導(dǎo)致在聯(lián)合查詢中會出現(xiàn)表名識別錯誤的情況。未來的工作中將嘗試使用全局信息重排序的方法來解決這類問題。

      3)SQL 語句的結(jié)構(gòu)錯誤。主要有兩方面:一方面問句分類產(chǎn)生錯誤;另一方面在于本文的模型難以處理嵌套查詢這類SQL 語句結(jié)構(gòu)非常復(fù)雜的自然語言查詢問題,這也是當(dāng)前國內(nèi)外Text-to-SQL 任務(wù)面臨的最大挑戰(zhàn),將在未來的工作中嘗試解決這類問題。

      4 結(jié)語

      本文主要研究中文Text-to-SQL 的工業(yè)應(yīng)用,針對英文模型遷移到中文工業(yè)Text-to-SQL 任務(wù)過程中遇到的問題提出了一套完整的解決方案。首先針對自然語言查詢的描述與數(shù)據(jù)庫中表名和列名等數(shù)據(jù)庫對象信息的描述不一致的問題,將工廠元數(shù)據(jù)信息融入到具體的數(shù)據(jù)使用中,通過元數(shù)據(jù)對自然語言中的描述進行規(guī)范化。其次針對列名未明顯出現(xiàn)在文句中的問題:一方面通過BERT+BiLSTM+CRF 命名實體識別模型完成時間實體的識別;另一方面通過元數(shù)據(jù)中的數(shù)據(jù)倉庫設(shè)計完成時間實體以外的標(biāo)簽項的映射,從而得出對應(yīng)列名的標(biāo)記。再次針對工業(yè)數(shù)據(jù)表中數(shù)據(jù)存儲量過大難以直接套用英文模型的問題,利用中文問句中value 和column 位置特性選擇使用相對位置的注意力模型,這樣僅需問句和數(shù)據(jù)庫模式信息即可完成value 的識別。最后對自然語言問句的查詢特征進行歸納后使用添加問句分類模板槽填充的方式進一步提高SQL 語句結(jié)構(gòu)預(yù)測的準(zhǔn)確率。

      本文根據(jù)實際需求構(gòu)建了一個中文的工業(yè)Text-to-SQL數(shù)據(jù)集,并在該數(shù)據(jù)集上評估了目前Spider 任務(wù)的主流模型以及本文改進后的模型的效果。實驗結(jié)果表明修改后的模型能有效處理工業(yè)自然語言查詢問題,同時也表明本文在遷移過程中提出的修改方法和處理策略具有一定的理論意義和研究價值。對于嵌套查詢這種非常復(fù)雜的SQL 語句,Spider 任務(wù)上的模型和本文的模型都沒能得到很好的結(jié)果。在未來的工作中,將考慮構(gòu)建嚴(yán)格的語法結(jié)構(gòu)并通過遞歸的方式來處理嵌套查詢這類復(fù)雜SQL 語句的查詢問題,從而進一步提高中文工業(yè)Text-to-SQL 任務(wù)的準(zhǔn)確率。

      猜你喜歡
      數(shù)據(jù)表語句標(biāo)簽
      重點:語句銜接
      湖北省新冠肺炎疫情數(shù)據(jù)表
      黨員生活(2020年2期)2020-04-17 09:56:30
      基于列控工程數(shù)據(jù)表建立線路拓撲關(guān)系的研究
      無懼標(biāo)簽 Alfa Romeo Giulia 200HP
      車迷(2018年11期)2018-08-30 03:20:32
      不害怕撕掉標(biāo)簽的人,都活出了真正的漂亮
      海峽姐妹(2018年3期)2018-05-09 08:21:02
      精彩語句
      標(biāo)簽化傷害了誰
      基于多進制查詢樹的多標(biāo)簽識別方法
      計算機工程(2015年8期)2015-07-03 12:20:27
      圖表
      如何搞定語句銜接題
      語文知識(2014年4期)2014-02-28 21:59:52
      莱西市| 中卫市| 潞西市| 噶尔县| 丹棱县| 舟山市| 黑河市| 江门市| 溧水县| 衡阳县| 崇明县| 南充市| 墨竹工卡县| 肇源县| 四子王旗| 深水埗区| 榆社县| 长乐市| 四平市| 张家口市| 怀来县| 偏关县| 乌拉特前旗| 大连市| 太白县| 景洪市| 德安县| 深泽县| 雅安市| 长泰县| 五峰| 石渠县| 连平县| 苏州市| 遵义市| 吉安市| 工布江达县| 绍兴市| 香格里拉县| 红安县| 达孜县|