編碼 | 音素 | 比對

> metaphone | 音素 | 聲音 <

// Metaphone —— 依單字發音建立索引的英文字音素演算法

0 字元
0 字元
[PHONETIC]

以讀音為主

根據發音而非拼字來編碼單字。

[FUZZY]

模糊比對

找出讀音相近但拼字不同的單字。

[ENGLISH]

針對英語最佳化

專為英語發音規則設計的演算法。

>> 技術說明

Metaphone 的運作方式

Metaphone 是一種依英語發音進行編碼的音素演算法。它透過一連串轉換規則,將字母及字母組合轉成音素代碼。讀音相近的單字會得到相同代碼,非常適合用在模糊比對、拼字檢查,以及資料庫中依讀音比對人名等場景。

為什麼要使用 Metaphone

  • 在資料庫中依讀音比對人名,即使拼字不同
  • 拼字檢查與自動修正建議
  • 應用程式中的模糊搜尋與近似查詢
  • 家譜/族譜研究中處理姓氏變體
  • 語音辨識與語音處理相關應用

Metaphone 範例

常見轉換:\nPH → F (phone → FON)\nCH → X (church → XRCH)\nC+E/I/Y → S (center → SNTR)\nG+E/I/Y → J (george → JRJ)\n\n讀音相近的單字:\nSmith → SM0\nSmythe → SM0\nSchmidt → XMT\n\nKnight → NT\nNight → NT\n\nCough → KF\nCoffee → KF

>> 常見問題

Metaphone 是什麼?

Metaphone 是 Lawrence Philips 於 1990 年提出的音素編碼演算法。與 Soundex 相比,它使用更複雜的規則,更貼近英語實際的發音模式。

Metaphone 與 Soundex 有何不同?

Metaphone 採用更精細的規則,並考慮字母的位置與組合。相較於原本為姓氏設計、使用簡單數值代碼的 Soundex,Metaphone 對英語單字的比對通常更精確。

Metaphone 編碼通常用在哪些場合?

Metaphone 編碼常用於拼字檢查、搜尋引擎、資料庫去重、家譜研究,以及任何需要比對「讀音相似但拼字不同」單字的應用。

Metaphone 是否只適用於特定語言?

是的,Metaphone 主要針對英語發音設計。對其他語言而言,像 Cologne phonetic(德語)或 Caverphone(紐西蘭英語)等不同的音素演算法可能更合適。

// 速查表

LettersCode說明
PHFPH → F
TH0TH → 0 (zero = “th”)
SH, CHXSH, CH → X
KN GN PN AE WR—drop first letter at word start
WHWWH → W at word start
C + I/E/YSC → S, otherwise K
DG + I/E/YJDG → J
A E I O U—vowels kept only at word start

// algo

word -> upper-case letters only
1. apply initial-letter rules (KN, GN, PN, AE, WR, WH, X)
2. scan left to right, mapping letters by the rule table
3. skip duplicate adjacent letters (except C)
4. drop vowels unless first letter
5. output = remaining codes

>> 更多問題

問:什麼是 Metaphone 演算法?

答:Metaphone 由 Lawrence Philips 於 1990 年提出,依英語發音規則把單字轉換為語音編碼,發音相近的字得到相同編碼。

問:Metaphone 與 Soundex 有何區別?

答:Soundex 只用字母分組,得到固定 4 位編碼;Metaphone 使用上下文規則(如 PH → F、KN → N),產生變長字母編碼,對英文名字區分更精確。

問:Metaphone 編碼中的「0」是什麼意思?

答:0 傳統上表示「th」音(如 think),用來區分 TH 與 T,並不是 Soundex 那樣的數字。

已複製!