סאונדקס

סאונדקס הוא אלגוריתם פונטי שמאפשר לזהות שמות לפי צלילם ואופן הגייתם, ובכך להתגבר על הבדלי כתיב לא משמעותיים, העלולים לנבוע משגיאות כתיב נפוצות. סאונדקס הוא הנפוץ מבין האלגוריתמים הפונטיים.

סאונדקס פותח בארצות הברית על ידי רוברט ראסל ומרגרט אודל, ונרשם כפטנט בשנים 1918 ו-1922 (פטנט אמריקאי מס' 1,261,167 ופטנט אמריקאי מס' 1,435,663). וריאציה של האלגוריתם, הקרויה "סאונדקס אמריקאי", פותחה בשנות השלושים של המאה העשרים לשם ניתוח תוצאות מפקד האוכלוסין של ארצות הברית בשנים 1890 עד 1920. אלגוריתם סאונדקס בלט בשנות השישים, כאשר פורסמו מאמרים אחדים העוסקים בו, בכתבי העת Communications of the ACM ו-Journal of the ACM, ובפרט כאשר תואר על ידי דונלד קנות' בספריו The Art of Computer Programming.

אלגוריתם סאונדקס מתאים לכל שם קוד בן ארבעה תווים: אות ואחריה שלוש ספרות. האות היא האות הראשונה של השם, והספרות הן פונקציה של יתר העיצורים שבשם. לעיצורים בעלי צליל דומה מותאמת אותה ספרה. כך, למשל, העיצורים השפתיים B, F, P, V מקודדים כולם כ-1. אמות קריאה עשויות להשפיע על הקידוד, אך הן מקודדות באופן ישיר רק כאשר הן האות הראשונה בשם.

האלגוריתם במלואו:
השאר את האות הראשונה של השם.
מיתר האותיות של השם סלק את כל המופעים של התנועות a, e, h, i, o, u, w, y.
לאותיות שנותרו, פרט לאות הראשונה, החלף את העיצורים בספרות כדלקמן:
1 <= b, f, p, v  - האותיות המייצגות עיצורים הנהגים באמצעות השפתיים והשיניים
2 <= c, g, j, k, q, s, x, z - האותיות המייצגות את העיצורים הגרוניים והשורקים
3 <= d, t - האותיות המייצגות עיצורים הנהגים בעזרת השיניים
4 <= l - האות המייצגת עיצורים הנהגים בעזרת החיך
5 <= m, n - האותיות המייצגות עיצורים הנהגים באמצעות השפתיים והאף
6 <= r - האות  המייצגת עיצורים הנהגים באמצעות הלשון והאף
אם שתי אותיות או יותר שלהן הותאמה אותה ספרה סמוכות בשם המקורי, התעלם מכולן מלבד הראשונה. 
החזר את ארבעת התווים הראשונים שהתקבלו. אם יש פחות מארבעה תווים, השלם את הספרות באפסים. 

באלגוריתם זה, השמות Robert ו-Rupert מקבלים קוד זהה, R163, ואילו Rubin מקבל את הקוד R150. 

האלגוריתם מאפשר להתגבר על טעויות שמיעה, טעויות לשוניות וטעויות הקלדה, שעלולות להיווצר בעת איסוף והקלדה של נתונים העוסקים בבני אדם, ששמם הוא מרכיב חשוב בזיהוים. 

מטבעו האלגוריתם תלוי בשפה. מובן שהוא דורש התאמה לשימוש בשפה שאיננה נכתבת באלפבית לטיני, וגם כאשר השפה נכתבת באלפבית לטיני, כללי ההגייה שלה עשויים להיות שונים מאלה של האנגלית. באמצע שנות השישים פותח בישראל אלגוריתם סאונדקס לשמות עבריים, על ידי העוסקים בעיבוד נתוני מרשם התושבים. 

אלגוריתם סאונדקס המתואר לעיל יוצר יחס שקילות בקבוצת השמות (שני שמות הם שקולים כאשר האלגוריתם מתאים להם קוד זהה). לכל שני שמות נתונים ייתכן אחד משני מצבים אפשריים: הם שקולים זה לזה, או שאינם שקולים זה לזה. תשובות מגוונות יותר מתקבלות מאלגוריתם המגדיר מרחק (מטריקה) בין שני שמות. דוגמה לאלגוריתם כזה הוא מרחק המינג. אלגוריתם נוסף המחזיר מרחק בין שמות, בשם Graphex, פותח בצה"ל על ידי אסא כשר, בעת שהיה חייל בשירות סדיר. המשתמש באלגוריתם מסוג זה יכול להחליט על המרחק הרצוי לו (אולי לפי מידע נוסף שיש לפניו).

לקריאה נוספת
 פנחס שטרן, "האם אפשר לתרגם את הסאונדקס לעברית?", קובץ ההרצאות - הכנס הארצי לעיבוד נתונים 1966.
 אסא כשר, "GRAPHEX", קובץ ההרצאות - הכנס הארצי לעיבוד נתונים 1966.

קישורים חיצוניים

שמות
אלגוריתמים