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

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

ในปี 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. http://www.jewishgen.org/infofiles/soundex.html