使用C#開發搜尋引擎(第2版)

使用C#開發搜尋引擎(第2版)

《使用C#開發搜尋引擎(第2版)》是2018年1月清華大學出版社出版的圖書,作者是羅剛。

基本介紹

  • 書名:使用C#開發搜尋引擎(第2版)
  • 作者:羅剛
  • 出版社:清華大學出版社
  • 出版時間:2018年1月
  • 定價:68 元
  • ISBN:9787302484462
內容簡介,作者簡介,圖書目錄,

內容簡介

《使用C#開發搜尋引擎(第2版)》介紹如何以C#作為工具開發智慧型搜尋引擎系統。
《使用C#開發搜尋引擎(第2版)》是一本介紹業界熱門的Lucene.NET、使用WebBrowser做爬蟲以及結合Solr/ElasticSearch開發ASP.NET搜尋的書籍。書中從網路爬蟲抓取數據開始;然後介紹中文分詞、文本排重等文本挖掘技術和搜尋結果展現;最後介紹線上智慧型客服(聊天機器人)開發框架。從C#語法開始,逐漸深入,是零基礎實踐面向未來的智慧型軟體開發的首選。
對於學習複雜數據結構和自然語言處理相關套用開發也有參考價值。

作者簡介

羅剛,計算機軟體碩士,畢業於吉林工業大學。2005年創立北京盈智星科技發展有限公司,2008年聯合創立上海數聚軟體公司。獵兔搜尋創始人,當前獵兔搜尋在北京和上海以及石家莊均設有研發部。帶領獵兔搜尋技術開發團隊先後開發出獵兔中文分詞系統、獵兔文本挖掘系統,智慧型垂直搜尋系統以及網路信息監測系統等,實現網際網路信息的採集、過濾、搜尋和實時監測,其開發的搜尋軟體日用戶訪問量達萬次以上。

圖書目錄

第1章 使用C#開發搜尋引擎
快速入門 1
1.1 各種搜尋引擎 2
1.1.1 通用搜尋 3
1.1.2 垂直搜尋 3
1.1.3 站內搜尋 4
1.2 搜尋引擎的整體結構 4
1.3 搜尋引擎的基本技術 5
1.3.1 網路爬蟲 5
1.3.2 文本挖掘 5
1.3.3 全文索引 6
1.3.4 搜尋語法介紹 8
1.3.5 搜尋用戶界面 8
1.4 C#開發快速入門 9
1.4.1 準備開發環境 9
1.4.2 基本語法 9
1.4.3 多維數組 11
1.4.4 位運算 11
1.4.5 枚舉類型 12
1.4.6 面向對象 13
1.4.7 字元串 15
1.4.8 讀寫檔案 16
1.4.9 集合類 17
1.4.10 泛型 20
1.4.11 委託和事件 21
1.4.12 lambda表達式 24
1.4.13 單元測試 24
1.4.14 擴展方法 25
1.4.15 類庫 26
1.5 算法基礎 26
1.5.1 雙端佇列 27
1.5.2 散列表 31
1.5.3 單鍊表 36
1.5.4 標準Trie樹 37
1.5.6 三叉Trie樹 41
1.5.7 平衡Trie樹 46
1.6 本章小結 48
1.7 術語表 48
第2章 使用C#開發網路爬蟲 51
2.1 網路爬蟲抓取原理 52
2.2 爬蟲架構 54
2.2.1 基本架構 54
2.2.2 分散式爬蟲架構 56
2.2.3 垂直爬蟲架構 57
2.3 下載網頁 58
2.3.1 HTTP協定 58
2.3.2 下載靜態網頁 61
2.3.3 下載動態網頁 65
2.4 執行緒池 73
2.5 網路爬蟲的遍歷與實現 75
2.6 網站地圖 77
2.7 連線池 78
2.8 URL地址查新 79
2.9 抓取RSS 84
2.10 解析相對地址 86
2.11 網頁更新 86
2.12 信息過濾 89
2.13 垂直行業抓取 94
2.14 抓取限制應對方法 94
2.14.1 更換IP位址 94
2.14.2 抓取需要登錄的網頁 98
2.14.3 抓取ASP.NET網頁 100
2.15 保存信息 103
2.15.1 存入資料庫 103
2.15.2 存成圖像 104
2.16 日誌 105
2.17 本章小結 108
2.18 術語表 108
第3章 索引各種格式文檔 113
3.1 從HTML檔案中提取信息 114
3.1.1 識別網頁的編碼 114
3.1.2 正則表達式 116
3.1.3 Html Agility Pack介紹 120
3.1.4 NSoup介紹 124
3.1.5 網頁正文提取 124
3.1.6 結構化信息提取 137
3.1.7 查看網頁的DOM結構 140
3.1.8 網頁結構相似度計算 141
3.2 從非HTML檔案中提取文本 143
3.2.1 TEXT檔案 144
3.2.2 PDF檔案 144
3.2.3 Office檔案 146
3.2.4 Rtf檔案 147
3.3 OCR 148
3.3.1 字形識別 149
3.3.2 圖像二值化 149
3.4 本章小結 153
3.5 術語表 154
第4章 自然語言處理 155
4.1 統計機器學習 156
4.2 協同推薦 157
4.3 文檔排重 163
4.3.1 生成SimHash 164
4.3.2 查找SimHash 166
4.3.3 用於短文本排重 170
4.4 中文關鍵字提取 170
4.4.1 關鍵字提取的基本方法 171
4.4.2 從網頁中提取關鍵字 174
4.5 相關搜尋 174
4.6 拼寫檢查 175
4.6.1 拼寫檢查的機率模型 176
4.6.2 模糊匹配問題 176
4.6.3 英文拼寫檢查 180
4.6.4 中文拼寫檢查 183
4.7 文本摘要 184
4.7.1 文本摘要的設計 184
4.7.2 實現文本摘要技術 185
4.7.3 Lucene.NET中的動態摘要 190
4.8 文本分類 191
4.8.1 自動分類的接口定義 191
4.8.2 自動分類的實現 191
4.9 自動聚類 197
4.9.1 文檔相似度 197
4.9.2 K均值聚類方法 201
4.9.3 K均值實現 202
4.10 拼音轉換 204
4.11 句法分析樹 204
4.12 信息提取 211
4.12.1 信息提取的規則及其實現 211
4.12.2 提取地域信息 219
4.13 本章小結 221
4.14 術語表 221
第5章 用C#實現中文分詞 223
5.1 詞 224
5.2 文本切分的基本方法 224
5.3 地名切分 226
5.3.1 地址類型標註 227
5.3.2 未登錄詞識別 227
5.5 查找詞典算法 231
5.6 中文分詞的原理 232
5.6.1 正向最大長度匹配法 232
5.6.2 逆向最大長度匹配法 236
5.6.3 處理未登錄串 240
5.7 中文分詞的流程與結構 241
5.8 切分詞圖 243
5.8.1 保存切分詞圖 243
5.8.2 生成全切分詞圖 247
5.9 機率語言模型的分詞方法 250
5.9.1 準備數據 251
5.9.2 一元模型 252
5.9.3 N元模型 257
5.10 最大熵 262
5.11 未登錄詞識別 264
5.12 詞性標註 264
5.12.1 隱馬爾科夫模型 266
5.12.2 實現詞性標註 271
5.13 本章小結 275
5.14 術語表 276
第6章 Lucene.NET原理與套用 277
6.1 Lucene.NET快速入門 278
6.1.1 索引文檔 278
6.1.2 搜尋文檔 280
6.1.3 Lucene.NET結構 281
6.2 Lucene.NET深入介紹 282
6.2.1 索引原理 282
6.2.2 分析文本 285
6.2.3 遍歷索引庫 288
6.2.4 布爾查詢原理 289
6.2.5 檢索模型 290
6.2.6 收集最相關的文檔 291
6.3 索引中的壓縮算法 296
6.3.1 變長壓縮 296
6.3.2 差分編碼 298
6.4 創建和維護索引庫 299
6.4.1 設計一個簡單的索引庫 299
6.4.2 創建索引庫 300
6.4.3 向索引庫中添加索引文檔 301
6.4.4 刪除索引庫中的索引文檔 303
6.4.5 更新索引庫中的索引文檔 304
6.4.6 索引的最佳化與合併 304
6.5 查找索引庫 305
6.5.1 布爾查詢 306
6.5.2 同時查詢多列 307
6.5.3 跨度查詢 308
6.5.4 通配符查詢 312
6.5.5 過濾 312
6.5.6 按指定列排序 313
6.5.7 查詢大容量索引 318
6.5.8 函式查詢 320
6.5.9 定製相似度 323
6.5.10 評價搜尋結果 325
6.6 中文信息檢索 325
6.6.1 Lucene.NET中的中文處理 326
6.6.2 Lietu中文分詞的使用 326
6.6.3 定製Tokenizer 328
6.6.4 解析查詢串 329
6.6.5 實現字詞混合索引 333
6.7 抓取資料庫中的內容 336
6.7.1 讀取數據 337
6.7.2 數據同步 338
6.8 與爬蟲集成 338
6.9 概念搜尋 341
6.10 本章小結 344
6.11 術語表 345
第7章 實現搜尋用戶界面 347
7.1 搜尋頁面設計 348
7.1.1 用於顯示搜尋結果的
ASP.NET 348
7.1.2 搜尋結果條 351
7.1.3 搜尋結果分頁 351
7.1.4 設計一個簡單的搜尋頁面 352
7.2 實現搜尋接口 353
7.2.1 Lucene.NET搜尋接口 353
7.2.2 指定範圍搜尋 357
7.2.3 搜尋頁面的索引快取與
更新 358
7.3 實現關鍵字高亮顯示 361
7.4 實現分類統計視圖 362
7.4.1 搜尋結果分類統計與導航 363
7.4.2 層次樹 366
7.5 相關搜尋詞 368
7.6 實現AJax自動完成 369
7.6.1 總體結構 370
7.6.2 伺服器端處理 371
7.6.3 瀏覽器端處理 372
7.7 集成其他功能 374
7.7.1 拼寫檢查 374
7.7.2 再次查找 374
7.7.3 黑名單 375
7.7.4 搜尋日誌 376
7.8 本章小結 377
第8章 使用Solr開發網站搜尋 379
8.1 搜尋伺服器端 380
8.1.1 Solr的結構 380
8.1.2 啟動Solr伺服器 381
8.1.3 開發支持Solr的中文分詞 384
8.1.4 中文的Solr 385
8.1.5 索引數據 388
8.1.6 查詢功能 389
8.1.7 高亮顯示 392
8.2 Solr的.NET客戶端 393
8.2.1 使用Solrnet 393
8.2.2 查詢 396
8.2.3 分類統計 397
8.2.4 ASP.NET中使用Solrnet 401
8.2.5 刪除數據 405
8.2.6 從資料庫索引數據 405
8.2.7 翻頁 408
8.2.8 實現多分類 411
8.3 查詢語法 412
8.3.1 對空格的支持 413
8.3.2 日期加權 413
8.4 索引分布 415
8.5 本章小結 417
第9章 Elasticsearch開發分
布式搜尋 419
9.1 搜尋集群 421
9.2 安裝 422
9.3 ES的.NET客戶端 429
9.3.1 連線搜尋伺服器 429
9.3.2 創建索引 430
9.3.3 插入數據 431
9.4 查詢 432
9.4.1 布爾查詢 433
9.4.2 嵌套類型和嵌套查詢 434
9.4.3 查詢結果 437
9.4.4 過濾器 437
9.5 高亮顯示 437
9.6 分頁 442
9.7 本章小結 442
第10章 線上客服案例分析 445
10.1 使用WebSocket 446
10.2 知識庫 447
10.3 自動問答 449
10.4 本章小結 453
參考資源 455

相關詞條

熱門詞條

聯絡我們