أهلا بكم في عالمي


خوارزمية المطابقة الصوتية SoundX

بسم الله الرحمن الرحيم
اظن ان هذه المقالة هي اول مقالة تكتب عن خوارزمية صوتية تدعم اللغة العربية
ستفهم مبدأ عمل الخوارزمية من خلال المقالة و ستتمكن من تحميل مثال كتبته لتطبيق الخوارزمية
على اللغة العربية المثال مكتوب بلغة الـ C Sharp.
في عام 1935 قامت هيئة الإحصاء الامريكية بتصميم خوارزمية SoundX , و هي خوارزمية تقوم بتحويل الكلمات إلى ما يسمى (اكواد SoundX) ثابتة الطول
تقوم الخوارزمية على تقسيم الكلمات المتشابهة صوتيا في مجموعات مبنية على صفات صوتية مميزة.
يوضحها الجدول التالي :
post-63163-1174742488.jpg

لتشفر اسما ما فإن الخوارزمية تحفظ الحرف الأول من الاسم ثم تستبتدل الأحرف الصامتة التي تليه بالقيم الرقمية المعروضة في الجدول السابق , اما الاحرف الصوتية و كذلك الأحرف ( h, w , y ) يتم تجاهلها لأن المعلومات الصوتية التي تقدمها هذه الحروف تسبب غاليا لبسا او غموضا عندما ترفق مع حروف أخرى.
اذا ما جاء حرف صامت متكررا وراء نفسه فإنه يمثل لمرة واحدة في الكود .

هذه هي خوارزمية SoundX بأبسط صيغها حيث تم تطوير اصدارات من الخوارزمية تتمتع بدقة تمييز صوتية أعلى لكنها اكثر تعقيدا ففي احدى الاصدارات يتم تبديل المحرف x بالمحرف ecs قبل عملية إنشاء كود SoundX مثلا او تم تقسيم الاحرف إلى مجموعات اكثر تفصيلا.

اذا سيتقسم عملنا إلى ما يلي :
– إبقاء الحرف الاول من الاسم .
– استبدال المحارف (a, e, i, o, u, h, w,y) بالرقم 0
– استبدال المحارف (b, f, p, v) بالرقم 1
– استبدال المحارف (c, g, j, k, q, s, x, z) بالرقم 2
– استبدال المحارف (d, t) بالرقم 3
– استبدال المحارف (l) بالرقم 4
– استبدال المحارف (m, n) بالرقم 5
– استبدال المحارف r بالرقم 6

بعدها نخزن الكود الناتج عن كلمة و عندما يدخل المستخدم كلمة نقوم بالبحث عن الكلمات التي لها نفس الكود الصوتي .

بالنسبة للغة العربية قمت بعمليات بحث كثيرة عن نسخة عربية من SoundX لكن لم اجد فبدأت ببعض التجارب الشخصية بناء على فكرة النسخة الانجليزية لكن لم تكن النتائج مرضية إلى ان وجدت ورقة بحث لفريق من الباحثين من معهد ايلينويس للتكنولوجيا Illinois Institute of Technology قام بها خمسة باحثين من المعهد في العام 2006 للحصول على نسخة عربية من SoundX و كانت نتائج البحث رائعة لكن التطوير عليها ما يزال ممكنا للحصول على نتائج أفضل .

و ما دمنا حصرنا الحروف العربية في مجموعات مناسبة اذا اصبح بامكاننا تنفيذ العملية كما نفذناها مع النسخة الانجليزية.

الان إلى الشيفرة :
في الأسفل مثال كامل عن استخدام SoundX من اجل اللغة العربية و الانكليزية على حد سواء , و المثال مكتوب بالـ C#
p5ost-63163-1174742777.jpg
و فيما يلي روابط تتحدث عن برمجة SoundX للغة الانكليزية بعدة لغات برمجة :
Vb.NET و C#
Soundex Implementation in C# and VB.NET
Delphi :
1971. Searching Strings by the way they sound
ليست افضل الخوارزميات الصوتية و هي مجرد بداية و النسخة العربية الموجودة في موضوعنا ما تزال بحاجة
للتطوير كما انه هناك خوارزميات صوتية اخرى بحاجة للدراسة اذ انه في العادة يتم دمج نتائج عدة خوارزميات صوتية للحصول على افضل النتائج (انا اعمل على ذلك لكن بشكل متقطع و انا لست ملزما ان اكمل او اتابع)

هناك العديد من الخوارزميات الصوتية مثل :
Soundex
Levenshtein
Metaphone
Phonix
n-gram
الخوارزميات الصوتية تقسم إلى نوعين :
1 – خوارزميات مرتبطة باللغة و ميزاتها مثل SoundX حيث لا يمكن ان نطبق النسخة الانكليزية على اللغة العربية
2 – خوارزميات مستقلة عن اللغة اي يمكن تطبيقها على اية لغة مباشرة مثل Levenshtein
من التطبيقات الشائعة للخوارزميات الصوتية محررات النصوص مثل MS Word فأنت عندما تكتب كلمة انكليزية بشكل خاطئ
تجد ان المحرر يقترح عليك عدة تصحيحات لكلمات لها نفس اللفظ الصوتي للكلمة التي ادخلتها

ملاحظة مهمة : المثال المرفق يتعامل مع قاعدة بيانات MS SQL Server
بالنسبة لقاعدة البيانات فقط قموا بإنشاء قاعدة بيانات SQL Server جديدة و من ثم قوموا باضافة جدول
مؤلف من ثلاث حقول هي
id من نوع int
name من توع VarrChar
value من نوع VarChar

لتحميل الشيفرة : انقر هنا

تمام كوجان في 08/04/2007
ُEmail : TammamKoujan@Gmail.com
يجوز نشر هذه المقالة أو أجزاء منها بشرط المحافظة على اسم الكاتب و ذكر المصدر

Comments on: "خوارزمية المطابقة الصوتية SoundX" (2)

  1. please tammam i need to know how can i insert sound file to data base (sql) beacuse this is my project in level 5 in engineering faculty. e\yasmin

  2. nouraldeen said:

    thanks

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: