ฟังก์ชันบล็อก SOUNDEX

ฟังก์ชันบล็อก SOUNDEX คำนวณความคล้ายกันในการออกเสียงของสตริงตัวอักษร

ค่าสาวน์เด็กซ์มีคุณสมบัติที่คำที่ออกเสียงคล้ายกันจะให้ค่าสาวน์เด็กซ์ที่เท่า ๆ กัน นี่สามารถใช้ในการค้นหาในฐานข้อมูลได้ เมื่อคุณรู้ว่าคำออกเสียงอย่างไรก็ตามไม่รู้ว่าควรเขียนอย่างไร คำสั่ง Soundex จะให้สตริงตัวอักษร 4 ตัว ออกมาเริ่มต้นด้วยตัวอักษร

อินพุท STR

อินพุทนี้กำหนดสตริงตัวอักษรที่จะคำนวณ

เอาท์พุท

ให้สตริงตัวอักษรออกมาเป็นโค้ด Soundex

กฎพื้นฐาน

แต่ละโค้ดสาวน์เด็กซ์ประกอบด้วยตัวอักษรหนึ่งตัวตามด้วยตัวเลขสามตัว เช่น A532 สำหรับ Antcas หากคำนั้นมีจำนวนตัวอักษรมากพอที่จะสร้างตัวเลขมากกว่านี้ ควรตัดหลังจากตัวเลขที่สาม หากคำนั้นมีตัวอักษรมากน้อยกว่า ควรเติมตัวเลขด้วยศูนย์ โค้ดสำหรับชื่อเอเชีย Lee จะเป็น L000 ตัวอย่างเช่น

ตัวเลข ตัวอักษรที่แทน
1 B, F, P, V
2 C, G, J, K, Q, S, X, Z
3 D, T
4 L
5 M, N
6 R

พยางค์ A, E, I, O และ U และพยางค์ H, W และ Y จะถูกละเว้น ยกเว้นตัวอักษรแรก สำหรับภาษาเยอรมันสามารถกำหนดได้ว่า พยางค์ Ä, Ö และ Ü จะถูกละเว้น และพยางค์ ß จะถูกโค้ดเป็นพยางค์ S ตัวอย่างเช่น

หากมีตัวอักษรหลายตัวที่ติดกันในสตริงต้นฉบับมีโค้ดสาวน์เด็กซ์เดียวกัน โค้ดนั้นจะปรากฏในผลลัพธ์เพียงครั้งเดียว จาก abfx จะได้ A120 (a เหลือเพราะเป็นตัวอักษรแรก, b และ f ให้โค้ดเดียวกัน 1, x ให้ 2, และในที่สุดจะเพิ่มศูนย์เพื่อให้มีตัวอักษร 4 ตัว)

ในการใช้งาน Soundex มีสองประเด็นหลักที่ถูกวิจารณ์คือ การออกแบบของมันเป็นไปตามภาษาอังกฤษ และมันให้การวิเคราะห์ที่แย่กว่ามาก

อย่างไรก็ตาม ต้องระบุว่า แอลกอริทึมที่แสดงในนี่เป็นหนึ่งในแอลกอริทึมที่ใช้กันมากที่สุดสำหรับการค้นหาเสียง และมีส่วนช่วยให้ Oracle มีคำสั่ง PL/SQL-Standard ที่เหมาะสมตั้งแต่ต้น