語(yǔ)義解析:自然語(yǔ)言生成SQL與知識(shí)圖譜問(wèn)答實(shí)戰(zhàn)
定 價(jià):99 元
叢書(shū)名:智能系統(tǒng)與技術(shù)叢書(shū)
- 作者:易顯維寧星星
- 出版時(shí)間:2023/11/1
- ISBN:9787111736899
- 出 版 社:機(jī)械工業(yè)出版社
- 中圖法分類:TP391
- 頁(yè)碼:
- 紙張:膠版紙
- 版次:
- 開(kāi)本:16開(kāi)
全書(shū)分為3個(gè)部分:
1.第一部分主要介紹了NL2SQL技術(shù)的相關(guān)背景知識(shí),包括對(duì)NL2SQL任務(wù)的描述和價(jià)值探討、國(guó)內(nèi)外相關(guān)數(shù)據(jù)集的對(duì)比分析以及相關(guān)前置技術(shù)的介紹與實(shí)現(xiàn)
2.第二部分深入解構(gòu)當(dāng)前NL2SQL技術(shù)領(lǐng)域的若干主流技術(shù)路線,并著重分析了各個(gè)技術(shù)方案的優(yōu)勢(shì)與不足,為開(kāi)發(fā)者提供模型選擇的參考依據(jù)
3.第三部分包含NL2SQL實(shí)踐指導(dǎo)相關(guān)篇章,結(jié)合相關(guān)代碼,以單表無(wú)嵌套和多表有嵌套為例,從數(shù)據(jù)預(yù)處理、模型的構(gòu)建,模型優(yōu)化技巧等方面為讀者構(gòu)建了完整的NL2SQL技術(shù)實(shí)現(xiàn)流程
讀者通過(guò)對(duì)本書(shū)的閱讀,可以對(duì)自然語(yǔ)言處理語(yǔ)義解析領(lǐng)域新興的子任務(wù)——NL2SQL有一個(gè)清晰地認(rèn)識(shí)。本書(shū)充分介紹了語(yǔ)義解析任務(wù)相關(guān)研究進(jìn)展,對(duì)主流技術(shù)方案進(jìn)行了詳細(xì)闡述與分析,并從實(shí)踐的角度展示了NL2SQL完整的技術(shù)實(shí)現(xiàn)流程,希望幫助讀者深入理解并高效搭建起語(yǔ)義解析框架,同時(shí)對(duì)語(yǔ)義解析領(lǐng)域的發(fā)展起到一定的促進(jìn)作用。
1)領(lǐng)域?qū)<衣?lián)袂推薦,語(yǔ)義解析大賽獲獎(jiǎng)?wù)咦珜?xiě),滿足工業(yè)級(jí)應(yīng)用安全、精準(zhǔn)需求,彌合大模型的不足。2)剖析語(yǔ)義解析技術(shù)原理與實(shí)踐,涵蓋機(jī)器翻譯、模板填充、強(qiáng)化學(xué)習(xí)、GNN、中間表達(dá)五大技術(shù)方向,并隨書(shū)提供案例代碼。
F O R E W O R D
序隨著信息技術(shù)的不斷發(fā)展,人們需要從自然語(yǔ)言中獲取更多的信息,這使得語(yǔ)義解析技術(shù)變得越來(lái)越重要。語(yǔ)義解析是自然語(yǔ)言處理中的一個(gè)關(guān)鍵技術(shù),它可以將自然語(yǔ)言轉(zhuǎn)換成機(jī)器能理解的形式,從而實(shí)現(xiàn)自然語(yǔ)言與計(jì)算機(jī)之間的有效交互。語(yǔ)義解析技術(shù)的應(yīng)用涵蓋了智能問(wèn)答、智能客服、數(shù)據(jù)分析等多個(gè)領(lǐng)域,是未來(lái)人工智能發(fā)展的重要方向之一。
在學(xué)術(shù)界,語(yǔ)義解析技術(shù)已經(jīng)成為自然語(yǔ)言處理領(lǐng)域的重點(diǎn)研究方向之一。從最早的基于規(guī)則的方法到現(xiàn)在的基于深度學(xué)習(xí)的方法,學(xué)術(shù)界在語(yǔ)義解析技術(shù)的研究方面做出了很多重要的貢獻(xiàn)。目前,知識(shí)圖譜問(wèn)答、自然語(yǔ)言生成SQL等領(lǐng)域都取得了一些重要的進(jìn)展,這些技術(shù)的不斷發(fā)展也促進(jìn)了語(yǔ)義解析技術(shù)的不斷完善。
與此同時(shí),語(yǔ)義解析技術(shù)在工業(yè)界的應(yīng)用也日益廣泛,各種智能應(yīng)用都需要語(yǔ)義解析技術(shù)的支持。近年來(lái),以微軟、阿里巴巴、百度等科技巨頭為代表的企業(yè)也加快了在語(yǔ)義解析技術(shù)領(lǐng)域的布局和研究。隨著人工智能技術(shù)的不斷進(jìn)步以及在金融、醫(yī)療、教育、電商等領(lǐng)域的不斷應(yīng)用,語(yǔ)義解析技術(shù)在工業(yè)界的應(yīng)用前景也將越來(lái)越廣闊。
相對(duì)于其他研究領(lǐng)域,語(yǔ)義解析技術(shù)相關(guān)的書(shū)籍卻很少,本書(shū)旨在填補(bǔ)這一空白。本書(shū)通過(guò)對(duì)多種語(yǔ)義解析技術(shù)的介紹和實(shí)際原型系統(tǒng)的構(gòu)建,幫助讀者掌握語(yǔ)義解析技術(shù)的核心原理和實(shí)際應(yīng)用方法,從而為工業(yè)實(shí)踐奠定基礎(chǔ)。本書(shū)的作者之一易顯維是一位在NLP算法競(jìng)賽和項(xiàng)目研發(fā)方面有豐富實(shí)踐經(jīng)驗(yàn)的專家,他將自己多年的思考和實(shí)踐融入書(shū)中,以期幫助更多的讀者掌握語(yǔ)義解析技術(shù)的精髓。本書(shū)不僅適合自然語(yǔ)言處理領(lǐng)域的技術(shù)從業(yè)者和研究人員參考,也適合對(duì)語(yǔ)義解析技術(shù)感興趣的學(xué)生和愛(ài)好者閱讀。
在這個(gè)充滿機(jī)遇和挑戰(zhàn)的時(shí)代,語(yǔ)義解析技術(shù)的應(yīng)用日益廣泛。相信本書(shū)將會(huì)成為語(yǔ)義解析技術(shù)領(lǐng)域的經(jīng)典之作,也將為更多探索語(yǔ)義解析技術(shù)的人們指出方向。
是為序。
蘇海波
百分點(diǎn)信息科技有限公司首席算法科學(xué)家 P R E F A C E
前言SQL是訪問(wèn)關(guān)系型數(shù)據(jù)庫(kù)的標(biāo)準(zhǔn)語(yǔ)言,但需要深入了解數(shù)據(jù)庫(kù)結(jié)構(gòu)和SQL語(yǔ)言的語(yǔ)法才能編寫(xiě)出合適的SQL語(yǔ)句,這對(duì)非專業(yè)人士來(lái)說(shuō)十分困難。語(yǔ)義解析技術(shù)可以幫助人們更輕松地與計(jì)算機(jī)進(jìn)行交互,提高效率和準(zhǔn)確性。語(yǔ)義解析是NLP(自然語(yǔ)言處理)的一個(gè)重要領(lǐng)域,旨在將自然語(yǔ)言語(yǔ)句轉(zhuǎn)換為機(jī)器可以理解的語(yǔ)言表示,如SQL查詢或知識(shí)圖譜查詢。NL2SQL和KBQA是語(yǔ)義解析的兩個(gè)子領(lǐng)域,分別旨在將自然語(yǔ)言問(wèn)題轉(zhuǎn)換為SQL查詢和知識(shí)圖譜查詢語(yǔ)句。然而,這些領(lǐng)域目前仍存在許多挑戰(zhàn),例如自然語(yǔ)言中的歧義性和復(fù)雜性,以及跨語(yǔ)言和跨文化語(yǔ)義解析的難度。
語(yǔ)義解析技術(shù)可以提高人機(jī)交互的效率和準(zhǔn)確性,在自然語(yǔ)言處理、數(shù)據(jù)分析、智能客服、智能家居等領(lǐng)域都有廣泛的應(yīng)用前景。特別是在大數(shù)據(jù)時(shí)代,語(yǔ)義解析能夠幫助企業(yè)更快速地從大量的數(shù)據(jù)中獲取有用的信息,從而提高決策效率。
具體而言,一些使用語(yǔ)義解析技術(shù)的產(chǎn)品如下。
智能問(wèn)答系統(tǒng),如小米的小愛(ài)同學(xué)。
智能客服系統(tǒng),如騰訊企點(diǎn)客服機(jī)器人。
輿情分析系統(tǒng),如微博的情緒分析和新浪的熱搜榜。
智能搜索引擎,如谷歌和百度的智能搜索引擎。
金融服務(wù),如支付寶和招商銀行的智能客服。
語(yǔ)義解析領(lǐng)域目前仍存在許多挑戰(zhàn),學(xué)術(shù)界和工業(yè)界正在研究、探索各種新方法與技術(shù),以應(yīng)對(duì)這些挑戰(zhàn)。
為什么寫(xiě)這本書(shū)
最近,多個(gè)大規(guī)模語(yǔ)言模型在生成自然語(yǔ)言文本方面有著驚人的表現(xiàn),而ChatGPT是其典型應(yīng)用之一。ChatGPT被廣泛用于聊天機(jī)器人、智能問(wèn)答系統(tǒng)等文本生成領(lǐng)域,因其高質(zhì)量的生成文本而備受歡迎。
盡管大規(guī)模語(yǔ)言模型功能強(qiáng)大,但在語(yǔ)義解析方面還存在以下幾個(gè)問(wèn)題。
首先,由于大規(guī)模語(yǔ)言模型是概率模型,輸出時(shí)沒(méi)有與數(shù)據(jù)庫(kù)內(nèi)容進(jìn)行比對(duì),可能會(huì)導(dǎo)致輸出結(jié)果存在事實(shí)性錯(cuò)誤。
其次,大規(guī)模語(yǔ)言模型對(duì)復(fù)雜的數(shù)據(jù)庫(kù)結(jié)構(gòu)和知識(shí)圖譜的圖結(jié)構(gòu)沒(méi)有很好的建模方法,目前還沒(méi)有很好的辦法將復(fù)雜的圖結(jié)構(gòu)和表結(jié)構(gòu)輸入端到端的模型中。這些問(wèn)題都需要進(jìn)一步研究和解決。
本書(shū)則為這些問(wèn)題提供了解決思路。
筆者參與過(guò)結(jié)構(gòu)化數(shù)據(jù)挖掘、OCR、NL2SQL、KBQA、文本校對(duì)等技術(shù)的實(shí)踐,多次參加算法競(jìng)賽并獲獎(jiǎng),積累了豐富的經(jīng)驗(yàn)和方法。這些經(jīng)歷讓筆者深刻認(rèn)識(shí)到,技術(shù)在現(xiàn)代社會(huì)中發(fā)揮著越來(lái)越重要的作用,而技術(shù)的發(fā)展需要有更多的人才來(lái)支撐。因此,筆者萌生了寫(xiě)一本書(shū)的想法,希望通過(guò)書(shū)籍的形式將自己沉淀的方法論傳播出去,影響更多的同行和學(xué)生,也讓更多非計(jì)算機(jī)專業(yè)的讀者在職業(yè)生涯上有更多的選擇。
筆者希望書(shū)中的內(nèi)容能夠促進(jìn)讀者在技術(shù)領(lǐng)域不斷探索和創(chuàng)新,讓“木葉飛舞之處,火亦生生不息”成為現(xiàn)實(shí)。
如何閱讀本書(shū)
本書(shū)共11章,系統(tǒng)介紹了語(yǔ)義解析的基礎(chǔ)知識(shí)、主流技術(shù)以及工程實(shí)踐。
第1章重點(diǎn)介紹智能問(wèn)答中的語(yǔ)義解析技術(shù)及其應(yīng)用場(chǎng)景。通過(guò)學(xué)習(xí)本章,讀者可以掌握語(yǔ)義解析的基本概念、分類、常見(jiàn)技術(shù)及其優(yōu)缺點(diǎn),以及智能問(wèn)答系統(tǒng)在不同領(lǐng)域的應(yīng)用和市場(chǎng)前景。
第2章介紹機(jī)器翻譯技術(shù)在語(yǔ)義解析方面的應(yīng)用,詳細(xì)講解如何通過(guò)機(jī)器翻譯來(lái)完成智能問(wèn)答中的NL2SQL任務(wù),并重點(diǎn)介紹生成模型T5在NL2SQL任務(wù)中的重要應(yīng)用。通過(guò)學(xué)習(xí)本章,讀者可以掌握T5模型的基本原理和優(yōu)缺點(diǎn)、應(yīng)用場(chǎng)景以及T5模型的性能優(yōu)化。
第3章介紹模板填充法,重點(diǎn)介紹頗具代表性的基于X-SQL模型的方法的基本原理及在語(yǔ)義解析中的應(yīng)用、技術(shù)細(xì)節(jié)與適用場(chǎng)景。
第4章介紹如何通過(guò)強(qiáng)化學(xué)習(xí)來(lái)解決NL2SQL任務(wù)中的問(wèn)題,為NL2SQL任務(wù)的解決方案提供一種創(chuàng)新的思路。通過(guò)學(xué)習(xí)本章,讀者可以深入了解強(qiáng)化學(xué)習(xí)在自然語(yǔ)言處理中的應(yīng)用,以及如何合理地設(shè)計(jì)強(qiáng)化學(xué)習(xí)目標(biāo)來(lái)完成NL2SQL任務(wù)。
第5章介紹GNN在NL2SQL任務(wù)中的應(yīng)用,幫助讀者深入理解如何更好地表征數(shù)據(jù)庫(kù)表的語(yǔ)義。
第6章詳細(xì)介紹如何通過(guò)構(gòu)建“中間表達(dá)”來(lái)解決NL2SQL任務(wù)中的Mismatch難題,同時(shí)介紹難題的成因與影響。
第7章通過(guò)設(shè)計(jì)無(wú)嵌套的簡(jiǎn)單SQL查詢的完整示例,逐步講解NL2SQL任務(wù)的各個(gè)環(huán)節(jié)和難點(diǎn),以及如何評(píng)估語(yǔ)義解析模型的性能和效果。
第8章深入探討復(fù)雜場(chǎng)景下的NL2SQL任務(wù),讀者將能夠掌握復(fù)雜場(chǎng)景下的語(yǔ)義解析模型設(shè)計(jì)和優(yōu)化策略,以及如何評(píng)估和改進(jìn)相應(yīng)模型的性能與效果。
第9章介紹基于知識(shí)圖譜問(wèn)答(KBQA)的語(yǔ)義解析方法,即NL2SPARQL方法。通過(guò)學(xué)習(xí)本章,讀者將了解NL2SPARQL方法的基本原理和技術(shù)細(xì)節(jié),掌握如何將自然語(yǔ)言轉(zhuǎn)換為SPARQL語(yǔ)言。
第10章介紹表格預(yù)訓(xùn)練方案的應(yīng)用場(chǎng)景、技術(shù)細(xì)節(jié)和優(yōu)缺點(diǎn)。
第11章介紹語(yǔ)義解析技術(shù)的落地思考以及百度AI語(yǔ)義解析大賽的獲獎(jiǎng)技術(shù)方案。通過(guò)本章的學(xué)習(xí),讀者可以了解語(yǔ)義解析技術(shù)在實(shí)際應(yīng)用中的難點(diǎn)和挑戰(zhàn)。
勘誤和支持
由于計(jì)算機(jī)科學(xué)發(fā)展迅速,方法不斷改進(jìn),加上人們對(duì)事物的認(rèn)知也在持續(xù)提升,書(shū)中難免存在疏漏和錯(cuò)誤。筆者的郵箱是necther@qqcom,希望廣大讀者不吝賜教,也歡迎讀者對(duì)書(shū)中提出的技術(shù)問(wèn)題給出自己的答案。
致謝
本書(shū)由易顯維和寧星星共同編寫(xiě)完成。在本書(shū)的編寫(xiě)過(guò)程中,我們得到了許多專家和朋友的幫助,他們是:鎮(zhèn)詩(shī)奇、鄧良聰、林志墅、章涵藝、黎志揚(yáng)、李潛、肖偉崎、桂安春、王睿捷和徐驍飛。他們的建議和意見(jiàn)使我們能不斷地完善本書(shū)的內(nèi)容。
本書(shū)在編寫(xiě)過(guò)程中參考了大量的相關(guān)論文和優(yōu)秀實(shí)踐。在此,感謝所有為語(yǔ)義解析技術(shù)的發(fā)展和應(yīng)用做出貢獻(xiàn)的人,正是因?yàn)樗麄兊呐,才能讓語(yǔ)義解析技術(shù)不斷發(fā)展和進(jìn)步。
家庭的愛(ài)與包容讓我們能夠毫無(wú)后顧之憂地完成本書(shū)的編寫(xiě),在此,對(duì)家人表示最真誠(chéng)的感謝,感謝他們一直以來(lái)的支持和陪伴。
易顯維
C O N T E N T S
目錄序
前言
第1章NL2SQL和KBQA中的語(yǔ)義
解析技術(shù)1
11人機(jī)交互應(yīng)用與語(yǔ)義解析
難點(diǎn)分析1
12主流的語(yǔ)義解析技術(shù)5
121NL2SQL任務(wù)及方法5
122KBQA任務(wù)及方法12
123語(yǔ)義解析技術(shù)方案對(duì)比17
13語(yǔ)義解析的預(yù)訓(xùn)練模型和
數(shù)據(jù)集19
131語(yǔ)義解析中的預(yù)訓(xùn)練模型19
132NL2SQL數(shù)據(jù)集19
133KBQA數(shù)據(jù)集21
14本章小結(jié)23第2章基于機(jī)器翻譯的語(yǔ)義解析
技術(shù)24
21機(jī)器翻譯原理淺析24
211常見(jiàn)機(jī)器翻譯技術(shù)路線24
212神經(jīng)網(wǎng)絡(luò)機(jī)器翻譯基本框架26
22NL2SQL翻譯框架的構(gòu)建27
221Seq2Seq模型原理27
222將Seq2Seq模型應(yīng)用于
NL2SQL28
23從序列到集合:SQLNet
模型的解決方案28
231序列到集合29
232列名注意力29
233SQLNet模型預(yù)測(cè)及其訓(xùn)練
細(xì)節(jié)30
24T5預(yù)訓(xùn)練模型在NL2SQL中的
應(yīng)用31
241T5模型簡(jiǎn)介31
242T5模型架構(gòu)32
243T5模型訓(xùn)練方式32
244T5模型在NL2SQL中的
應(yīng)用33
25NL2SQL的T5模型實(shí)踐33
26本章小結(jié)43第3章基于模板填充的語(yǔ)義解析
技術(shù)44
31意圖識(shí)別和槽位填充44
311意圖識(shí)別和槽位填充的
步驟45
312如何進(jìn)行意圖識(shí)別和槽位
填充46
32基于X-SQL的模板定義與子
任務(wù)分解48
33本章小結(jié)49第4章基于強(qiáng)化學(xué)習(xí)的語(yǔ)義解析
技術(shù)50
41Seq2Seq中的強(qiáng)化學(xué)習(xí)
知識(shí)50
42SCST模型51
421SCST模型簡(jiǎn)介52
422SCST模型框架52
423SCST代碼實(shí)現(xiàn)52
43MAPO模型62
431MAPO模型簡(jiǎn)介62
432MAPO代碼實(shí)現(xiàn)63
44本章小結(jié)67第5章基于GNN的語(yǔ)義解析
技術(shù)68
51使用GNN對(duì)數(shù)據(jù)庫(kù)模式進(jìn)行
編碼68
511匹配可能模式項(xiàng)的集合69
512GNN編碼表示69
52關(guān)注模式的Global GNN71
521Global GNN的改進(jìn)71
522Gating GCN模塊詳解72
523Re-ranking GCN模塊詳解75
53關(guān)注模式鏈接的RATSQL79
531Relation-Aware Self-Attention
模型80
532考慮更復(fù)雜的連接關(guān)系80
533模式鏈接的具體實(shí)現(xiàn)81
54關(guān)注模式鏈接拓?fù)浣Y(jié)構(gòu)的
LGESQL83
541LGESQL模型簡(jiǎn)介83
542LGESQL模型框架86
55本章小結(jié)87第6章基于中間表達(dá)的語(yǔ)義解析
技術(shù)88
61中間表達(dá):IRNet88
62引入中間表達(dá)層SemQL90
63IRNet代碼精析92
631模式鏈接代碼實(shí)現(xiàn)92
632SemQL的生成95
633SQL語(yǔ)句的生成101
64本章小結(jié)107第7章面向無(wú)嵌套簡(jiǎn)單SQL查詢的
原型系統(tǒng)構(gòu)建108
71語(yǔ)義匹配解決思路108
72任務(wù)簡(jiǎn)介109
73任務(wù)解析110
731列名解析110
732輸入整合111
733輸出子任務(wù)解析111
734模型整體架構(gòu)112
74代碼示例113
741QueryTokenizer類的構(gòu)造113
742SqlLabelEncoder類的
構(gòu)造115
743生成批量數(shù)據(jù)115
744模型搭建117
745模型訓(xùn)練和預(yù)測(cè)118
75本章小結(jié)120第8章面向復(fù)雜嵌套SQL查詢的
原型系統(tǒng)構(gòu)建121
81復(fù)雜嵌套SQL查詢的難點(diǎn)
剖析121
811復(fù)雜嵌套SQL語(yǔ)句121
812難點(diǎn)與對(duì)策分析122
82型模型解析123
821構(gòu)建復(fù)雜SQL語(yǔ)句的中間
表達(dá)形式123
822型模型的搭建與訓(xùn)練124
83列模型解析127
831嵌套信息的編碼設(shè)計(jì)127
832列模型的搭建與訓(xùn)練127
84值模型解析130
841值與列的關(guān)系解析130
842值模型的搭建與訓(xùn)練130
85完整系統(tǒng)演示132
851解碼器132
852完整流程演示133
86本章小結(jié)134第9章面向SPARQL的原型系統(tǒng)
構(gòu)建135
91T5、BART、UniLM模型
簡(jiǎn)介135
92T5、BART、UniLM方案136
93T5、BART、UniLM生成
SPARQL語(yǔ)句實(shí)現(xiàn)141
94T5、BART、UniLM模型結(jié)果
合并156
95路徑排序160
96SPARQL語(yǔ)句修正和再次
排序172
97本章小結(jié)185第10章預(yù)訓(xùn)練優(yōu)化186
101預(yù)訓(xùn)練技術(shù)的發(fā)展186
1011掩碼語(yǔ)言建模187
1012去噪自動(dòng)編碼器189
102定制預(yù)訓(xùn)練模型:
TaBERT192
1021信息的聯(lián)合表示192
1022預(yù)訓(xùn)練任務(wù)設(shè)計(jì)192
103TAPAS194
1031附加Embedding編碼表
結(jié)構(gòu)194
1032預(yù)訓(xùn)練任務(wù)設(shè)計(jì)195
104GRAPPA195
1041表格數(shù)據(jù)增強(qiáng):解決數(shù)據(jù)
稀疏難題195
1042預(yù)訓(xùn)練任務(wù)設(shè)計(jì)195
105本章小結(jié)197第11章語(yǔ)義解析技術(shù)落地思考198
111研究與落地的差別198
112產(chǎn)品視角的考慮200
113潛在的落地場(chǎng)景200
114實(shí)踐技巧201
1141數(shù)據(jù)增強(qiáng)在NLP領(lǐng)域的
應(yīng)用201
1142數(shù)據(jù)增強(qiáng)策略202
1143方案創(chuàng)新點(diǎn)204
115本章小結(jié)205