ساوندكس

ساوندكس هي خوارزمية صوتية لتصنيف الأسماء حسب الصوت، كما تُنطق في اللغة الإنجليزية. الهدف هو ترميز الكلمات المتجانسة صوتيًا بنفس التمثيل الصوتي بحيث يمكن مطابقتها رغم الاختلافات الطفيفة في التهجئة . [ 1 ] تُرمّز الخوارزمية بشكل أساسي الحروف الساكنة؛ ولا يُرمّز حرف العلة إلا إذا كان الحرف الأول. ساوندكس هي الخوارزمية الصوتية الأكثر شهرة على نطاق واسع (ويرجع ذلك جزئيًا إلى كونها ميزة قياسية في برامج قواعد البيانات الشائعة مثل IBM Db2 و PostgreSQL [ 2 ] و MySQL [ 3 ] و SQLite [ 4 ] و Ingres و MS SQL Server [ 5 ] و Oracle [ 6 ] و ClickHouse [ 7 ] و Snowflake [ 8 ] و SAP ASE [ 9 ] ) . تُشكّل التحسينات التي أُدخلت على ساوندكس أساسًا للعديد من الخوارزميات الصوتية الحديثة. [ 10 ]

تاريخ

تم تطوير Soundex بواسطة روبرت سي راسل ومارجريت كينج أوديل [ 11 ] وحصل على براءة اختراع في عامي 1918 [ 12 ] و 1922. [ 13 ]

تم تقديم طلب تسجيل العلامة التجارية SOUNDEX (رقم التسلسل 71246709 في مكتب براءات الاختراع والعلامات التجارية الأمريكي) في 31 مارس 1927، من قبل شركة Rand Kardex Bureau, Inc.، لتغطية بطاقات الفهرسة والنماذج لأنظمة الفهرسة الصوتية. [ 14 ]

استُخدمت نسخة معدلة، تُعرف باسم "أمريكان ساوندكس"، في ثلاثينيات القرن العشرين لإجراء تحليل استرجاعي لتعدادات الولايات المتحدة من عام 1890 إلى عام 1920. وبرز رمز ساوندكس في ستينيات القرن العشرين عندما كان موضوعًا لعدة مقالات في مجلة " كوميونيكيشنز آند جورنال" التابعة لجمعية آلات الحوسبة ، وخاصة عندما وُصف في كتاب دونالد كنوث " فن برمجة الحاسوب" . [ 15 ]

تحتفظ إدارة المحفوظات والسجلات الوطنية ( NARA) بمجموعة القواعد الحالية للتطبيق الرسمي لنظام Soundex المستخدم من قبل حكومة الولايات المتحدة. [ 1 ] تتوفر قواعد الترميز هذه من NARA، عند الطلب، في شكل نشرة معلومات عامة رقم 55 بعنوان "استخدام نظام Soundex الخاص بالتعداد السكاني".

أمريكان ساوندكس

يتكون رمز ساوندكس للاسم من حرف متبوع بثلاثة أرقام : الحرف هو الحرف الأول من الاسم، والأرقام ترمز إلى الحروف الساكنة المتبقية . تشترك الحروف الساكنة التي تُنطق في نفس الموضع في نفس الرقم، فعلى سبيل المثال، تُرمز الحروف الشفوية ب، ف، ب، و بالرقم 1.

يمكن إيجاد القيمة الصحيحة على النحو التالي:

  1. احتفظ بالحرف الأول من الاسم واحذف جميع حالات ظهور الأحرف a، e، i، o، u، y، h، w الأخرى.
  2. استبدل الحروف الساكنة بالأرقام كما يلي (بعد الحرف الأول):
    • ب، ف، ب، ڤ → 1
    • ج، ج، ي، ك، ق، س، خ، ع → 2
    • د، ت → 3
    • ل → 4
    • م، ن → 5
    • r → 6
  3. إذا كان هناك حرفان أو أكثر متجاوران يحملان نفس الرقم في الاسم الأصلي (قبل الخطوة 1)، يُحتفظ بالحرف الأول فقط؛ كما يُرمز إلى حرفين يحملان نفس الرقم مفصولين بـ "h" أو "w" أو "y" برقم واحد، بينما يُرمز إلى حرفين مفصولين بحرف علة برقمين. وينطبق هذا الشرط أيضًا على الحرف الأول.
  4. إذا كان عدد حروف الكلمة قليلاً جداً بحيث لا يمكن تخصيص ثلاثة أرقام لها، فأضف أصفاراً حتى يصبح عدد الأرقام ثلاثة. أما إذا كان عدد الأرقام أربعة أو أكثر، فاحتفظ بالأرقام الثلاثة الأولى فقط.

باستخدام هذه الخوارزمية، تُعيد كل من "Robert" و"Rupert" السلسلة نفسها "R163"، بينما تُعيد "Rubin" السلسلة "R150". تُعيد كل من "Ashcraft" و"Ashcroft" السلسلة "A261". تُعيد "Tymczak" السلسلة "T522" وليس "T520" (حيث يُرمز للحرفين 'z' و'k' في الاسم بالرقم 2 مرتين لوجود حرف علة بينهما). تُعيد "Pfister" السلسلة "P236" وليس "P123" (حيث يحمل أول حرفين الرقم نفسه ويُرمز لهما مرة واحدة بالحرف 'P')، وتُعيد "Honeyman" السلسلة "H555".

تتبع معظم لغات SQL (باستثناء PostgreSQL ) الخوارزمية التالية:

  1. احفظ الحرف الأول. قم بتعيين جميع حالات ظهور الأحرف a، e، i، o، u، y، h، w إلى الصفر (0).
  2. استبدل جميع الحروف الساكنة (بما في ذلك الحرف الأول) بالأرقام كما في [2.] أعلاه.
  3. استبدل جميع الأرقام المتشابهة المتجاورة برقم واحد، ثم احذف جميع الأرقام الصفرية (0).
  4. إذا كان رقم الحرف المحفوظ هو نفسه الرقم الأول الناتج، فقم بإزالة الرقم (واحتفظ بالحرف).
  5. أضف ثلاثة أصفار إذا كانت النتيجة تحتوي على أقل من ثلاثة أرقام. احذف كل شيء ما عدا الحرف الأول والأرقام الثلاثة التي تليه (هذه الخطوة هي نفسها [4.] في الشرح أعلاه).

لا تُعطي الخوارزميتان المذكورتان أعلاه النتائج نفسها في جميع الحالات، ويعود ذلك أساسًا إلى اختلاف وقت حذف حروف العلة. تُستخدم الخوارزمية الأولى في معظم لغات البرمجة، بينما تُستخدم الثانية في لغة SQL. على سبيل المثال، تُنتج كلمة "Tymczak" الرمز "T522" في الخوارزمية الأولى، بينما تُنتجه الخوارزمية المستخدمة في SQL الرمز "T520". في كثير من الأحيان، تُنتج الخوارزميتان الرمز نفسه. على سبيل المثال، تُنتج كل من كلمتي "Robert" و"Rupert" الرمز "R163"، بينما تُنتج كلمة "Honeyman" الرمز "H555". عند تصميم تطبيق يجمع بين SQL ولغة برمجة، يجب على المصمم تحديد ما إذا كان سيُجري جميع عمليات ترميز Soundex في خادم SQL أو في لغة البرمجة. يمكن لتطبيق MySQL إرجاع أكثر من 4 أحرف. [ 16 ] [ 17 ]

المتغيرات

تقوم خوارزمية مماثلة تسمى "Reverse Soundex" بإضافة الحرف الأخير من الاسم بدلاً من الحرف الأول.

طُرحت خوارزمية نظام تحديد الهوية والاستخبارات لولاية نيويورك (NYSIIS) في عام 1970 كتحسين لخوارزمية ساوندكس. تتعامل NYSIIS مع بعض التراكيب اللغوية متعددة الأحرف (n-grams) وتحافظ على الترتيب النسبي للأحرف المتحركة، بينما لا تفعل ساوندكس ذلك.

طُوِّرَ نظام دايتش-موكوتوف الصوتي (D-M Soundex) عام 1985 على يد عالم الأنساب غاري موكوتوف، ثم حُسِّنَ لاحقًا على يد عالم الأنساب راندي دايتش نظرًا للمشاكل التي واجهوها أثناء محاولتهم تطبيق نظام راسل الصوتي على اليهود ذوي الألقاب الجرمانية أو السلافية (مثل موسكوفيتز مقابل موسكوفيتز أو ليفين مقابل ليفين). يُشار إلى نظام D-M الصوتي أحيانًا باسم "النظام الصوتي اليهودي" أو "النظام الصوتي لشرق أوروبا" [ 18 ] ، على الرغم من أن مؤلفيه لا يُشجعون على استخدام هذه التسميات. يمكن لخوارزمية D-M Soundex أن تُعيد ما يصل إلى 32 ترميزًا صوتيًا فرديًا لاسم واحد. تُعاد نتائج D-M Soundex بتنسيق رقمي بالكامل يتراوح بين 100000 و999999. هذه الخوارزمية أكثر تعقيدًا بكثير من نظام راسل الصوتي.

استجابةً لقصور خوارزمية ساوندكس، طوّر لورانس فيليبس خوارزمية ميتافون عام ١٩٩٠. وفي عام ٢٠٠٠، طوّر فيليبس نسخة محسّنة من ميتافون أطلق عليها اسم "دابل ميتافون". تتضمن دابل ميتافون مجموعة قواعد ترميز أوسع بكثير من سابقتها، وتتعامل مع مجموعة فرعية من الأحرف غير اللاتينية، وتُعيد ترميزًا أساسيًا وآخر ثانويًا لمراعاة اختلاف نطق الكلمة الواحدة في اللغة الإنجليزية. وفي عام ٢٠٠٩، أصدر فيليبس ميتافون ٣ كإصدار مُحسّن لتقديم نسخة احترافية تُوفّر نسبة أعلى بكثير من الترميزات الصحيحة للكلمات الإنجليزية، والكلمات غير الإنجليزية الشائعة لدى الأمريكيين، والأسماء الأولى والأخيرة في الولايات المتحدة. كما تُوفّر إعدادات تسمح بمطابقة أكثر دقة للحروف الساكنة والمتحركة الداخلية، مما يُتيح للمبرمج التركيز على دقة المطابقة بشكل أكبر.

انظر أيضاً

مراجع

  1. ١ ٢ "نظام فهرسة ساوندكس" . الأرشيف الوطني . إدارة المحفوظات والسجلات الوطنية . ٣٠ مايو ٢٠٠٧. مؤرشف من الأصل في ١٢ مارس ٢٠٢٠. تم الاطلاع عليه في ٢٤ ديسمبر ٢٠١٠ .
  2. "الوثائق: 9.1: fuzzystrmatch" . PostgreSQL . مؤرشف من الأصل في 23 يوليو 2020. تم الاطلاع عليه في 3 نوفمبر 2012 .
  3. "دليل مرجعي لـ MySQL 5.5 :: 12.5 دوال السلاسل النصية" . MySQL . SOUNDEX(str). مؤرشف من الأصل بتاريخ 15 سبتمبر 2016. 
  4. "وظائف SQL المدمجة لتوسيع النطاق" . SQLite . 16 يوليو 2022. soundex(X). مؤرشف من الأصل في 20 ديسمبر 2022. تم الاسترجاع في 24 ديسمبر 2022 .
  5. "SOUNDEX (Transact-SQL)" . مايكروسوفت ليرن . 10 يناير 2010. مؤرشف من الأصل في 23 أكتوبر 2022. تم الاطلاع عليه في 3 نوفمبر 2012 .
  6. "SOUNDEX" . مرجع SQL لقواعد البيانات . مؤرشف من الأصل في 21 أكتوبر 2017. تم الاطلاع عليه في 20 أكتوبر 2017 .
  7. "SOUNDEX" . وظائف للتعامل مع الأوتار .
  8. "SOUNDEX — توثيق Snowflake" . docs.snowflake.com . تم الاطلاع عليه بتاريخ 16 يناير 2023 .
  9. "ساوندكس" . حلول برمجيات SAP . 28 مايو 2014. مؤرشف من الأصل في 25 ديسمبر 2022. تم الاسترجاع في 24 مايو 2021 .
  10. "المطابقة الصوتية: فهرس صوتي أفضل" . تم الاطلاع عليه بتاريخ 2012-11-03 .
  11. أوديل، مارغريت كينغ (1956). "الربح في إدارة السجلات" . الأنظمة . 20. نيويورك: 20.
  12. ↑ براءة اختراع أمريكية رقم 1261167 ، آر سي راسل، "(بدون عنوان)"، صدرت في 2 أبريل 1918  ( مؤرشفة )
  13. ↑ براءة اختراع أمريكية رقم 1435663 ، آر سي راسل، "(بدون عنوان)"، صدرت في 14 نوفمبر 1922 ( مؤرشفة ) 
  14. "رقم التسجيل للعلامة التجارية 71246709 — SOUNDEX" . حالة العلامة التجارية واسترجاع الوثائق من مكتب براءات الاختراع والعلامات التجارية الأمريكي . تم الاسترجاع بتاريخ 2026-06-06 .
  15. كنوت، دونالد إي. (1973). فن برمجة الحاسوب: المجلد 3، الفرز والبحث . أديسون-ويسلي. الصفحات 391-392 . ISBN  978-0-201-03803-3OCLC 39472999. مؤرشف من الأصل بتاريخ 2008-09-04 . تم الاطلاع عليه بتاريخ 2010-09-17 . 
  16. CodingForums.com ()
  17. "MySQL :: دليل مرجعي لـ MySQL 5.5 :: 12.5 دوال السلاسل النصية - SOUNDEX" . dev.mysql.com .  
  18. موكوتوف، غاري (2007-09-08). "التصنيف الصوتي وعلم الأنساب" . تم الاسترجاع في 2008-01-27 .