日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

深入搜索引擎原理 搜索引擎其實也是一個什么系統(tǒng)( 二 )


通??梢酝ㄟ^文檔集頻率和維護停用詞表的方式來判斷停用詞 。
詞項處理
詞項處理,是指在原本的詞項上在做一些額外的處理,比如歸一化、詞形歸并、詞干還原等操作,以提高搜索的效果 。并不是所有的需求和業(yè)務(wù)都要詞項處理,需要根據(jù)場景來判斷 。
1.歸一化

  • USA - U.S.A. [縮寫]
  • 7月30日 - 7/30 [中英文]
  • color - colour [通假詞]
  • 開心 - 高興 [同義詞擴展范疇]
這樣查詢 U.S.A. 也能得到 USA 的結(jié)果,同義詞可以算作歸一化處理,不過同義詞還可以有其他的處理方式 。
2.詞形歸并(Lemmatization)
針對英語同一個詞有不同的形態(tài),可以做詞形歸并成一個,如:
  • am, are, is -> be
  • car, cars, car's, cars' -> car
  • the boy's cars are different colors -> the boy car be different color
3.詞干還原(Stemming)
通常指的就粗略的去除單詞兩端詞綴的啟發(fā)式過程
  • automate(s), automatic, automation -> automat.
  • 高高興興 -> 高興 [中文重疊詞還原]
  • 明明白白 -> 明白
英文的常見詞干還原算法,Porter算法 。
Part2、倒排索引要了解倒排索引,先看一下什么是正排索引 。比如有下面兩句話:
  • id1, “搜索引擎提供檢索服務(wù)”
  • id2, “搜索引擎是信息檢索系統(tǒng)”
正排索引
正排索引就是 MySQL 里的 B+ Tree,索引的結(jié)果是:
  • “搜索引擎是信息檢索系統(tǒng)” -> id2
  • “搜索引擎提供檢索服務(wù)” -> id1
表示對完整內(nèi)容按字典序排序,得到一個有序的列表,以加快檢索的速度 。
倒排索引
第一步 分詞
  • “搜索引擎-提供-檢索-服務(wù)” -> id1
  • “搜索引擎-信息-檢索-系統(tǒng)” -> id2
第二步 將分詞項構(gòu)建一個詞典
  • 搜索引擎
  • 提供
  • 檢索
  • 服務(wù)
  • 信息
  • 系統(tǒng)
第三步 構(gòu)建倒排鏈
  • 搜索引擎 -> id1, id2
  • 提供 -> id1
  • 檢索 -> id1, id2
  • 服務(wù) -> id1
  • 信息 -> id2
  • 系統(tǒng) -> id2
由此,一個倒排索引就完成了,搜索 “檢索” 時,得到 id1, id2,說明這兩條數(shù)據(jù)都有,搜索 “服務(wù)” 只有 id1 存在 。但如果搜索 “檢索系統(tǒng)”,此時會先建搜索詞按照與構(gòu)建同一種策略分詞,得到 “檢索-系統(tǒng)”,兩個詞項,分別搜索 檢索 -> id1, id2 和 系統(tǒng) -> id2,然后對其做一個交集,得到 id2 。同理,通過求并集可以支持更復(fù)雜的查詢 。
倒排索引到此也就講清楚了吧 。
存儲結(jié)構(gòu)
深入搜索引擎原理 搜索引擎其實也是一個什么系統(tǒng)


以 Lucene 為例,簡單說明一下 Lucene 的存儲結(jié)構(gòu) 。從大到小是Index -> Segment -> Doc -> Field -> Term,類比 MySQL 為 Database -> Table -> Record -> Field -> Value 。
Part 3、查詢結(jié)果排序搜索結(jié)果排序是根據(jù) 關(guān)鍵字 和 Document 的相關(guān)性得分排序,通常意義下,除了可以人工的設(shè)置權(quán)重 boost,也存在一套非常有用的相關(guān)性得分算法,看完你會覺得非常有意思 。
TF-IDF
TF(詞頻)-IDF(逆文檔頻率) 在自動提取文章關(guān)鍵詞上經(jīng)常用到,通過它可以知道某個關(guān)鍵字在這篇文檔里的重要程度 。其中 TF 表示某個 Term 在 Document 里出現(xiàn)的頻次,越高說明越重要;DF 表示在全部 Document 里,共有多少個 Document 出現(xiàn)了這個詞,DF 越大,說明這個詞很常見,并不重要,越小反而說明他越重要,IDF 是 DF 的倒數(shù)(取log),IDF 越大,表示這個詞越重要 。
TF-IDF 怎么影響搜索排序,舉一個實際例子來解釋:
假定現(xiàn)在有一篇博客《Blink 實戰(zhàn)總結(jié)》,我們要統(tǒng)計這篇文章的關(guān)鍵字,首先是對文章分詞統(tǒng)計詞頻,出現(xiàn)次數(shù)最多的詞是--"的"、"是"、"在",這些是“停用詞”,基本上在所有的文章里都會出現(xiàn),他對找到結(jié)果毫無幫助,全部過濾掉 。

推薦閱讀