使用 C# 開發搜索引擎, 2/e

羅剛

  • 出版商: 清華大學
  • 出版日期: 2017-11-30
  • 售價: $408
  • 貴賓價: 9.5$388
  • 語言: 簡體中文
  • 頁數: 454
  • 裝訂: 平裝
  • ISBN: 7302484465
  • ISBN-13: 9787302484462
  • 相關分類: C 程式語言C#

立即出貨

買這商品的人也買了...

相關主題

商品描述

《使用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.5二叉搜索樹39 
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.8.1嵌入式數據庫79 
2.8.2布隆過濾器82 
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.4有限狀態機229 
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