أنا أو RoboLoyer أو كيفية البحث عن الحالات الشاذة في المستندات

هل يمكنك أن تتخيل عدد الوثائق التنظيمية في الساعة التي يجب أن ينظر إليها محامي الشركة وما هي العواقب التي قد يؤدي إليها إهماله؟ يجب أن يقرأ المحامي الفقير كل عقد ، خاصة إذا لم يكن هناك نموذج قياسي له ، والذي يحدث في كثير من الأحيان.

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

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


1. نتعامل مع المعلومات المنظمة


نحن محظوظون لأن النصوص في العقود منظمة وجافة ومجمعة بما فيه الكفاية وفقًا لقوالب معينة. للعمل على المشروع ، تم اقتراح الفكرة لتنفيذ نموذج أولي يعتمد على العقود والعقود من موقع zakupki.gov.ru (حصلنا على 200.000 مستند). بالنسبة لـ 170.000 عقد ، تمكنا من تحديد الهيكل: ديباجة وفصول وفقرات ومرفقات العقد ، مع مراعاة الكلمات الرئيسية والموضع في النص والترقيم.

2. مجموعة متنوعة من العقود


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

يمكنك توحيد المجموعات باستخدام متجه عرض مستند tf-idf ، لكننا قررنا تجربة خوارزمية Doc2Vec للمتعة فقط. باستخدام خوارزمية Doc2Vec ، تم تحويل العقود إلى ناقلات ، وتم إرسال ناقلات العقد الناتجة إلى إدخال خوارزمية التجميع. استخدمنا خوارزمية K-يعني لنواقل عنقودية. نظرًا لأنه يتم قياس التشابه عادةً باستخدام مسافة جيب التمام ، فقد استخدمناه بدلاً من المسافة الإقليدية.

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

أمثلة على الكلمات التي تصف المجموعات:

  • مستأجر ، مالك ، شقة ، تأجير ، مطور
  • الكفاءة ، التدريس ، التعليمية ، الأكاديمية ، بدوام كامل
  • مقاول عام ، مقاول من الباطن ، بناء عام ، مصمم ، تخطيط حضري
  • الصيدلة والحجر الصحي والإنفاق والصحة النباتية محكم
  • المخبر ، حارس الأمن ، قمع ، قلق ، جريمة
  • المرخص له ، المرخص من الباطن ، الفيلم ، المرخص له ، التتابع
  • مقترض ، ضمان ، دائن ، قرض ، مرهون
  • مركزية ، وإمدادات الطاقة ، وداخل الأنابيب ، والسباكة ، والصرف الصحي

3. ما هي الحالات الشاذة التي يمكن أن نواجهها في العقود


دعونا نحدد الحالات التي سنعتبرها غير طبيعية وما يمكننا القيام به معهم. حددنا السيناريوهات التالية:

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

4. في أي شكل لتقديم العقود


كما سبق ذكره ، يتكون العقد من فصول ، وتنقسم الفصول إلى فقرات ، قد تحتوي كل فقرة على فقرات فرعية ، إلخ. لتقسيم العقد إلى فصول وفقرات ، أخذنا في الاعتبار الترقيم والتحويلات والكلمات الرئيسية: "الفصل" و "المادة" وما إلى ذلك. يتكون كل عنصر من جملة واحدة أو أكثر. لتقسيم عنصر إلى جمل ، تم استخدام sent_tokenize من وحدة nltk.tokenize.

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

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

5. تعريف البنود غير الطبيعية في العقد


لقد تمكنا بالفعل من فصل العقود حسب النوع باستخدام المجموعات وتمكنا من تحديد مجموعات من الفصول المماثلة. الآن ، باستخدام المعرفة المتراكمة حول بند معين لنوع معين من العقود ، يمكننا أن نفهم ما يجب إصلاحه في العقد الحالي. دعونا نحسب احتمالية شذوذها لكل جملة من الفصل.

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

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

6. ماذا تفعل مع العناصر المفقودة


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

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

خوارزمية:


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

بعد استلام نموذج لكل فصل ، يمكننا تحديد العناصر المفقودة الموجودة في النموذج ولكنها ليست في العقد الحالي ، وننصح المحامي بإضافتها.

7. خط أنابيب كامل


لتلخيص وجمع كل الخطوات معًا:

طاء - جمع ومعالجة وتخزين مجموعة العقود
أ. تجميع متن العقود النموذجية.
تصنيف / تصنيف العقود حسب النوع.
ج- تقسيم العقد إلى فصول وفقرات وجمل.
د- إزالة الكيانات المسماة من العقود.
هـ- تجميع الفصول حسب عناوينها.
F. لكل مجموعة الفصل ، تدريب Word2Vec.
ز- مطابقة كل جملة مع متجه المجموع المرجح لناقل الكلمات المدرجة فيه.
حشد المتجهات الجملة المستلمة وتخزين كل عنقود بشكل منفصل للبحث بسرعة عن أقرب ناقل في المجموعة الأقرب.
1. لكل مجموعة الفصل ، تدريب MinHashLSH.

II. البحث عن الحالات الشاذة في مستند جديد
أ. تسليط الضوء على النقاط غير الطبيعية
1. تحديد نوع العقد (فئة أو مجموعة)
2. تقسيم الوثيقة إلى فصول وفقرات وجمل
3. بالنسبة لكل فصل ، ابحث عن مجموعة الفصول المقابلة في قاعدة البيانات
4. تطابق كل جملة مع ناقل
5. ابحث عن كل عرض للعقد عن أقرب مجموعة من العروض ، وفيها أقرب عرض
6. احسب المسافات بين ناقلات الاقتراح ولون الجمل على أساس المسافات التي تم الحصول عليها.
7. تلوين أجزاء من الجمل فقط ، إذا كانت تختلف في بضع كلمات مع أقرب كلمة.
8. نصح التحرير في شكل الجملة التالية.
ب. البحث عن العناصر المفقودة
1. لكل فصل ، قم ببناء قالب
2. تقديم المشورة لإضافة العناصر المفقودة من القالب

8. تقييم الجودة


لتقييم جودة حلول المشكلة ، تم تشكيل مجموعة اختبار من العقود. تمت إضافة حالات شاذة بشكل مصطنع إلى العقود في شكل حذف جزء من الكلمات ، وإدخال الكلمات / العبارات في الجمل ، وإدراج الجمل من الفصول الأخرى ، وحذف الجمل. قمنا بتقييم جودة كل نوع من الشذوذ وحصلنا على التوزيع التالي لأخطاء التحديد:


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

9. التصور


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



10. حيثما ينطبق ذلك؟


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

لذا ، لا يستطيع المحامون من اللحم والدم الاستغناء عنه تمامًا ، لكن التقنيات الحديثة تسمح لهم بتسهيل الحياة.

المواد التي أعدتها Elena Sannikova ( helen_sunny ).

Source: https://habr.com/ru/post/ar419837/


All Articles