搜索引擎結構
文本預處理
分詞
文本分詞一般是先將文本分成獨立的單詞,然後取出標點符號,去除停止詞,停止詞就是一些使用頻率高但是沒有實際意義的詞,比如:a、an、the、are等等
語言處理
對於英文來說,先是統一大小寫,再對單詞進行縮減,縮減過程主要有兩種,一種是詞幹提取,即抽取詞的詞幹或者詞根,如:tional 縮減爲 tion (去除形容詞後綴)二是詞形還原,即把詞彙還原成一般形式,如:books 縮減爲 book。
建立索引
經過文本預處理之後,得到的結果爲詞(Term),將得到的詞創建成字典,然後對字典按字母順序排序,最後合併相同的詞,形成文檔倒排表(Posting List),因爲這個表中,是根據詞來查找文檔的,所以稱爲文檔倒排表或者倒排索引。
搜索
根據用戶的輸入,進行詞法分析、語法分析、語言處理然後從文檔倒排表中獲取結果,爲了將最相關的結果顯示在最前面,需要對搜索結果做相關性排序。
相關性排序
把查詢語句也視爲一個文檔,查詢語句與文檔的相關性就轉變成了文檔之間的相關性問你題,而一個文檔中的每個詞對於表達一個主題的重要性不一樣,不同權重的詞共同表達了這個主題。
有兩個元素會影響一個詞在文檔中的重要性:一是詞頻率(Term Frequency,tf),表示一個詞在此文檔中出現的次數,它的值越大說明這個詞越重要;二是文檔頻率(Document Frequency,df),表示多少文檔中包含這個詞,它的值越大,說明這個詞越不重要。
以下公式用於計算一個詞的權重:
而衡量兩個文檔相似度可以將兩個文檔當成向量,向量夾角越小越靠近,也就是說文檔向量夾角越小,相似度越高,即相關性可以用以下公式來描述: