ซาวเดกซ์ของเดตช์-โมโคทอฟฟ์
ประวัติความเป็นมา แก้
ในปี 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 |
ขั้นตอนวิธี แก้
- รับอินพุทเข้ามาเป็นนามสกุล
- ไล่ดูแต่ละตัวอักษร และเพิ่มเอาต์พุต โดยดูรหัสจากตาราง โดยต้องไม่ลืมตรวจสอบเงื่อนไขต่างๆ ตามข้อกำหนดด้านบน
- ถ้ารหัสไม่ครบ 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