自然語言處理被譽為人工智能皇冠上的明珠。深度學習等技術的引入為自然語言處理技術帶來了一場革命,尤其是近年來出現(xiàn)的基于預訓練模型的方法,已成為研究自然語言處理的新范式。本書在介紹自然語言處理、深度學習等基本概念的基礎上,重點介紹新的基于預訓練模型的自然語言處理技術。本書包括基礎知識、預訓練詞向量和預訓練模型三大部分:基礎知識部分介紹自然語言處理和深度學習的基礎知識和基本工具;預訓練詞向量部分介紹靜態(tài)詞向量和動態(tài)詞向量的預訓練方法及應用;預訓練模型部分介紹幾種典型的預訓練語言模型及應用,以及預訓練模型的進展。除了理論知識,本書還有針對性地結(jié)合具體案例提供相應的PyTorch 代碼實現(xiàn),不僅能讓讀者對理論有更深刻的理解,還能快速地實現(xiàn)自然語言處理模型,達到理論和實踐的統(tǒng)一。本書既適合具有一定機器學習基礎的高等院校學生、研究機構的研究者,以及希望深入研究自然語言處理算法的計算機工程師閱讀,也適合對人工智能、深度學習和自然語言處理感興趣的學生和希望進入人工智能應用領域的研究者參考。
車萬翔博士,哈爾濱工業(yè)大學計算機學院教授,博士生導師,教育部青年長江學者,黑龍江省龍江學者青年學者,斯坦福大學訪問學者。現(xiàn)任中國中文信息學會計算語言學專業(yè)委員會委員、青年工作委員會副主任;中國計算機學會高級會員、曾任YOCSEF哈爾濱主席(2016-2017年度)。在ACL、EMNLP、AAAI、IJCAI等國內(nèi)外高水平期刊和會議上發(fā)表學術論文50余篇,其中AAAI 2013年的文章獲得了論文提名獎,論文累計被引用3,000余次(Google Scholar數(shù)據(jù)),H-index值為29。出版教材 2 部,譯著 2 部。目前承擔國家自然科學基金、973等多項科研項目。負責研發(fā)的語言技術平臺(LTP)已被600余家單位共享,提供的在線語言云服務已有用戶1萬余人,并授權給百度、騰訊、華為等公司使用。2018、2019連續(xù)兩年獲CoNLL國際評測第1名。2015、2016連續(xù)兩年獲Google Focused Research Award(谷歌專注研究獎);2016年,獲黑龍江省科技進步一等獎(排名第2);2012年,獲黑龍江省技術發(fā)明獎二等獎(排名第2);2010年獲中國中文信息學會錢偉長中文信息處理科學技術獎一等獎(排名第2)、首屆漢王青年創(chuàng)新獎(個人)等多項獎勵。2017年,所主講的MOOC課程《高級語言程序設計(Python)》獲國家精品在線開放課程。郭江麻省理工學院計算機科學與人工智能實驗室,博士后研究員。畢業(yè)于哈爾濱工業(yè)大學社會計算與信息檢索研究中心,約翰斯?霍普金斯大學聯(lián)合培養(yǎng)博士,研究方向為自然語言處理與機器學習。在人工智能、自然語言處理領域國際重要會議及期刊(如ACL、EMNLP、AAAI等)發(fā)表論文20余篇。是被業(yè)界廣泛應用的中文語言技術平臺LTP的主要研發(fā)者之一。2015年,獲百度獎學金;2018年,獲中文信息學會優(yōu)秀博士學位論文提名獎。崔一鳴科大訊飛AI研究院資深級研究員、研究主管。本科與碩士畢業(yè)于哈爾濱工業(yè)大學計算機科學與技術專業(yè)并繼續(xù)攻讀博士學位。長期從事閱讀理解、問答系統(tǒng)、機器翻譯、自然語言處理等相關領域的研究工作。曾以主要研究人員身份參加了國際口語機器翻譯評測(IWSLT),NIST OpenMT國際機器翻譯評測獲得多項冠軍。多次獲得國際權威機器閱讀理解評測冠軍,其中包括斯坦福SQuAD挑戰(zhàn)賽冠軍、國際語義評測SemEval 2018閱讀理解任務冠軍、對話型閱讀理解挑戰(zhàn)賽CoQA、QuAC冠軍、多步推理閱讀理解挑戰(zhàn)賽HotpotQA冠軍。同時在自然語言處理國際會議ACL、EMNLP、AAAI、IJCAI等上發(fā)表十余篇學術論文,申請發(fā)明專利十余項,并擔任國際會議程序委員會委員,擔任國際ESI期刊審稿人等學術職務。
目錄
推薦序III
推薦語IV
前言V
數(shù)學符號IX
第1 章緒論1
1.1 自然語言處理的概念. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2 自然語言處理的難點. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2.1 抽象性. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2.2 組合性. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2.3 歧義性. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2.4 進化性. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2.5 非規(guī)范性. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2.6 主觀性. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2.7 知識性. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2.8 難移植性. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.3 自然語言處理任務體系. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4
1.3.1 任務層級. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.3.2 任務類別. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.3.3 研究對象與層次. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.4 自然語言處理技術發(fā)展歷史. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
第2 章自然語言處理基礎11
2.1 文本的表示. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .12
2.1.1 詞的獨熱表示. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.1.2 詞的分布式表示. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.1.3 詞嵌入表示. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.1.4 文本的詞袋表示. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.2 自然語言處理任務. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.2.1 語言模型. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.2.2 自然語言處理基礎任務. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.2.3 自然語言處理應用任務. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
2.3 基本問題. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
2.3.1 文本分類問題. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
2.3.2 結(jié)構預測問題. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
2.3.3 序列到序列問題. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
2.4 評價指標. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .40
2.5 小結(jié). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .43
第3 章基礎工具集與常用數(shù)據(jù)集45
3.1 NLTK 工具集. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .46
3.1.1 常用語料庫和詞典資源. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
3.1.2 常用自然語言處理工具集. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .49
3.2 LTP 工具集. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
3.2.1 中文分詞. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
3.2.2 其他中文自然語言處理功能. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .52
3.3 PyTorch 基礎. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
3.3.1 張量的基本概念. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
3.3.2 張量的基本運算. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
3.3.3 自動微分. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
3.3.4 調(diào)整張量形狀. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
3.3.5 廣播機制. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
3.3.6 索引與切片. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
3.3.7 降維與升維. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
3.4 大規(guī)模預訓練數(shù)據(jù). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
3.4.1 維基百科數(shù)據(jù). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
3.4.2 原始數(shù)據(jù)的獲取. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
3.4.3 語料處理方法. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
3.4.4 Common Crawl 數(shù)據(jù). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
3.5 更多數(shù)據(jù)集. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .66
3.6 小結(jié). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .68
第4 章自然語言處理中的神經(jīng)網(wǎng)絡基礎69
4.1 多層感知器模型. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
4.1.1 感知器. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
4.1.2 線性回歸. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
4.1.3 Logistic 回歸. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
4.1.4 Softmax 回歸. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
4.1.5 多層感知器. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
4.1.6 模型實現(xiàn). . . . .