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