語音比對
語音比對演算法可用於編碼符記,以便發音相似的兩種不同拼寫可以比對。
貝德-莫爾斯語音比對 (BMPM)
如需如何在分析器中使用此編碼的範例,請參閱篩選器描述區段中的貝德-莫爾斯篩選器。
貝德-莫爾斯語音比對 (BMPM) 是一種「發音相似」工具,可讓您使用新的語音比對系統進行搜尋。BMPM 可協助您在 Solr 索引中搜尋人名(或僅搜尋姓氏),而且遠優於現有的語音編解碼器,例如標準 Soundex、Metaphone、Caverphone 等。
一般而言,語音比對可讓您在名稱清單中搜尋與所需名稱在語音上相等的名稱。BMPM 類似於 Soundex 搜尋,因為不需要完全相同的拼寫。與 Soundex 不同,它不會產生大量錯誤點擊。
從名稱的拼寫中,BMPM 會嘗試判斷語言。然後,它會將該特定語言的語音規則套用至將名稱音譯為語音字母。如果無法在相當確定的程度下判斷語言,它會改為使用通用語音。最後,它會套用與有聲和無聲子音和母音等相關的語言獨立規則,以進一步確保比對的可靠性。
例如,假設在資料庫中搜尋 Stephen 時找到的相符項目為「Stefan」、「Steph」、「Stephen」、「Steve」、「Steven」、「Stove」和「Stuffin」。 「Stefan」、「Stephen」和「Steven」可能相關,而且是您想要看到的名稱。但是,「Stuffin」可能不相關。此外,「Steph」、「Steve」和「Stove」也會被拒絕。其中,「Stove」可能不是我們想要的。但是,「Steph」和「Steve」可能是您可能感興趣的。
對於 Solr,BMPM 搜尋適用於以下語言
-
英文
-
法文
-
德文
-
希臘文
-
以希伯來文字母書寫的希伯來文
-
匈牙利文
-
義大利文
-
波蘭文
-
羅馬尼亞文
-
以西里爾字母書寫的俄文
-
音譯為英文字母的俄文
-
西班牙文
-
土耳其文
名稱比對也適用於使用這些語言的國家/地區的非猶太姓氏。
Daitch-Mokotoff Soundex
若要在您的分析器中使用此編碼,請參閱「篩選器描述」章節中的Daitch-Mokotoff Soundex 篩選器。
Daitch-Mokotoff Soundex 演算法是 Russel 和 American Soundex 演算法的改進版本,在匹配發音相似但拼寫不同的斯拉夫語和意第緒語姓氏時,能產生更高的準確性。
與其他 Soundex 變體的主要差異在於:
-
編碼後的名稱長度為 6 位數
-
會編碼名稱的初始字元
-
有多字元 n-gram 的編碼規則
-
同一個名稱可能有多種編碼方式(分支)
注意:Solr 使用的實作 (commons-codec 的 DaitchMokotoffSoundex
) 與該演算法的原始描述相比,具有額外的分支規則。
Double Metaphone
若要在您的分析器中使用此編碼,請參閱「篩選器描述」章節中的Double Metaphone 篩選器。
或者,您也可以使用 語音篩選器指定 encoder="DoubleMetaphone"
,但請注意,語音篩選器版本將不會提供由 Double Metaphone 篩選器為某些詞彙產生的第二個(「替代」)編碼。
使用 Lawrence Philips 的 double metaphone 演算法對詞彙進行編碼。請參閱原始文章:http://www.drdobbs.com/the-double-metaphone-search-algorithm/184401251?pgno=2
Metaphone
若要在您的分析器中使用此編碼,請使用 語音篩選器指定 encoder="Metaphone"
。
使用 Lawrence Philips 的 Metaphone 演算法對詞彙進行編碼,該演算法在 1990 年 12 月的 Computer Language 中的「Hanging on the Metaphone」一文中有所描述。
另一個參考資訊來源是 Lawrence Philips 的Double Metaphone Search Algorithm。
Soundex
若要在您的分析器中使用此編碼,請使用 語音篩選器指定 encoder="Soundex"
。
使用 Soundex 演算法對詞彙進行編碼,該演算法用於關聯相似的名稱,但也可以作為一種通用方案來查找具有相似音素的單詞。
Refined Soundex
若要在您的分析器中使用此編碼,請使用語音篩選器指定 encoder="RefinedSoundex"
。
使用改進版本的 Soundex 演算法對詞彙進行編碼。
Caverphone
若要在您的分析器中使用此編碼,請使用 語音篩選器指定 encoder="Caverphone"
。
Caverphone 是由奧塔哥大學的 Caversham 專案創建的演算法。該演算法針對紐西蘭達尼丁市南部地區的口音進行了最佳化。
請參閱:http://en.wikipedia.org/wiki/Caverphone 以及 Caverphone 2.0 規格:http://caversham.otago.ac.nz/files/working/ctp150804.pdf
Kölner Phonetik (又稱 Cologne Phonetic)
若要在您的分析器中使用此編碼,請使用 語音篩選器指定 encoder="ColognePhonetic"
。
Kölner Phonetik 是由 Hans Joachim Postel 於 1969 年發表的演算法,專為德語進行最佳化。
NYSIIS
若要在您的分析器中使用此編碼,請使用 語音篩選器指定 encoder="Nysiis"
。
NYSIIS 是一種用於關聯相似名稱的編碼,但也可以作為一種通用方案來查找具有相似音素的單詞。