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

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

ในปี 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

หมวดหมู่:ภาษาศาสตร์
หมวดหมู่:พงศาวลีวิทยา