
بلوک عملکرد SOUNDEX شباهت صدا یک رشته کاراکتر را محاسبه میکند.
مقدارهای Soundex این ویژگی را دارند که کلماتی که به صورت مشابه تلفظ میشوند، مقدار Soundex یکسان تولید میکنند. این میتواند برای جستجو در پایگاههای داده استفاده شود، اگر شما فقط تلفظ اما نگارش دقیق را نمیدانید. تابع Soundex یک رشته کاراکتر از چهار کاراکتر، شروع شده با یک حرف، برمیگرداند.
ورودی رشته کاراکتری که باید محاسبه شود را تعریف میکند.
یک رشته کاراکتر با کد Soundex را برمیگرداند.
هر کد Soundex از یک حرف دنبال شده توسط سه عدد تشکیل شده است، به عنوان مثال A532 برای Antcas. اگر کلمهای که باید کدگذاری شود دارای تعداد زیادی حرف باشد که میتوان بیشتر اعداد را تولید کرد، پس از سومین عدد قطع میشود. اگر کلمه دارای تعداد کمی حرف باشد، اعداد باقی مانده با صفر پر میشوند. بنابراین نام آسیایی لی به صورت 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" تیز ß مانند حروف "S" ساده S کدگذاری میشوند.
اگر چندین حرف متوالی در رشته اصلی کاراکتر دارای کد Soundex یکسان باشند، این کد در نتیجه فقط یک بار ظاهر میشود، از abfx به عنوان مثال A120 (a باقی میماند زیرا حرف اول است، b و f هر دو کد یکسان 1 را تولید میکنند، x کد 2 را تولید میکند، در آخر یک صفر اضافه میشود تا چهار کاراکتر به دست آید).
در کاربرد عملی روش Soundex دو نکته اصلی مورد انتقاد قرار گرفته است: از یک طرف بسیار متمرکز بر زبان انگلیسی است و از سوی دیگر فقط یک تحلیل بسیار خشن ارائه میدهد.
همچنین باید توجه داشت که این الگوریتم نشان داده شده به احتمال زیاد رایجترین مورد استفاده برای جستجوهای فونتیک است. به این امر کمک کرده است که برای پایگاه داده Oracle یک دستور PL/SQL استاندارد مربوطه در زمان بسیار زودتر پیادهسازی شده بود.