語音比對

語音比對演算法可用於編碼符記,以便發音相似的兩種不同拼寫可以比對。

貝德-莫爾斯語音比對 (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 專案創建的演算法。該演算法針對紐西蘭達尼丁市南部地區的口音進行了最佳化。

Kölner Phonetik (又稱 Cologne Phonetic)

若要在您的分析器中使用此編碼,請使用 語音篩選器指定 encoder="ColognePhonetic"

Kölner Phonetik 是由 Hans Joachim Postel 於 1969 年發表的演算法,專為德語進行最佳化。

NYSIIS

若要在您的分析器中使用此編碼,請使用 語音篩選器指定 encoder="Nysiis"

NYSIIS 是一種用於關聯相似名稱的編碼,但也可以作為一種通用方案來查找具有相似音素的單詞。