智能搜索:大數據搜索引擎原理及算法解析
內容描述
《智能搜索:大數據搜索引擎原理及算法解析》介紹大數據分佈式搜索引擎開發原理與技術實現,主要內容包括多種語言的文本處理、分佈式算法與代碼實現、Elasticsearch的使用與原理等,通過一個醫藥領域垂直搜索引擎和電商搜索來說明如何開發實際的大數據智能搜索引擎。《智能搜索:大數據搜索引擎原理及算法解析》共分6章,第1章著重介紹開發智能搜索引擎可以採用的軟硬件環境;第2~5章著重討論構建分佈式智能搜索引擎可能需要的多種語言文本處理方法,例如Kaldi語音識別實現和基於Raft共識協議的分佈式計算平臺實現;第6章介紹醫藥和電商搜索兩個應用案例。 《智能搜索:大數據搜索引擎原理及算法解析》適合作為高等院校電腦、軟件工程專業本科生、研究生的參考用書,對於對人工智能領域感興趣的人士也有一定的參考價值。
目錄大綱
第1章 智能搜索引擎開發 1
1.1 人工智能與智能搜索引擎 1
1.2 Linux操作系統基礎 2
1.2.1 SSH遠程登錄 2
1.2.2 Micro文本編輯器 4
1.2.3 Linux Shell腳本基礎 4
1.2.4 Shell腳本 5
1.2.5 AWK 8
1.3 Java基礎 8
1.3.1 使用Ant 9
1.3.2 使用Maven 11
1.3.3 使用Gradle 13
1.3.4 使用Groovy Shell 16
1.3.5 使用JShell 17
1.4 Python基礎 17
1.4.1 Windows下安裝Python 17
1.4.2 Linux下安裝Python 17
1.4.3 開發環境 18
1.5 C#基礎 19
1.6 硬件基礎 21
1.7 本章小結 22
第2章 搜索引擎理解語義 23
2.1 處理文本 23
2.2 基於文法的語言模型 24
2.3 正則表達式查找文本 25
2.4 中文詞語切分與詞性標註 27
2.4.1 使用中文分詞 28
2.4.2 正向最大長度匹配法 30
2.4.3 未登錄串識別 31
2.4.4 基本的N元模型 34
2.5 隱馬爾可夫模型 43
2.5.1 數據基礎 43
2.5.2 維特比算法 44
2.6 英文文本切分與標註 48
2.6.1 句子切分 48
2.6.2 標註詞性 50
2.7 命名實體識別 52
2.7.1 人名識別 52
2.7.2 人名識別規則 53
2.8 文本歸一化 61
2.9 依存樹模型 62
2.10 情感分析 63
2.11 本章小結 66
第3章 搜索引擎聽懂語音 67
3.1 語音識別總體結構 67
3.2 Kaldi快速入門 68
3.2.1 安裝Kaldi 69
3.2.2 yesno例子 69
3.2.3 數據準備 70
3.2.4 詞典準備 71
3.2.5 構建一個簡單的ASR 74
3.3 使用FFmpeg提取音頻 82
3.4 時間序列 82
3.5 動態時間規整 84
3.6 傅里葉變換 86
3.6.1 離散傅里葉變換 86
3.6.2 快速傅里葉變換 89
3.7 MFCC特徵 92
3.8 在線解碼 93
3.8.1 使用現成的模型 93
3.8.2 使用Alex-ASR 94
3.9 加權有限狀態轉換 95
3.9.1 FSA 96
3.9.2 FST 97
3.9.3 WFST 98
3.10 語音識別語料庫 99
3.10.1 TIMIT語音庫 99
3.10.2 中文語音庫 99
3.11 本章小結 100
第4章 Elasticsearch分佈式搜索引擎 101
4.1 搭建Elasticsearch集群 101
4.2 索引數據 103
4.3 實現搜索接口 107
4.4 搜索界面開發 108
4.4.1 使用Spring Boot開發搜索界面 109
4.4.2 使用.NET開發搜索界面 132
4.5 檢索模型 142
4.5.1 使用BM25檢索模型 146
4.5.2 參數調優 146
4.6 搜索中文優化 147
4.7 Elasticsearch源代碼分析 152
4.7.1 導入源代碼到Eclipse 152
4.7.2 Guice框架 152
4.7.3 Netty異步IO框架 154
4.7.4 分佈式設計與實現 155
4.7.5 使用Lucene 156
4.8 本章小結 159
第5章 分佈式計算平台 160
5.1 Atomix框架 160
5.1.1 Raft協議 160
5.1.2 使用Atomix 162
5.2 gRPC框架 164
5.3 本章小結 167
第6章 智能搜索案例分析 168
6.1 醫藥垂直搜索引擎 168
6.1.1 網絡爬蟲 169
6.1.2 抓取PubMed 177
6.1.3 MVC搜索界面開發 179
6.1.4 構建知識庫 183
6.1.5 自動問答 185
6.2 電商搜索 188
6.2.1 電商爬蟲 188
6.2.2 商品搜索 192
6.2.3 在線客服 195
6.3 本章小結 198
參考文獻 199
作者介紹
沙芸,北京石油化工學院信息工程學院計算機系副主任,工學博士,副教授,碩士生導師,IEEE會員,北京市拔尖人才。多年從事圖像處理、模式識別、數據挖掘等領域的研究,主持北京市教委項目,參與多項國家自然基金等縱向課題,作為骨幹參與多項橫向課題。發表論文多篇,其中EI檢索15篇,軟件著作權一部。