ซาวเดกซ์ของเดตช์-โมโคทอฟฟ์



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

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

หมายเหตุ 

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

การเข้ารหัส 

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

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

ขั้นตอนวิธี 

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

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

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

ข้อสรุป 

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

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

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

อ้างอิง 
 เอกสาร Adaptation and Application Daitch-Mokotoff Soundex Algorithm on Serbian Names   by   Peter Rajkovic, Dragan Jankovic
 http://www.jewishgen.org/infofiles/soundex.html

ภาษาศาสตร์
พงศาวลีวิทยา