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