ประวัติความเป็นมา
-----------------

ในปี 1985 แกรี่ โมโคทอฟฟ์และแรนดี้ เดตช์ นักพงศาวลีวิทยาชาวยิว ได้รวบรวมรายชื่อชาวยิวจำนวน 28000 คนที่ได้เคยเปลี่ยนชื่อระหว่างที่อาศัยอยู่ในเมืองเพลสไทน์ ในปี 1921 ถึง 1948 และได้ปรับแต่งการออกแบบขั้นตอนวิธีซาวเดกซ์ของรัสเซลและซาวเดกซ์ของอเมริกันจนได้เป็นซาวเดกซ์แบบใหม่ สาเหตุก็เพราะนามสกุลของชาวยิวเหล่านั้นเป็นนามสกุลที่มาจากภาษาสลาวิกและภาษายิดดิช
หลายๆนามสกุลที่มาจากภาษาสลาวิกและภาษายิดดิชนั้น แม้จะสะกดต่างกันแต่ออกเสียงได้เหมือนกัน จึงไม่ค่อยเหมาะสมกับการใช้ซาวเดกซ์ของรัสเซลและซาวเดกซ์ที่ใช้เป็นทางการของอเมริกา ทั้งสองจึงเห็นว่า ควรจะเก็บรายชื่อไว้ด้วยซาวเดกซ์แบบอื่น เพื่อแก้ปัญหากรณีการเก็บชื่อผิดพลาด

### หมายเหตุ

ซาวเดกซ์ของเดตช์-โมโคทอฟฟ์นั้น ในบางครั้งอาจถูกเรียกว่า ซาวเดกซ์ของชาวยิว หรือซาวเดกซ์ของชาวยุโรปตะวันออก

การเข้ารหัส
-----------

การเข้ารหัสของซาวเดกซ์ของเดตช์-โมโคทอฟฟ์นั้น เริ่มจากรับอินพุทที่เป็นคำ (สตริง) และจะแปลงตัวอักษรเหล่านั้นออกมาเป็นเอาต์พุตซึ่งเป็นตัวเลข 6 หลัก แต่ละตัวเลขจะบ่งบอกถึงการออกเสียงของตัวอักษรในคำนั้น ถ้าหากว่าเข้ารหัสแล้วได้ตัวเลขไม่ถึง 6 ตัว ก็จะใช้วิธีเติม 0 ต่อท้ายให้ครบแทน หรือถ้าหากว่ามีอักษรที่ต้องออกเสียงมากกว่า 6 ตัว ก็จะเลือกเอา 6 ตัวที่สำคัญที่สุด

ตารางนี้จะเป็นตารางที่บอกว่าสำหรับการออกเสียงแบบใด จะสามารถเข้ารหัสออกมาได้เป็นตัวเลขไหน ซึ่งตัวอักษรตัวเดียวกันอาจทำหน้าที่คนละอย่าง และออกเสียงได้ต่างกันอีกด้วย จึงได้มีการแยกเป็นกรณีไว้

| ตัวอักษร | การออกเสียงแบบอื่น | กรณีเป็นตัวอักษรขึ้นต้น | กรณีอยู่ด้านหน้าสระ | กรณีอื่นๆ |
| --- | --- | --- | --- | --- |
| AI | AJ, AY | 0 | 1 | ไม่เข้ารหัส |
| AU |  | 0 | 7 | ไม่เข้ารหัส |
| A |  | 0 | ไม่เข้ารหัส | ไม่เข้ารหัส |
| B |  | 7 | 7 | 7 |
| CHS |  | 5 | 5 4 | 5 4 |
| CH | KH (5) หรือ TCH (4) |  |  |  |
| CK | K (5) หรือ TSK (4) |  |  |
| CZ | CS หรือ CSZ หรือ CZS | 4 | 4 | 4 |
| C | K (5) หรือ TZ (4) |  |  |  |
| DRZ | DRS | 4 | 4 | 4 |
| DS | DSH, DSZ | 4 | 4 | 4 |
| DZ | DZH, DZS | 4 | 4 | 4 |
| D | DT | 3 | 3 | 3 |
| EI | EJ, EY | 0 | 1 | ไม่เข้ารหัส |
| EU |  | 1 | 1 | ไม่เข้ารหัส |
| E |  | 0 | ไม่เข้ารหัส | ไม่เข้ารหัส |
| FB |  | 7 | 7 | 7 |
| F |  | 7 | 7 | 7 |
| G |  | 5 | 5 | 5 |
| H |  | 5 | 5 | ไม่เข้ารหัส |
| IA | IE หรือ IO หรือ IU | 1 | ไม่เข้ารหัส | ไม่เข้ารหัส |
| I |  | 0 | ไม่เข้ารหัส | ไม่เข้ารหัส |
| J | Y (1) หรือ DZH (4) |  |  |  |
| KS |  | 5 | 5 4 | 5 4 |
| KH |  | 5 | 5 | 5 |
| K |  | 5 | 5 | 5 |
| L |  | 8 | 8 | 8 |
| MN |  |  | 6 6 | 6 6 |
| M |  | 6 | 6 | 6 |
| NM |  |  | 6 6 | 6 6 |
| N |  | 6 | 6 | 6 |
| OI | OJ, OY | 0 | 1 | ไม่เข้ารหัส |
| O |  | 0 | ไม่เข้ารหัส | ไม่เข้ารหัส |
| P | PF, PH | 7 | 7 | 7 |
| Q |  | 5 | 5 | 5 |
| RZ, RS | RTZ (9 4) หรือ ZH (4) |  |  |  |
| R |  | 9 | 9 | 9 |
| SCHTSCH | SCHTSH, SCHTCH | 2 | 4 | 4 |
| SCH |  | 4 | 4 | 4 |
| SHTCH | SHCH, SHTSH | 2 | 4 | 4 |
| SHT | SCHT, SCHD | 2 | 4 3 | 4 3 |
| SH |  | 4 | 4 | 4 |
| STCH | STSCH, SC | 2 | 4 | 4 |
| STRZ | STRS, STSH | 2 | 4 | 4 |
| ST |  | 2 | 4 3 | 4 3 |
| SZCZ | SZCS | 2 | 4 | 4 |
| SZT | SHD, SZD, SD | 2 | 4 3 | 4 3 |
| SZ |  | 4 | 4 | 4 |
| S |  | 4 | 4 | 4 |
| TCH | TTCH, TTSCH | 4 | 4 | 4 |
| TH |  | 3 | 3 | 3 |
| TRZ | TRS | 4 | 4 | 4 |
| TSCH | TSH | 4 | 4 | 4 |
| TS | TTS, TTSZ, TC | 4 | 4 | 4 |
| TZ | TTZ, TZS, TSZ | 4 | 4 | 4 |
| T |  | 3 | 3 | 3 |
| UI | UJ, UY | 0 | 1 | ไม่เข้ารหัส |
| U | UE | 0 | ไม่เข้ารหัส | ไม่เข้ารหัส |
| V |  | 7 | 7 | 7 |
| W |  | 7 | 7 | 7 |
| X |  | 5 | 5 4 | 5 4 |
| Y |  | 1 | ไม่เข้ารหัส | ไม่เข้ารหัส |
| ZDZ | ZDZH, ZHDZH | 2 | 4 | 4 |
| ZD | ZHD | 2 | 4 3 | 4 3 |
| ZH | ZS, ZSCH, ZSH | 4 | 4 | 4 |
| Z |  | 4 | 4 | 4 |

ขั้นตอนวิธี
-----------

1. รับอินพุทเข้ามาเป็นนามสกุล
2. ไล่ดูแต่ละตัวอักษร และเพิ่มเอาต์พุต โดยดูรหัสจากตาราง โดยต้องไม่ลืมตรวจสอบเงื่อนไขต่างๆ ตามข้อกำหนดด้านบน
3. ถ้ารหัสไม่ครบ 6 หลัก เติม 0 ให้ครบ ถ้ารหัสเกิน 6 หลัก เลือกที่สำคัญที่สุด 6 ตัว
4. เมื่อดูครบแล้ว ส่งเอาต์พุตไปเป็นตัวเลข 6 หลัก

### ข้อกำหนดเพิ่มเติม

1. ซาวเดกซ์ของเดตช์และโมโคทอฟฟ์จะเป็นตัวเลข 6 ตัว ในขณะที่ซาวเดกซ์ดั้งเดิมมีความยาว 4 ตัวอักษร
2. ในกรณีที่รหัสมีความยาวไม่ถึง 6 ตัว จะเติมเลข 0 เข้าไปให้ครบแทน
3. สระ (A, E, I, O, U, Y) จะไม่ถูกเข้ารหัส เว้นเสียแต่กรณีที่สระนั้นทำหน้าที่เป็นพยัญชนะต้น หรือกรณีที่สระนั้นเป็นสระคู่ ที่อยู่ด้านหน้าของสระอีกตัว
4. ตัวอักษร H จะถูกเข้ารหัสก็ต่อเมื่อทำหน้าที่เป็นพยัญชนะต้นเท่านั้น
5. ถ้าตัวอักษรที่อยู่ติดกันนั้นสามารถออกเสียงรวมกันได้ (หรือที่เรียกว่า Larger Sound) ก็จะเข้ารหัสเป็นตัวเลขตัวเดียว (ตัวอักษรที่อยู่ติดกัน อาจไม่ได้ออกเสียงรวมเป็นพยางค์เดียวกันก็ได้ ซึ่งถ้าเป็นเช่นนั้นจะเข้ารหัสเป็นตัวเลข 2 ตัว)
6. ถ้านามสกุลที่นำมาเข้ารหัสประกอบด้วยคำมากกว่า 2 คำ ให้รวมกันเป็นคำเดียวแล้วเข้ารหัสเลย

### ตัวอย่างการใช้

* เมื่อมีรหัสไม่ครบ 6 หลัก

GOLDEN : มีเสียงเพียง 4 เสียงที่ต้องเข้ารหัส นั่นคือ (G - L - D - N) ซึ่งแปลงเป็นรหัสได้เป็น 5836 แต่จะปรับให้ตัวเลขยาว 6 หลักเสีย เป็น 5 8 3 6 0 0
* เมื่อตัวอักษรนั้นเป็นสระ แต่ถือเป็นกรณีพิเศษ

ALPERT : A เป็นสระก็จริง แต่ทำหน้าที่เป็นพยัญชนะต้น จึงเข้ารหัสได้เป็น 0 8 7 9 3 0
BREUER : E และ U เป็นสระก็จริง แต่ในกรณีนี้เมื่อมีสระ 2 ตัว อยู่ด้านหน้าสระอีกตัวหนึ่ง แสดงว่าสระนั้นจะต้องมีการออกเสียง จึงเข้ารหัสได้เป็น 7 9 1 9 0 0

* เมื่อเป็นตัวอักษร H

HABER :เป็นตัวอักษร H แต่ทำหน้าที่เป็นพยัญชนะต้น จึงเข้ารหัสได้เป็น 5 7 9 0 0 0
MANHEIM : แม้จะเป็นตัวอักษร H และไม่ได้เป็นอักษรที่ขึ้นต้นคำ แต่ก็ออกเสียงเป็นพยัญชนะต้นของพยางค์หลัง จึงเข้ารหัสได้เป็น 665600

ข้อสรุป
-------

ซาวเดกซ์ของเดตช์และโมโคทอฟฟ์นับเป็นขั้นตอนวิธีที่มีประโยชน์มากต่อการเก็บชื่อที่สำคัญๆ มีการประยุกต์ใช้ในหลายๆด้าน อาทิเช่น การทำสำมะโนครัว หรือในโรงพยาบาลบางแห่งยังใช้วิธีนี้ในการเก็บชื่อยาอีกด้วย

ขั้นตอนวิธีที่เกี่ยวข้อง
------------------------

1. ซาวเดกซ์
2. ขั้นตอนวิธีเชิงสัทลักษณ์ของไบเดอร์-มอร์ส

อ้างอิง
-------

1. เอกสาร Adaptation and Application Daitch-Mokotoff Soundex Algorithm on Serbian Names by Peter Rajkovic, Dragan Jankovic
2.