Soundex音似搜尋的編碼規則

2021-10-21 14:51:38 字數 952 閱讀 9366

總結soundex是乙個將單詞編碼為1個字母+3個數字(不足部零)的演算法,它將發音相近的單詞對映到同乙個編碼,能有效地搜尋到發音相似或相近的單詞。

例如:love的編碼為l010,live的編碼為l010

假設使用者搜尋"my love"卻錯誤地輸入了"my live",那麼soundex依然能匹配到正確的結果。

soundex只能對字母進行編碼,因此預處理掉單詞中的非字母字元,如數字、特殊符號等,以及轉換大寫。

編碼規則:

保留第乙個字母,去掉所有a e i o u y h w

數字代替字母(基於發音分類)

b 、f 、p、 v :1

c、g、j、k、q、s、x、z:2

d、t :3

l:4m、n:5

r:6

編碼去重,相鄰編碼相同(或中間被h、w隔開)則合併(含首字母),被其它間隔則保留。

取得1個字母+3個數字,不足補0

輸入為:he1llo#abc1

輸出為:h412

預處理: he1llo#abc1 -> helloabc -> helloabc

helloabc -> hllbc

h4412

h412

h412

輸入為:jk

輸出為:j000

預處理: jk -> jk

jk -> jk

j2j (j對應2,即22,僅編碼一次,故保留首字母即可)

j000

soundex是乙個簡潔的發音相似的編碼演算法,它可以達到初級的模糊音效果。

如果需要更精準的發音對映,可以使用metaphone演算法,它使用了更高階的規則;或者改進版本的的double metaphone演算法。

解讀ORACLE資料庫的統一命名與編碼規範

1 編寫目的 使用統一的命名和編碼規範,使資料庫命名及編碼風格標準化,以便於閱讀 理解和繼承。2 適用範圍 本規範適用於公司範圍內所有以oracle作為後台資料庫的應用系統和專案開發工作。3 物件命名規範 3.1 資料庫和sid 資料庫名定義為系統名 模組名 全域性資料庫名和例程sid 名要求一致 ...

原 騰訊搜搜的漢字搜尋編碼問題

本來一般搜尋引擎都是 關鍵字之類的形式就可以查詢,非英文本母就urlencode一下 utf 8的 地方 urlencode就是 e5 9c b0 e6 96 b9 e5 9c b0 e6 96 b9 谷歌 地方 這些都能成功查詢。但如果用soso 就是亂碼 原因是soso用的是gb2312編碼,g...

搜尋引擎走出APP,抖音和快手要拿下更大的蛋糕

在國內網際網路行業中,bat 無疑是個繞不開的名詞,其中阿里以電商聞名 騰訊靠社交獨步天下,而則憑藉著搜尋引擎幾乎無往而不利。然而當進入移動網際網路時代後,面對乙個個資料孤島般的app,的搜尋引擎已遠不如此前 鋒利 但就在移動網際網路逐漸成熟 流量紅利不再的當下,搜尋又重新被各大平台擺到了台前。日前...