《自然語言處理導(dǎo)論》主要介紹自然語言處理理論與技術(shù),旨在讓更多人了解和學(xué)習(xí)自然語言處理技術(shù),讓人工智能更好地為我們服務(wù)。
《自然語言處理導(dǎo)論》共16章,包括自然語言理解基礎(chǔ)和具體任務(wù)探索兩部分,主要講述了自然語言處理文本表示、分析、挖掘、推理等方面的相關(guān)概念、方法、技術(shù)和近期研究進(jìn)展;詳細(xì)介紹了文本分類、情感計(jì)算、知識抽取等基礎(chǔ)方法;全面講述了自動文摘、問答系統(tǒng)、機(jī)器翻譯、社會計(jì)算、內(nèi)容生成和跨模態(tài)計(jì)算等具體任務(wù);最后討論了深度學(xué)習(xí)前沿問題。
《自然語言處理導(dǎo)論》致力于幫助高等院校計(jì)算機(jī)相關(guān)專業(yè)學(xué)生牢固掌握自然語言處理的基本理論與技術(shù),掌握如何分析文本信息、解決問題、完成相關(guān)研究的方法,以及了解自然語言處理的典型應(yīng)用場景。
自然語言處理是一門融計(jì)算機(jī)科學(xué)、語言學(xué)、數(shù)學(xué)、認(rèn)知學(xué)、邏輯學(xué)于一體的研究學(xué)科。機(jī)器學(xué)習(xí)、深度學(xué)習(xí)方法持續(xù)地引領(lǐng)著自然語言處理的進(jìn)步與發(fā)展。以ChatGPT為代表的語言模型更是展現(xiàn)出了強(qiáng)大的通用能力,亦離不開自然語言處理技術(shù)的發(fā)展積累。
《自然語言處理導(dǎo)論》內(nèi)容源自中山大學(xué)開設(shè)的自然語言處理課程,以及作者的產(chǎn)業(yè)實(shí)踐;主要介紹自然語言處理理論與技術(shù),旨在讓更多人了解和學(xué)習(xí)自然語言處理技術(shù),讓人工智能更好地為我們服務(wù)。
自然語言處理(Natural Language Processing,NLP)是一門融計(jì)算機(jī)科學(xué)、語言學(xué)、數(shù)學(xué)、認(rèn)知學(xué)、邏輯學(xué)于一體的研究學(xué)科。自然語言處理涉及自然語言,關(guān)注計(jì)算機(jī)和人類語言之間的交互,在計(jì)算機(jī)的支持下對語言信息進(jìn)行定量化的研究,包括自然語言理解(Natural Language Understanding,NLU)和自然語言生成(Natural Language Generation,NLG)兩部分研究內(nèi)容,旨在使計(jì)算機(jī)能夠分析、處理和理解人類語言,提供可供人與計(jì)算機(jī)之間能共同使用的語言描寫。
利用計(jì)算機(jī)處理自然語言,根據(jù)其不同時期或不同側(cè)重點(diǎn),可分為不同階段,即自然語言理解、人類語言技術(shù)(Human Language Technology,HLT)、計(jì)算語言學(xué)(computational linguistics)、計(jì)量語言學(xué)(quantitative linguistics)、數(shù)理語言學(xué)(mathematical linguistics)等。近年來,以機(jī)器學(xué)習(xí)、深度學(xué)習(xí)、知識圖譜為代表的人工智能技術(shù)逐漸變得普及。大數(shù)據(jù)時代的機(jī)器學(xué)習(xí),需面向復(fù)雜多樣的數(shù)據(jù)進(jìn)行深層次分析。深度學(xué)習(xí)的實(shí)現(xiàn)在于建立模擬人腦進(jìn)行分析學(xué)習(xí)的神經(jīng)網(wǎng)絡(luò)。得益于數(shù)據(jù)的增多、計(jì)算能力的增強(qiáng)、學(xué)習(xí)算法的成熟以及應(yīng)用場景的豐富,深度學(xué)習(xí)在學(xué)術(shù)界和工業(yè)界取得了廣泛的成功,受到了越來越多的關(guān)注,并掀起新一輪的人工智能熱潮。
機(jī)器學(xué)習(xí)、深度學(xué)習(xí)和自然語言處理的交叉在實(shí)際任務(wù)中取得了長足進(jìn)步,被用來解決一些通用人工智能問題,如文本分類、自動文摘、問答系統(tǒng)、機(jī)器翻譯、社會計(jì)算、推薦系統(tǒng)、內(nèi)容生成和跨模態(tài)計(jì)算等。以機(jī)器翻譯任務(wù)為例,它從基于規(guī)則方法、基于統(tǒng)計(jì)方法、基于實(shí)例方法到基于深度學(xué)習(xí)方法的快速發(fā)展,帶著鮮明的時代背景烙印,也吻合技術(shù)發(fā)展脈絡(luò)。如今,機(jī)器學(xué)習(xí)、深度學(xué)習(xí)方法持續(xù)地引領(lǐng)著自然語言處理的進(jìn)步與發(fā)展。以ChatGPT為代表的語言模型更是展現(xiàn)出了強(qiáng)大的通用能力,亦離不開自然語言處理技術(shù)的發(fā)展積累。
《自然語言處理導(dǎo)論》適用范圍包括高年級本科生、碩士博士研究生以及任何對自然語言處理技術(shù)感興趣的人。《自然語言處理導(dǎo)論》共16章。第1章是緒論,概要介紹自然語言處理的基本概念、發(fā)展歷程和研究內(nèi)容,使讀者能夠全面了解相關(guān)知識。第2~7章分別講述了語言模型、神經(jīng)網(wǎng)絡(luò)和神經(jīng)語言模型、詞和語義向量、預(yù)訓(xùn)練語言模型、序列標(biāo)注和語義分析,介紹了自然語言處理文本表示、分析、挖掘、推理等方面的相關(guān)概念、方法、技術(shù)和近期研究進(jìn)展。第8~10章介紹了文本分類、情感計(jì)算、知識抽取等基礎(chǔ)方法。第11~15章介紹了自動文摘、統(tǒng)計(jì)機(jī)器翻譯和神經(jīng)機(jī)器翻譯、問答系統(tǒng)與多輪對話、社會計(jì)算、內(nèi)容生成和跨模態(tài)計(jì)算,這些都是目前自然語言處理的難點(diǎn)和熱點(diǎn)問題。第16章討論了深度學(xué)習(xí)前沿問題。
2020年中山大學(xué)智能工程學(xué)院開設(shè)了自然語言處理課程。講好基于機(jī)器學(xué)習(xí)和深度學(xué)習(xí)的自然語言處理課程并不是一件容易的事,課程涉及的知識點(diǎn)繁多且雜亂,與實(shí)踐結(jié)合也十分緊密。作為任課教師,我嘗試梳理了自然語言處理的知識體系,擬定了教學(xué)大綱、教案、習(xí)題詳解、試卷等。過程中得到了學(xué)校與學(xué)院的高度重視,進(jìn)行了相關(guān)教研探索,同時也獲得華為產(chǎn)教融合協(xié)同育人項(xiàng)目的數(shù)據(jù)和資源支持。在機(jī)械工業(yè)出版社的熱情邀請和大力支持下,我著手撰寫這本面向在校學(xué)生和相關(guān)從業(yè)人員的關(guān)于自然語言處理的圖書。但我依然低估了寫作的難度:一方面是深度學(xué)習(xí)、自然語言處理的發(fā)展十分迅速,我的認(rèn)知也在不斷變化,導(dǎo)致需不斷增改已成稿的內(nèi)容;另一方面是平時的科研教學(xué)任務(wù)十分繁重,只能在碎片化的時間中匍匐前行。
《自然語言處理導(dǎo)論》能夠完成,無疑得到了很多人的支持和幫助。感謝中山大學(xué)各位領(lǐng)導(dǎo)專家的支持和幫助。感謝我的搭檔丁寧博士,他基于對自然語言處理任務(wù)的獨(dú)到見解和實(shí)踐經(jīng)驗(yàn),提出了富有建設(shè)性的意見。感謝編寫第10章的清華大學(xué)博士酈煬寧和李映輝,以及協(xié)助他們完成該章的胡婧、曹志雄、張豪。感謝各位同事、同學(xué)和好友,在《自然語言處理導(dǎo)論》撰寫過程中提供了很多研究資料和熱情的幫助。此外,本書在寫作過程中參考了互聯(lián)網(wǎng)上大量的優(yōu)秀資料,如維基百科、知乎、Quora等網(wǎng)站。
由于深度學(xué)習(xí)、自然語言處理技術(shù)日新月異,而我們所知有限,難免有掛一漏萬之憾!蹲匀徽Z言處理導(dǎo)論》中難免有不當(dāng)和錯誤之處,還望讀者海涵和指正,不勝感激。如有重要進(jìn)展或成果沒有涉及,絕非作者故意為之,敬請大家批評指正。無論是指出錯誤還是改進(jìn)建議,請直接發(fā)郵件至sheny76@mail.sysu.edu.cn,我們會在《自然語言處理導(dǎo)論》修訂時改正所有發(fā)現(xiàn)的錯誤。
沈 穎
沈穎,中山大學(xué)智能工程學(xué)院副教授,獲法國巴黎第十大學(xué)計(jì)算機(jī)博士學(xué)位。主要研究方向?yàn)橥ㄓ萌斯ぶ悄艿闹R計(jì)算與推理,在國防信息和醫(yī)學(xué)應(yīng)用領(lǐng)域獲得一系列有特色的成績。在IEEE TOC、TKDE、TNNLS、TIP、TAC和ACL、AAAI、IJCAI、SIGIR等人工智能領(lǐng)域的知名國際期刊和會議上發(fā)表相關(guān)論文100余篇;開源數(shù)十項(xiàng)研究工作代碼和6個數(shù)據(jù)集;授權(quán)專利16項(xiàng);授權(quán)軟件著作權(quán)15項(xiàng)。主持國家自然科學(xué)基金、國防科技173計(jì)劃技術(shù)領(lǐng)域基金項(xiàng)目、科技發(fā)展中心新一代信息技術(shù)創(chuàng)新項(xiàng)目、高教司項(xiàng)目等。曾獲歐盟優(yōu)秀碩士獎、法蘭西大島博士獎學(xué)金、巴黎大學(xué)博士一等榮譽(yù)畢業(yè)生、中國國家留學(xué)基金管理委員會優(yōu)秀海外留學(xué)生獎。多次擔(dān)任IJCAI、ACL等國際會議程序委員會委員,AAAI和SDM領(lǐng)域主席。
前言
第1章緒論
1.1基本概念
1.1.1語言學(xué)與語音學(xué)
1.1.2自然語言
1.1.3自然語言處理
1.2自然語言處理的發(fā)展歷程
1.2.1自然語言處理的發(fā)展歷史
1.2.2自然語言處理的研究現(xiàn)狀
1.2.3自然語言處理的發(fā)展前景
1.3自然語言處理的基本方法
1.3.1理性主義方法
1.3.2經(jīng)驗(yàn)主義方法
1.3.3對比分析
1.4自然語言處理的研究內(nèi)容
1.4.1文本分類
1.4.2信息抽取
1.4.3文本摘要
1.4.4智能問答
第2章語言模型
2.1語言模型概述
2.2n-gram統(tǒng)計(jì)語言模型
2.2.1何為n-gram模型
2.2.2n-gram語言模型評估詞序列
2.2.3n-gram統(tǒng)計(jì)語言模型的應(yīng)用
2.2.4n-gram模型中n對性能的影響
2.2.5n-gram模型小結(jié)
思考題
參考文獻(xiàn)
第3章神經(jīng)網(wǎng)絡(luò)和神經(jīng)語言模型
3.1人工神經(jīng)網(wǎng)絡(luò)和神經(jīng)語言模型
3.1.1人工神經(jīng)網(wǎng)絡(luò)
3.1.2神經(jīng)語言模型
3.2卷積神經(jīng)網(wǎng)絡(luò)
3.2.1卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)
3.2.2卷積神經(jīng)網(wǎng)絡(luò)的文本處理
3.3循環(huán)神經(jīng)網(wǎng)絡(luò)
3.4遞歸神經(jīng)網(wǎng)絡(luò)
3.4.1遞歸神經(jīng)網(wǎng)絡(luò)的前向計(jì)算
3.4.2遞歸神經(jīng)網(wǎng)絡(luò)的訓(xùn)練方法
思考題
參考文獻(xiàn)
第4章詞和語義向量
4.1離散分布表示
4.1.1獨(dú)熱表示法
4.1.2詞袋表示法
4.2分布式表示
4.2.1Word2vec
4.2.2矩陣分解
4.2.3GloVe
4.3文本特征選擇法
4.3.1基于文檔頻率的特征提取法
4.3.2 2統(tǒng)計(jì)量
4.3.3信息增益法
4.3.4互信息法
4.4特征權(quán)重計(jì)算方法
4.4.1布爾權(quán)重
4.4.2絕對詞頻
4.4.3TF-IDF
思考題
參考文獻(xiàn)
第5章預(yù)訓(xùn)練語言模型
5.1Transformer
5.2ELMo
5.3GPT
5.4BERT
5.5后BERT時代
思考題
參考文獻(xiàn)
第6章序列標(biāo)注
6.1馬爾可夫模型
6.2條件隨機(jī)場、維特比算法
6.2.1條件隨機(jī)場的原理解析
6.2.2條件隨機(jī)場的特性
6.3序列標(biāo)注任務(wù)
6.3.1自動分詞
6.3.2漢語自動分詞中的基本問題
6.3.3歧義切分問題
6.3.4未登錄詞問題
6.4漢語分詞方法
6.4.1基于詞頻度統(tǒng)計(jì)的分詞方法
6.4.2N-最短路徑方法
6.4.3基于詞的n元語法模型的分詞方法
6.4.4由字構(gòu)詞的漢語分詞方法
6.4.5基于詞感知機(jī)的漢語分詞方法
6.4.6基于字的生成式模型和區(qū)分式模型相結(jié)合的漢語分詞方法
6.4.7其他分詞方法
6.5詞性標(biāo)注
6.5.1詞性標(biāo)注概述
6.5.2基于規(guī)則的詞性標(biāo)注方法
6.5.3基于統(tǒng)計(jì)模型的詞性標(biāo)注方法
6.5.4統(tǒng)計(jì)方法與規(guī)則方法相結(jié)合的詞性標(biāo)注方法
6.5.5詞性標(biāo)注的一致性檢查
6.5.6技術(shù)評測
6.6命名實(shí)體識別
6.6.1基于條件隨機(jī)場的命名實(shí)體識別方法
6.6.2基于多特征的命名實(shí)體識別方法
6.6.3基于神經(jīng)網(wǎng)絡(luò)的命名實(shí)體識別方法
思考題
參考文獻(xiàn)
第7章語義分析
7.1詞義消歧
7.1.1有監(jiān)督的詞義消歧方法
7.1.2基于詞典的詞義消歧方法
7.1.3無監(jiān)督的詞義消歧方法
7.1.4詞義消歧系統(tǒng)評價
7.2語義角色標(biāo)注
7.2.1語義角色標(biāo)注基本方法
7.2.2語義角色標(biāo)注的領(lǐng)域適應(yīng)性問題
7.3雙語聯(lián)合語義角色標(biāo)注方法
7.3.1基本思路
7.3.2雙語聯(lián)合語義角色標(biāo)注方法系統(tǒng)實(shí)現(xiàn)
思考題
參考文獻(xiàn)
第8章文本分類
8.1文本分類概述
8.2傳統(tǒng)分類器設(shè)計(jì)
8.2.1樸素貝葉斯分類器
8.2.2基于支持向量機(jī)的分類器
8.2.3KNN法
8.2.4線性最小二乘擬合法
8.2.5決策樹分類器
8.3基于神經(jīng)網(wǎng)絡(luò)方法
8.3.1文本分析中的循環(huán)神經(jīng)網(wǎng)絡(luò)方法
8.3.2文本分析中的遞歸神經(jīng)網(wǎng)絡(luò)方法
8.4文本分類性能評測
思考題
參考文獻(xiàn)
第9章情感計(jì)算
9.1文檔或句子級情感計(jì)算方法
9.1.1情感詞典方法
9.1.2基于傳統(tǒng)機(jī)器學(xué)習(xí)的監(jiān)督情感分類
9.1.3深度神經(jīng)網(wǎng)絡(luò)方法
9.2屬性級情感分析
9.2.1意見挖掘和屬性抽取
9.2.2針對特定目標(biāo)的情感分析
9.2.3立場檢測
9.3其他情感分析任務(wù)
9.3.1諷刺識別
9.3.2多模態(tài)情感分析
思考題
參考文獻(xiàn)
第10章知識抽取
10.1知識抽取概述
10.2命名實(shí)體識別
10.2.1命名實(shí)體識別概述
10.2.2基于詞典及規(guī)則的方法
10.2.3基于機(jī)器學(xué)習(xí)的有監(jiān)督方法
10.2.4基于深度學(xué)習(xí)的方法
10.3實(shí)體鏈接
10.3.1實(shí)體鏈接概述
10.3.2通用解決框架
10.3.3實(shí)體鏈接數(shù)據(jù)集
10.4關(guān)系抽取
10.4.1關(guān)系抽取概述
10.4.2有監(jiān)督關(guān)系抽取
10.4.3遠(yuǎn)程監(jiān)督
10.4.4實(shí)體關(guān)系聯(lián)合抽取
10.4.5小樣本關(guān)系抽取
10.4.6開放域關(guān)系抽取
10.5事件抽取
10.5.1事件抽取概述
10.5.2基于模式匹配的方法
10.5.3基于機(jī)器學(xué)習(xí)的方法
10.5.4基于深度學(xué)習(xí)的方法
10.5.5事件抽取數(shù)據(jù)集
思考題
參考文獻(xiàn)
第11章統(tǒng)計(jì)機(jī)器翻譯和神經(jīng)機(jī)器翻譯
11.1機(jī)器翻譯概述
11.1.1機(jī)器翻譯的發(fā)展
11.1.2機(jī)器翻譯方法
11.1.3機(jī)器翻譯研究現(xiàn)狀
11.2基于HMM的詞對位模型
11.3基于短語的翻譯模型
11.4基于最大熵的翻譯模型
11.4.1對位模板與最大近似
11.4.2特征函數(shù)
11.4.3參數(shù)訓(xùn)練
11.5基于層次短語的翻譯模型
11.5.1概述
11.5.2模型描述和參數(shù)訓(xùn)練
11.5.3解碼方法
11.6樹翻譯模型
11.6.1樹到串的翻譯模型
11.6.2樹到樹的翻譯模型
11.6.3串到樹的翻譯模型
11.7樹模型的相關(guān)改進(jìn)
11.8基于謂詞論元結(jié)構(gòu)轉(zhuǎn)換的翻譯模型
11.9集外詞翻譯
11.9.1數(shù)字和時間表示的識別與翻譯
11.9.2普通集外詞的翻譯
11.10統(tǒng)計(jì)翻譯系統(tǒng)實(shí)現(xiàn)
11.11譯文質(zhì)量評估方法
11.11.1概述
11.11.2技術(shù)指標(biāo)
11.11.3相關(guān)