Soundex

Soundex是一种语音算法，利用英文字的读音计算近似值，值由四个字符构成，第一个字符为英文字母，后三个为数字。在拼音文字中有时会有会念但不能拼出正确字的情形，可用Soundex做类似模糊匹配的效果。例如Knuth和Kant二个字符串，它们的Soundex值都是「K530」。其在计算机科学家高德納名著《計算機程序設計藝術》都有詳細的介紹。

 算法简要说明 

 第一步：保留第一个字母，去掉第一个字母之后的所有的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 -> 4
    m n -> 5
    r -> 6

 第三步：对于相邻的重复的数字只保留一个，即相邻的两个被替换为同一个数字的字母只保留一个；例外，如果在第一步驟的時候，這兩個相同數字中間有母音隔開，則這兩個重複的數字都保留(例如Tynczak為T522非T520)。並且請注意，雖然第一個字母不用翻成數字，但如果其數字和第二個數字相同，仍須把第二個數字刪除。(例如Pfister為P236非P123，Honeyman是H555非H500)

 第四步：保留第一个字母后的三位数字，若不足三位则以0补足。

实例：

 单词  Soundex Knuth  K530 Kant  K530 Jarovski  J612 Resnik  R252 Reznick  R252 Euler  E460 Peterson  P362 Jefferson  J162

 外部链接 
 The Soundex Indexing System (U.S. National Archives and Records Administration)

Category:語音學
Category:语音算法