TextRadar خوارزمية بحث غامض. التحف (الجزء 2)

في منشور سابق ، خوارزمية البحث TextRadar غامض. تعتبر المناهج الرئيسية (الجزء 1) المقاربات الرئيسية. عند حل المشكلات العملية ، تم تحديد المواقف التي لا يوفر فيها استخدام المنهجية الأساسية سوى الجودة المطلوبة للبحث. ونتيجة لذلك ، تم إنشاء الوظائف الإضافية (خيارات الخوارزمية) ، والتي سيتم مناقشتها.

توجد أجزاء من كلمة واحدة من سلسلة البحث في عدة كلمات من سلسلة البيانات


دع سلسلة البحث تكون ABCD وسلسلة البيانات تكون ABCE DFG.

صورة

سيؤدي تطبيق الخوارزمية الأساسية إلى النتيجة التالية:

صورة

عندما تحدث مثل هذه التصادمات ، يتم حذف مجموعات إضافية. اختيار المجموعات لحذفها هو سؤال منفصل ومعقد. ونتيجة لذلك ، ينبغي أن تبقى أهم المجموعات. في حالة المثال أعلاه ، الجواب واضح - يجب حذف أصغر المجموعات.

صورة

يقع جزء البداية لكلمة سلسلة البحث داخل كلمة سلسلة البيانات


ضع في اعتبارك مثال العثور على السلسلة ABC في السلسلة XYZAB.

صورة

ستنتج الخوارزمية الأساسية ما يلي:

صورة

كقاعدة ، هذه النتيجة ليس لها قيمة عملية ويجب التخلص منها.

تم العثور على تغطية غير كافية لكلمة في صف بيانات مع وجود أجزاء


إذا بحثنا في السطر ABCDEF عن كلمة ABXYZ

صورة

نحصل عليها:

صورة

هذه النتيجة أيضًا لا قيمة لها ويجب التخلص منها.

المجموعات الزائدة


بالنظر إلى سلسلة البحث ABCXEF وسلسلة البيانات ABCEF ABCDEF.

صورة

من وجهة نظر الخوارزمية الأساسية ، فإن كلمتين من سلسلة البيانات متكافئة ، ولكن أولهما سيكون لهما الأولوية (إذا تم تحديد أول كلمة تمت مصادرتها) ، ثم ستكون نتيجة البحث كما يلي:

صورة

إذا قدمنا ​​مفهوم المجموعة الفائقة باعتبارها اتحادًا لمجموعات الكلمات الموجودة على نفس القطر (أو التحول ، راجع المنشور السابق ، الذي يناقش أساسيات الخوارزمية) وزد أولوية المجموعات المضمنة في المجموعة الفائقة من خلال المعلمة حجم المجموعة الفائقة المحسوبة لكل مجموعة ونفترض أن إذا لم تكن المجموعة جزءًا من المجموعة الفائقة ، فسيكون حجم المجموعة الفائقة لها مساوياً لحجم المجموعة نفسها - على سبيل المثال ، نحصل على النتيجة التالية:

صورة

كلمات طويلة مبالغ فيها


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

صورة

علاوة على ذلك ، من وجهة نظر جودة البحث ، فإن الكلمة الأطول لا تكون دائمًا ذات معنى أكثر.

تأمل في مثال. افترض أنك بحاجة إلى العثور على السلسلة ABCDEFG XYZ في نص يتكون من صفحتين:

1. ABCDEFG ... QWE

صورة

صورة

2. ABCDEFO ... XYZ

صورة

صورة

بسط معامل تكوين المجموعة (المقام ليس له تأثير نوعي على النتيجة ، انظر الصيغة أعلاه) للصفحة الأولى هو 49 ، للصفحة الثانية - 36 + 9 = 45. أي ، إذا حذفنا التأثير على نتيجة عامل الطول ، فإن نتيجة البحث في الصفحة الأولى ستكون ذات صلة أكبر ، والتي لا تلبي التوقعات - في بعض الحالات ، ستكون نتيجة البحث على الصفحة 2 أكثر قيمة.

يمكن أن يكون أحد الحلول إدخال قيود على أقصى طول للمجموعات . في مثالنا ، إذا كان الحد الأقصى لطول المجموعة محددًا بـ 6 ، على سبيل المثال ، نحصل على 36 للصفحة الأولى و 45 للصفحة الثانية ، والتي ستوفر النتيجة التي نتوقعها - ستكون صلة الصفحة الثانية أعلى من الصفحة الأولى.

طريقة أخرى لحل مشكلة تناقض أهمية كلمات عبارة البحث في النتيجة الإجمالية لطولها هي حساب مدى صلة عبارة البحث كمتوسط ​​صلة الكلمات المضمنة بها ، محسوبة بشكل مستقل. ولكن هنا تنشأ المشكلة المعاكسة - الحاجة إلى تقليل أهمية الكلمات القصيرة ، والتي يمكن حلها بطريقة مماثلة - عن طريق تحديد قيمة العتبة لطول الكلمات التي ينطوي عليها تشكيل الصلة العامة ، ولكن بالفعل إلى الحد الأدنى من القيمة.

التكرار المتكرر للأجزاء المطلوبة


على النحو التالي من البيان ، تتمثل المهمة في البحث عن سلسلة البحث الأكثر صلة بمجموعة من الأجزاء ، وبالتالي فإن حقيقة التكرار المتكرر للأجزاء المطلوبة في النص لا تؤثر على النتيجة - سيتم استخدام الجزء المناسب الأول كنتيجة البحث ، وسيتم التخلص من الباقي أثناء المعالجة. خذ بعين الاعتبار مثال على العثور على السلسلة ABC في السلسلة ABCD ABCE ABCF ABCG.

صورة

سيؤدي تطبيق الخوارزمية الأساسية إلى النتيجة التالية:

صورة

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

صورة

سرعة معالجة البيانات


تتطلب معالجة البيانات أثناء التنقل متطلبات سرعة معينة - يجب ألا يستغرق البحث وقتًا طويلاً.

تحديد الحد الأدنى لحجم المجموعات المعالجة ، وتعطيل خيارات البحث

لزيادة سرعة البحث ، يمكنك تحديد الحد الأدنى لطول المجموعات المعالجة.

من الناحية العملية ، يتم تطبيق النهج التالي - أولاً يتم إجراء التمرير "التقريبي" الأول مع تقييد الحجم الأدنى للمجموعة وتعطيل بعض خيارات مجموعة بيانات البحث بالكامل وتحديد جزء البيانات الأول (يتم تحديد حجم جزء البيانات الأمثل من سياق المشكلة التي يتم حلها) ، ثم الثاني ، وأكثر شمولًا تجاوز فقط صفحات هذا الجزء ، بالفعل دون قيود على حجم المجموعات ومع إدراج جميع الخيارات الضرورية.

معالجة البيانات المتوازية

هناك طريقة أخرى لزيادة سرعة البحث وهي معالجة البيانات المتوازية. ونتيجة لذلك ، مع قاعدة بيانات بحث كبيرة ، يمكن تحقيق وقت معالجة إجمالي مقبول عن طريق زيادة عدد العمليات المتوازية ، والتي تتطلب بطبيعة الحال زيادة سعة المعدات.

النتائج


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

يمكن رؤية نتائج تطبيق المناهج الموصوفة على المنصة التجريبية المنتشرة على الموقع الإلكتروني textradar.ru . على مثال البحث في نص الرواية L.N. يمكن لـ "الحرب والسلام" في تولست مقارنة نتائج البحث باستخدام الإصدارات الأساسية والمتقدمة من الخوارزمية.

صورة

قم بتنزيل أو مشاهدة المشروع التجريبي بوظائف متقدمة (C # ASP.NET MVC) هنا .

All Articles