這是一本講述如何用NLP技術(shù)進(jìn)行文本內(nèi)容理解的著作,也是一本系統(tǒng)講解NLP算法的著作,是作者在NLP和內(nèi)容理解領(lǐng)域多年經(jīng)驗(yàn)的總結(jié)。
本書結(jié)合內(nèi)容理解的實(shí)際業(yè)務(wù)場(chǎng)景,系統(tǒng)全面、循序漸進(jìn)地講解了各種NLP算法以及如何用這些算法高效地解決內(nèi)容理解方面的難題,主要包括如下幾個(gè)方面的內(nèi)容:
(1)文本特征表示
文本特征表示是NLP的基石,也是內(nèi)容理解的基礎(chǔ)環(huán)節(jié),本書詳細(xì)講解了離散型表示方法和分布型表示方法等特征表示方法及其應(yīng)用場(chǎng)景,還講解了詞向量的評(píng)判標(biāo)準(zhǔn)。
(2)內(nèi)容重復(fù)理解
詳細(xì)講解了標(biāo)題重復(fù)、段落重復(fù)、文章重復(fù)的識(shí)別方法和去重算法。
(3)內(nèi)容通順度識(shí)別及糾正
詳細(xì)講解了內(nèi)容通順度的識(shí)別方法以及糾正不通順內(nèi)容的方法。
(4)內(nèi)容質(zhì)量
詳細(xì)講解了多種內(nèi)容質(zhì)量相關(guān)的算法,以及如何搭建高質(zhì)量的知識(shí)問(wèn)答體系的流程。
(5)標(biāo)簽體系構(gòu)建
詳細(xì)講解了針對(duì)內(nèi)容理解的標(biāo)簽體系的建設(shè)流程和方法,以及多種相關(guān)算法。
(6)文本摘要生成
詳細(xì)講解了抽取式文本摘要和生成式文本摘要兩種流行的文本摘要生成方法,以及文本摘要的常用數(shù)據(jù)集和文本摘要評(píng)價(jià)方法。
(7)文本糾錯(cuò)
詳細(xì)講解了文本糾錯(cuò)的傳統(tǒng)方法、深度學(xué)習(xí)方法、工業(yè)界解決方案,以及常用的文本糾錯(cuò)工具的安裝和使用。
(1)作者背景資深:作者是資深A(yù)I技術(shù)專家,BAT高級(jí)算法工程師。
(2)作者經(jīng)驗(yàn)豐富:作者在NLP、內(nèi)容理解等領(lǐng)域有多年實(shí)踐經(jīng)驗(yàn)。
(3)揭秘大模型:揭秘大模型的底層技術(shù)原理,詳解文本內(nèi)容理解和生產(chǎn)的技術(shù)細(xì)節(jié)。
(4)解決6大難題:為內(nèi)容重復(fù)理解、內(nèi)容通順度識(shí)別及糾正、內(nèi)容質(zhì)量、標(biāo)簽體系構(gòu)建、文本摘要生成、文本糾錯(cuò)6大內(nèi)容理解難題提供基于NLP的解決方案。
(5)結(jié)合業(yè)務(wù)場(chǎng)景:所有內(nèi)容、技術(shù)、算法均從實(shí)際業(yè)務(wù)場(chǎng)景出發(fā),從問(wèn)題的角度拆解問(wèn)題。
(6)大量NLP算法:書中系統(tǒng)講解了可用于內(nèi)容理解的各種NLP算法的原理和使用。
(7)包含大量案例:以實(shí)戰(zhàn)為導(dǎo)向,用案例貫穿全書。
Preface
前 言
為何寫作本書
隨著人工智能的蓬勃發(fā)展,大量應(yīng)用場(chǎng)景中都會(huì)涉及文本的內(nèi)容理解技術(shù)。由于場(chǎng)景不同,目前文本內(nèi)容理解沒(méi)有統(tǒng)一的模板,解決起來(lái)并不容易。市場(chǎng)上有各種各樣的機(jī)器學(xué)習(xí)、深度學(xué)習(xí)、自然語(yǔ)言處理等資料,但是都沒(méi)有與業(yè)務(wù)場(chǎng)景緊密地聯(lián)系起來(lái),即使有聯(lián)系也很籠統(tǒng),并沒(méi)有涉及實(shí)際業(yè)務(wù)場(chǎng)景中非,嵥榈募(xì)節(jié)問(wèn)題。而只有把這些細(xì)節(jié)問(wèn)題解決好,才能更好地發(fā)展業(yè)務(wù)。同時(shí),市面上從問(wèn)題的角度講解算法等相關(guān)知識(shí)的書很少,而在業(yè)務(wù)場(chǎng)景中更多的是通過(guò)簡(jiǎn)單且匹配的技術(shù)解決業(yè)務(wù)問(wèn)題。所以,我想把如何從問(wèn)題的角度拆解問(wèn)題,然后通過(guò)匹配的技術(shù)解決業(yè)務(wù)問(wèn)題的方法分享給大家。
在很多人眼里,寫書是一件很困難的事情。不過(guò)我很想挑戰(zhàn)一下,想在這種痛苦的煎熬之后,榨干自己的思想,交上一份滿意的答卷。而且我一直堅(jiān)信寫書是一件非常有意義的事情,不僅能將自己積淀的知識(shí)固化下來(lái),還能在回顧技術(shù)的過(guò)程中閃現(xiàn)更多新的想法。最最重要的是,我覺(jué)得把自己的技術(shù)經(jīng)驗(yàn)、業(yè)務(wù)經(jīng)驗(yàn)、深度思考等分享給更多的人,讓更多的人可以站在前人的經(jīng)驗(yàn)上繼續(xù)前行,是一件無(wú)私且偉大的事情。
這本書是我和自己讀研時(shí)期的摯友共同完成的。寫書不僅加深了我們之間的友誼,還讓我們更加堅(jiān)信,科技可以改變世界。
本書讀者對(duì)象
1)統(tǒng)計(jì)學(xué)及相關(guān)專業(yè)的學(xué)生、IT從業(yè)者。本書的初衷是幫助從業(yè)者及相關(guān)專業(yè)的學(xué)生擁有大量理論知識(shí)卻缺乏實(shí)戰(zhàn)經(jīng)驗(yàn)的人員,將理論知識(shí)和實(shí)踐聯(lián)動(dòng)起來(lái),以更好地解決業(yè)務(wù)問(wèn)題,達(dá)到對(duì)算法、技術(shù)、業(yè)務(wù)場(chǎng)景中的問(wèn)題知其然且知其所以然的目的。
2)信息科學(xué)和計(jì)算機(jī)科學(xué)愛(ài)好者。對(duì)于信息科學(xué)和計(jì)算機(jī)科學(xué)愛(ài)好者來(lái)說(shuō),本書也是一本全面了解人工智能領(lǐng)域的應(yīng)用、技術(shù)、場(chǎng)景的指南,書中沒(méi)有太多晦澀難懂的數(shù)學(xué)公式,而是通過(guò)業(yè)務(wù)中的問(wèn)題思考技術(shù)的使用。
3)人工智能相關(guān)專業(yè)的研究人員。
本書主要內(nèi)容
自然語(yǔ)言處理的目的是讓計(jì)算機(jī)能夠理解人類的語(yǔ)言。本書旨在從文本內(nèi)容理解的角度入手,詳細(xì)介紹文本特征表示、內(nèi)容重復(fù)理解、內(nèi)容通順度識(shí)別及糾正、內(nèi)容質(zhì)量、標(biāo)簽體系、文本摘要生成及文本糾錯(cuò)等內(nèi)容。本書采用以應(yīng)用貫穿始終的方式進(jìn)行相關(guān)技術(shù)的介紹和說(shuō)明。
具體來(lái)說(shuō),本書主要從以下幾個(gè)方面介紹自然語(yǔ)言處理中的相關(guān)技術(shù)及其應(yīng)用。
第1章詳細(xì)介紹了文本特征的表示方法,包括離散型特征表示方法與分布型特征表示方法,以及詞向量的評(píng)判標(biāo)準(zhǔn)。
第2章主要從應(yīng)用的角度介紹了標(biāo)題、段落和文章重復(fù)三種場(chǎng)景以及三種場(chǎng)景的具體實(shí)現(xiàn)。
第3章介紹了數(shù)據(jù)增強(qiáng)方法、句子通順度識(shí)別方法以及糾正不通順內(nèi)容的方法。
第4章從應(yīng)用的角度詳細(xì)介紹了知識(shí)問(wèn)答質(zhì)量體系的搭建方法,方便大家后續(xù)在業(yè)務(wù)中快速實(shí)踐。
第5章主要講述了標(biāo)簽體系的原理及構(gòu)建過(guò)程中用到的3種主要算法。
第6章介紹了文本摘要生成中兩類流行的方法,包括抽取式文本摘要和生成式文本摘要,還介紹了文本摘要的幾種常用數(shù)據(jù)集以及文本摘要的評(píng)價(jià)方法。
第7章介紹了文本中錯(cuò)誤的類型、來(lái)源,文本糾錯(cuò)常用的方法與框架,并介紹了常用的文本糾錯(cuò)工具的安裝以及使用方法。
本書內(nèi)容特色
本書的特色在于詳細(xì)且全面地介紹了目前流行的NLP算法,給出了豐富的理論知識(shí),并結(jié)合代碼進(jìn)行講解,以帶領(lǐng)讀者更好地理解算法。另外書中還介紹了如何在實(shí)際業(yè)務(wù)中高效地解決問(wèn)題,使讀者站在更高的角度,更加全面且具體地了解NLP技術(shù)。
資源和勘誤
由于作者水平有限,書中難免存在一些錯(cuò)誤或者不準(zhǔn)確的地方,懇請(qǐng)讀者批評(píng)指正。讀者可通過(guò)發(fā)送電子郵件到617803337@qq.com反饋建議或意見(jiàn)。
致謝
感謝家人對(duì)我的理解和支持。當(dāng)我有出版一本書的想法的時(shí)候,他們一直鼓勵(lì)我,相信我是在做一件非常有意義的事情。
感謝我的摯友谷雪、孟子堯、張朋莉愿意和我一起做這件有趣的事情。在與大家合作的過(guò)程中我成長(zhǎng)了很多。
感謝穎穎老師對(duì)我的厚愛(ài),范紅星對(duì)我的陪伴,感謝我生命中的所有老師及讓我成長(zhǎng)的人。
感謝機(jī)械工業(yè)出版社的出版工作者。有了大家的辛勤付出,本書才得以順利面世。
這本書是友誼、工作以及科研成果的結(jié)晶,也是我們并肩作戰(zhàn)的見(jiàn)證,希望它可以將我們的實(shí)踐經(jīng)驗(yàn)、科研經(jīng)驗(yàn)固化下來(lái),幫助更多的人少走彎路,更快地成長(zhǎng)。
謹(jǐn)以此書獻(xiàn)給我們的青春,獻(xiàn)給熱愛(ài)算法并為之奮斗的朋友們。因?yàn)橄嘈,所以?jiān)定。
李明琦
李明琦
資深A(yù)I技術(shù)專家,現(xiàn)就職于BAT,擔(dān)任高級(jí)算法工程師。長(zhǎng)期致力于機(jī)器學(xué)習(xí)、深度學(xué)習(xí)、NLP等技術(shù)在實(shí)際業(yè)務(wù)場(chǎng)景中的落地,在內(nèi)容理解方面有豐富的經(jīng)驗(yàn),主導(dǎo)的內(nèi)容質(zhì)量項(xiàng)目曾獲得最佳項(xiàng)目獎(jiǎng)。
先后發(fā)表人工智能相關(guān)的學(xué)術(shù)論文2篇,申請(qǐng)人工智能領(lǐng)域的發(fā)明專利5項(xiàng)。在GitHub上貢獻(xiàn)了大量?jī)?nèi)容質(zhì)量、問(wèn)答系統(tǒng)、NLP等方面的代碼,在CSDN撰寫了一些與算法、機(jī)器學(xué)習(xí)、內(nèi)容理解相關(guān)的文章,深受歡迎。
谷 雪
現(xiàn)為葡萄牙米尼奧大學(xué)博士生,涉及的研究領(lǐng)域?yàn)樯窠?jīng)架構(gòu)搜索、自然語(yǔ)言處理、情感分析,博士期間著力于細(xì)粒度情感原因提取。先后發(fā)表過(guò)學(xué)術(shù)論文2篇,其中一篇是神經(jīng)架構(gòu)搜索的綜述,另一篇是基于進(jìn)化策略的神經(jīng)架構(gòu)演化方法。在GitHub上貢獻(xiàn)了大量深度學(xué)習(xí)、機(jī)器學(xué)習(xí)代碼,在CSDN上分享了服務(wù)器配置、數(shù)據(jù)分析、圖像去噪、情感分析等方向的多篇文章。
孟子堯
在人工智能技術(shù)領(lǐng)域有非常深厚的積累,擅長(zhǎng)機(jī)器學(xué)習(xí)和深度學(xué)習(xí),尤其是深度學(xué)習(xí)中的圖像分類和自然語(yǔ)言處理等技術(shù)。熱衷于開源的應(yīng)用和推廣,在GitHub和CSDN上貢獻(xiàn)了許多代碼和文章。在《計(jì)算機(jī)研究與發(fā)展》上發(fā)表過(guò)1篇人工智能相關(guān)論文。
CONTENTS
目 錄
前言
第1章 文本特征表示 1
1.1 語(yǔ)料與語(yǔ)料預(yù)處理 1
1.1.1 語(yǔ)料和語(yǔ)料庫(kù) 1
1.1.2 語(yǔ)料預(yù)處理 2
1.2 文本特征表示方法 6
1.2.1 離散型特征表示方法 6
1.2.2 分布型特征表示方法 13
1.3 詞向量的評(píng)判標(biāo)準(zhǔn) 29
1.3.1 內(nèi)部評(píng)估 29
1.3.2 外在評(píng)估 31
1.4 本章小結(jié) 34
第2章 內(nèi)容重復(fù)理解 35
2.1 標(biāo)題重復(fù) 35
2.1.1 標(biāo)題符號(hào)規(guī)整化處理 36
2.1.2 Jieba分詞 39
2.1.3 LAC分詞 43
2.1.4 基于分詞及字符串等
方式進(jìn)行重復(fù)識(shí)別 45
2.2 段落重復(fù)識(shí)別實(shí)例 47
2.2.1 段落重復(fù)識(shí)別 47
2.2.2 基于N-gram算法進(jìn)行
內(nèi)容去重 48
2.2.3 平滑處理技術(shù) 54
2.3 基于相似度計(jì)算的文章判重 57
2.3.1 文本相似度計(jì)算任務(wù)
的分析 57
2.3.2 距離度量方式 58
2.3.3 基于SimHash算法進(jìn)行
文本重復(fù)檢測(cè) 62
2.4 本章小結(jié) 66
第3章 內(nèi)容通順度識(shí)別及糾正 67
3.1 數(shù)據(jù)增強(qiáng) 67
3.2 基于FastText算法的句子
通順度識(shí)別 73
3.2.1 CBOW模型 74
3.2.2 FastText算法原理 75
3.2.3 FastText算法實(shí)戰(zhàn) 81
3.3 基于TextCNN算法的分類
任務(wù)實(shí)現(xiàn) 93
3.3.1 專有名詞簡(jiǎn)介 93
3.3.2 算法介紹 94
3.3.3 參數(shù)調(diào)優(yōu)經(jīng)驗(yàn)總結(jié) 96
3.3.4 基于Keras工具實(shí)現(xiàn)TextCNN算法 96
3.4 基于TextRNN算法的分類
任務(wù)實(shí)現(xiàn) 98
3.4.1 LSTM和BiLSTM 98
3.4.2 TextCNN和TextRNN
識(shí)別效果對(duì)比 105
3.5 基于Seq2Seq模型的
糾正策略 106
3.5.1 Seq2Seq模型原理 106
3.5.2 糾正不通順句子的方法 108
3.6 本章小結(jié) 114
第4章 內(nèi)容質(zhì)量 116
4.1 GBDT算法 116
4.1.1 GBDT算法概述 117
4.1.2 負(fù)梯度擬合 117
4.1.3 GBDT回歸算法 118
4.1.4 GBDT分類算法 119
4.2 XGBoost算法 121
4.2.1 從GBDT到XGBoost 121
4.2.2 XGBoost損失函數(shù) 122
4.2.3 XGBoost損失函數(shù)的
優(yōu)化求解 124
4.2.4 XGBoost算法流程 125
4.2.5 XGBoost算法參數(shù)
及調(diào)優(yōu) 127
4.3 知識(shí)問(wèn)答質(zhì)量體系的搭建 129
4.3.1 知識(shí)問(wèn)答質(zhì)量體系
建立的意義 130
4.3.2 整體的項(xiàng)目實(shí)施方案 130
4.3.3 知識(shí)問(wèn)答質(zhì)量體系
搭建流程 133
4.4 本章小結(jié) 142
第5章 標(biāo)簽體系構(gòu)建 143
5.1 標(biāo)簽體系 143
5.1.1 標(biāo)簽體系的重要性 143
5.1.2 標(biāo)簽體系的分類 144
5.1.3 構(gòu)建標(biāo)簽體系 146
5.2 TF-IDF算法 151
5.2.1 TF-IDF算法介紹 151
5.2.2 TF-IDF算法實(shí)現(xiàn) 152
5.3 PageRank算法 155
5.4 TextRank算法 163
5.4.1 TextRank算法的使用
場(chǎng)景 164
5.4.2 TextRank算法的
優(yōu)缺點(diǎn) 168
5.5 本章小結(jié) 168
第6章 文本摘要生成 169
6.1 文本摘要相關(guān)介紹 169
6.1.1 文本摘要問(wèn)題定義 169
6.1.2 文本摘要分類 170
6.1.3 文本摘要的技術(shù)和方法 170
6.2 基于無(wú)監(jiān)督的抽取式文本摘要 172
6.2.1 基于經(jīng)驗(yàn)的文本摘要 173
6.2.2 基于主題模型的
文本摘要 175
6.2.3 基于圖的文本摘要 182
6.2.4 基于特征評(píng)分的
文本摘要 185
6.2.5 基于聚類的文本摘要 188
6.3 基于有監(jiān)督的抽取式文本摘要 191
6.4 基于深度神經(jīng)網(wǎng)絡(luò)的生成式
文本摘要 201
6.5 文本摘要常用數(shù)據(jù)集 210
6.6 文本摘要評(píng)價(jià)方法 211
6.6.1 自動(dòng)評(píng)價(jià)方法 211
6.6.2 人工評(píng)價(jià)方法 213
6.7 本章小結(jié) 213
第7章 文本糾錯(cuò) 214
7.1 錯(cuò)誤來(lái)源及類型 214
7.2 文本糾錯(cuò)的3種傳統(tǒng)方法 215
7.2.1 模板匹配 215
7.2.2 編輯距離匹配 216
7.2.3 HANSpeller 框架 217
7.3 文本糾錯(cuò)深度學(xué)習(xí)方法 220
7.3.1 英文文本糾錯(cuò)方法 220
7.3.2 中文文本糾錯(cuò)方法 224
7.4 工業(yè)界解決方法 233
7.4.1 3階段級(jí)聯(lián)的糾錯(cuò)方案 234
7.4.2 符合多種場(chǎng)景的通用
糾錯(cuò)方案 236
7.4.3 保險(xiǎn)文本的糾錯(cuò)方案 237
7.5 文本糾錯(cuò)工具 239
7.5.1 pycorrector 239
7.5.2 xmnlp 240
7.6 本章小結(jié) 242