ข้ามไปเนื้อหา

ซาวเดกซ์

จากวิกิพีเดีย สารานุกรมเสรี

ซาวเดกซ์ (อังกฤษ: Soundex) เป็นขั้นตอนวิธีแบบหนึ่งในขั้นตอนวิธีเชิงสัทลักษณ์ เกิดขึ้นเนื่องจากคำบางคำนั้นสามารถสะกดได้หลายแบบ อ่านออกเสียงคล้ายกัน อาจจะแตกต่างกันเพราะสำเนียงหรือวัฒนธรรม ซึ่งจะเป็นปัญหาหลักในการเก็บข้อมูลประวัติของชื่อบุคคล ซาวเดกซ์จึงเป็นเครื่องมือช่วยจัดการปัญหาเหล่านี้ได้ ด้วยการแทนคำหรือชื่อคนนั้นๆ ด้วยรหัสเฉพาะตัวของซาวเดกซ์เอง

รหัสของซาวเดกซ์นั้นจะมีความยาวคงที่ 4 ตัว ซึ่งรหัสเหล่านี้สามารถใช้ในการเปรียบเทียบคำสองคำที่ออกเสียงคล้ายๆกันได้ ซึ่งจะมีประโยชน์ในการค้นหาข้อมูลในฐานข้อมูลใหญ่ๆ เช่น หาชื่อคนในฐานข้อมูล ก็จะปรากฏชื่อและคำที่ใกล้เคียงกับที่เราต้องการค้นหาขึ้นมาให้โดยอัตโนมัติ ซึ่งจะมีประโยชน์มากเวลาสะกดชื่อที่ค้นหาผิดด้วย

ประวัติ

[แก้]

ซาวเดกซ์เกิดขึ้นในปี ค.ศ. 1918 โดย Robert C. Russell และ Margaret K. Odell โดยในตอนแรกใช้ชื่อว่า อินเดกซ์ (Index) ซึ่งเป็นขั้นตอนวิธีในการจัดเก็บข้อมูลแบบธรรมดาทั่วๆไป ขึ้นกับตัวอักษรของคำนั้นเป็นหลัก ซึ่งเขาได้จดสิทธิบัตรเอาไว้ใน 2 ปีต่อมา หลังจากนั้นเขาได้พัฒนาให้ขั้นตอนวิธีเก็บข้อมูลโดยใช้การออกเสียงของมนุษย์เป็นหลัก แบ่งเป็น 6 แบบ คือ ฐานริมฝีปากทั้งสอง, ฐานริมฝีปากกับฟัน, ฐานฟัน, ฐานปุ่มเหงือก, ฐานเพดานอ่อน, ฐานเส้นเสียง ตามการใช้อวัยวะในช่องปากในการออกเสียง

ขั้นตอนการสร้างรหัสของซาวเดกซ์

[แก้]

รหัสของซาวเดกซ์มีความยาว 4 ตัวอักษร ตัวแรกของรหัสจะเป็นตัวอักษร อีก 3 ตัวข้างหลังจะเป็นตัวเลข ซึ่งตัวอักษรใดที่มีเสียงเหมือนหรือคล้ายๆกัน จะใช้ตัวเลขเดียวกัน ซึ่งขั้นตอนการสร้างรหัสนั้นจะมี ดังนี้

  1. ตัวอักษรที่จะนำมาเข้ารหัสจะต้องเป็นอักษรละตินของภาษาอังกฤษเท่านั้น (รุ่นดั้งเดิมใช้กับภาษาอังกฤษแบบอเมริกัน)
  2. ตัวอักษรตัวแรกของรหัสของซาวเดกซ์จะต้องเป็นตัวใหญ่ (uppercase letter) เสมอ โดยจะมาจากตัวอักษรตัวแรกของข้อมูลป้อนเข้าที่นำมาเข้ารหัส
  3. ถ้าตัวอักษรใดเป็นตัวอักษรสระ (A,E,I,O,U) หรือตัว H,W,Y จะไม่นำไปเข้ารหัสต่อไป เพราะอาจจะทำให้รหัสเกิดความผิดพลาดได้
  4. ทำการเข้ารหัสกับตัวอักษรที่เหลือจากข้อ 3 โดยแปลงให้เป็นตัวเลขต่างๆ ตามข้อกำหนด ดังนี้
    • ตัวอักษร B, F, P, V เป็นเลข 1
    • ตัวอักษร C, G, J, K, Q, S, X, Z เป็นเลข 2
    • ตัวอักษร D, T เป็นเลข 3
    • ตัวอักษร L เป็นเลข 4
    • ตัวอักษร M, N เป็นเลข 5
    • ตัวอักษร R เป็นเลข 6
  5. หลังจากทำการแปลงตัวอักษรในข้อมูลป้อนเข้าเป็นตัวเลขแล้ว ตอนนี้ตัวอักษรทั้งหมด (ยกเว้นตัวหน้า) จะถูกแปลงเป็นตัวเลข (ข้อ 4) หรือตัดทิ้ง (ข้อ 3) ไปแล้ว เราจะมาพิจารณาตัวเลขแต่ละคู่ติดกัน ถ้าในแต่ละคู่ติดกันนั้นเป็นเลขเดียวกันจะต้องตัดออกไปหนึ่งตัวให้เหลือเลขตัวเดียว
  6. ทำไปเรื่อยๆจนรหัสที่ได้ตรงตามรูปแบบที่ต้องการ (1 ตัวอักษร + 3 ตัวเลข) ถ้าเกิดกรณีที่เลขยังไม่ครบ 3 ตัว ให้เติมเลข 0 เข้าไปจนมีเลขครบ จะได้รหัสซาวเดกซ์ตามรูปแบบ <อักษรตัวใหญ่> <ตัวเลข> <ตัวเลข> <ตัวเลข>

ตัวอย่าง

[แก้]

พิจารณาคำว่า “Robert” และ “Rupert” มีรหัสซาวเดกซ์อย่างไร

ขั้นตอน “Robert” “Rupert”
1. เป็นอักษรละตินของภาษาอังกฤษ ใช่ ใช่
2. นำอักษรตัวแรกไปใส่ในรหัส R R
3. พิจารณาตัวอักษรถัดไปของคำ ถ้าเป็นสระหรือ H,W,Y ตัดทิ้ง Rbrt Rprt
4. นำตัวอักษรมาแปลงเป็นตัวเลข R163 R163
5. เลขคู่ติดกันมีเลขซ้ำหรือไม่ ถ้าซ้ำตัดออกหนึ่งตัว ไม่ใช่ ไม่ใช่
6. รหัสที่ได้นั้นตรงตามรูปแบบของรหัส <อักษรตัวใหญ่> <ตัวเลข> <ตัวเลข> <ตัวเลข> ใช่ ใช่
ผลลัพธ์สุดท้าย R163 R163

จะพบว่า “Robert” และ “Rupert” มีรหัสซาวเดกซ์เหมือนกัน หมายความว่าออกเสียงคล้ายกัน

แหล่งข้อมูลอื่น

[แก้]
Soundex programming code
ทดลองใช้ Soundex กับ Soundex Converter