基於全文檢索系統實現文件系統相關推薦功能

2021-10-05 19:23:09 字數 1575 閱讀 3018

3、基於全文檢索系統實現文件系統推薦

1.1 編輯距離

編輯距離(levenshtein distance),是針對二個字串(例如英文本)的差異程度的量化量測,是 用來度量兩個序列相似程度的指標。編輯距離指的是在兩個字串之間,由乙個字串轉換為另乙個字串所需要的最少單字元編輯操作。

單字元編輯操作定義為:

例如,「kitten」 和 「sitting」 這兩個字串,由 「kitten」 轉換為 「sitting」 需要的最少單字元編輯操作有:

1.kitten → sitten (substitution of 「s」 for 「k」)

2.sitten → sittin (substitution of 「i」 for 「e」)

3.sittin → sitting (insertion of 「g」 at the end)

即二者之間的編輯距離為 3 。

2.1 文件指紋(simhash演算法)

simhash是一種區域性敏感hash(即locality sensitive hashing),是google在2023年發表的**中提到的一種指紋生成演算法,被應用在google搜尋引擎網頁去重的工作之中。simhash演算法主要的工作就是將文字進行降維,生成乙個simhash值,也就是**中所提及的「指紋」,通過對不同文字的simhash值進而比較海明距離,從而判斷兩個文字的相似度。

simhash演算法主要有五個過程:分詞、hash、加權、合併、降維。通過下圖來描述simhash演算法的整個過程:

hash:通過合適的hash函式演算法把每個詞變成相應的hash值;

加權: 通過hash步驟的hash生成結果,需要按照單詞的權重形成加權數字串;

合併: 把上面各個單詞算出來的序列值累加,變成只有乙個序列串;

2.2 文件相似度(海明距離)

對於文字去重這個問題,常見的解決辦法有余弦演算法、歐式距離、jaccard相似度、最長公共子串等方法。但是這些方法並不能對海量資料高效的處理。

2.3 海量文件處理技巧

基於文件指紋和海明距離即可計算出兩個文件的相似度,給定乙個文件,在文件庫中找到和該文件內容相似推薦轉化為找出和該文件指紋的海明距離較小的文件集合。

那麼,問題是如何基於文件指紋的海明距離從海量文件庫中快速找到相似推薦文件,在此,根據抽屜原理,對文件指紋做以下處理:

3.1 文件標題的搜尋推薦

文件構建時計算文件指紋,寫入文件索引字段,線上輸入文件標題,檢索文件對應的文件指紋,基於文件指紋構建查詢表示式,線上檢索相似文件給出推薦:

什麼是全文檢索與全文檢索系統

全文檢索是指計算機索引程式通過掃瞄文章中的每乙個詞,對每乙個詞建立乙個索引,指明該詞在文章中出現的次數和位置,當使用者查詢時,檢索程式就根據事先建立的索引進行查詢,並將查詢的結果反饋給使用者的檢索方式。這個過程類似於通過字典中的檢索字表查字的過程。全文檢索的方法主要分為按字檢索和按詞檢索兩種。按字檢...

面向機器翻譯的全文檢索系統

需要檢索的篇章,先分解成段落,並分別按段落精檢方法進行檢索。段落精檢允許一定 的模糊性。當兩個段落的結構特徵基本匹配後,進一步劃分句子,通過對句子進行相似 度的計算,最後判斷段落是否匹配。系統運用了動態規劃的方法計算句子的相似度。把待翻譯句子中的單詞列為i j平面的i軸上,例項句子中的單詞列為j軸上...

面向機器翻譯的全文檢索系統

摘 要 本文介紹了面向機器翻譯的全文檢索系統的設計和實現,該系統在實現倒排檔存 儲結構和布林邏輯檢索 位置檢索 檢索相關性排序等普通全文檢索系統功能的基礎上 提供面向機器翻譯的多層次檢索和跨語言檢索功能。針對機器翻譯中篇章 段落模糊 檢索的難題,本文提出了縮檢 精檢的方法,並通過對文件的特徵分析以及...