المهمة: لاستخراج التعبيرات الرئيسية من النص باللغة الروسية. بيثون البرمجة اللغوية العصبية

ما هو المطلوب في البداية:

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

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

الآن ، عندما أكتب هذه المقالة ، تم الحفاظ على الفكرة ، لكن مجموعة البيانات الخاصة بالنتيجة النهائية قد تغيرت كثيرًا:

  • لا يتم اختيار الكلمات ، ولكن العبارات الرئيسية ، بما في ذلك الكلمات ؛
  • قائمة تعبيرات المفاتيح المميزة بـ 16 علامة مختلفة ؛
  • جميع كلمات النص (بما في ذلك الكلمات غير الرئيسية) يتم تحديدها - يتم تقديمها في النموذج الأولي أو يتم توحيدها ضمن التنسيق المعروض ؛
  • تحتوي كل كلمة في النص على تحليلات إضافية متعلقة بالموضع في النص وعدد مرات التكرار.

تقوم نتائج برامج Nrlpk (معالجة اللغة الروسية الطبيعية بواسطة المفاتيح) بإعداد البيانات من أجل:

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

جودة


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

تتراوح جودة العينة بين 95 و 100٪ عند اختبار المقالات التي لا يتجاوز حجمها 3500 كلمة. يتعلق الانتثار بنوعية وتعقد العرض التقديمي. فيما يلي مثال على أحد المقالات التي شاركت في الاختبار ، وهنا نتج عن تحليله التلقائي .

من الضروري إزالة حوالي 7-10 ٪ من الفاصل الزمني للجودة التي تم الحصول عليها ، أي من المرجح أن يكون المستوى الفعلي للجودة 85-93 ٪. هذا يرجع إلى حقيقة أن:

  • أثناء عملية الاختبار ، تتغير متطلبات البيانات المحددة ، والتي لم ألاحظها من قبل وأعتقد أنني لا ألاحظ كل شيء الآن ؛
  • عند التوفيق يدويًا ، هناك رأي شخصي بأن ما يمكن التعرف عليه بالضبط كمفتاح في مقال وما هو غير محتمل - وعلى الأرجح لا يطابق المفتاح بالمفتاح برأي مؤلفي المقالات.

يمكن العثور على قائمة كاملة بالمقالات التي تم اختبارها وإحصائيات مفصلة للنتائج على GitHub .

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

كيف تقرأ النتائج


في كل مجلد لمقالة محددة يتم تحليلها ، هناك 5 ملفات مع مجموعة بيانات في Unicode:

  1. words.csv - قائمة بالكلمات ذات الصلة ، بما في ذلك قائمة بالكلمات مجهولة الهوية ؛
  2. keys.csv - قائمة بالكلمات الرئيسية ، تحتوي الآن ، بالإضافة إلى التعبيرات المحددة ، على كلمات تتكرر في النص على الأقل عددًا محددًا من المرات - في هذه الحالة ، 4 مرات على الأقل ؛
  3. garbage.csv - قائمة بالكلمات المجهولة الهوية ؛
  4. descr_words.csv - وصف (إحصائيات) لقائمة جميع كلمات النص ؛
  5. descr_keys.csv - وصف (إحصائيات) لقائمة الكلمات الرئيسية ؛

و reason_quality.txt عبارة عن قائمة (اختياري) من التعبيرات من المقالة التي تم تحديدها يدويًا وفقدت المفاتيح ، أو حصلت بشكل غير صحيح (وفقًا للمؤلف nrlpk).

يمكنك معرفة كيفية قراءة هذه الملفات من ملف Legend على GitHub .

يسمح لك nrlpk بالحصول على أي مجموعة بيانات بأحد التنسيقات التالية:

  • Pandas Dataframe (افتراضي) ؛
  • قاموس بايثون
  • JSON.
  • ملف CSV.

منهجية الاختبار


  1. تحليل النص البرمجي (التلقائي).
  2. التحديد اليدوي (بالعين) والتعريف اليدوي (للوسم) التعبيرات الرئيسية وتسوية قائمة التعبيرات الرئيسية المستلمة ، مع تلقي القائمة تلقائيًا.
  3. حساب النسبة المئوية للجودة : عدد التعبيرات الفائتة أو التي بها أخطاء إملائية بشكل غير صحيح + عدد الكلمات في البيانات المهملة ، إلى إجمالي عدد الكلمات في النص.

الأدوات


nrlpk هو مكتوب في بيثون 3.7.0. بالفعل في عملية تطوير برنامج nrlpk المستقبلي ، ظهر متطلبان إلزاميان:

  • اختيار التعبيرات ، وليس الكلمات - بما في ذلك الكلمات ؛
  • وجود قاموس مصطلحات الصناعة المتخصصة.

وقد أثارت هذه المتطلبات موضع شك استخدام NLTK و pymorphy2 ، والتي يمكن أن تحل بعض التحديات.

لإزالة الشكوك ، تم الاختيار اليدوي لمجموعة مختارة من النصوص من وسائل الإعلام مأخوذة من أكبر مجمع أخبار باللغة الروسية حول موضوع المجمع الصناعي العسكري - VPK.Name . كشف تحليل العلامات:

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

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

نظرًا لهذه العوامل ، تم اختيار Pandas كحزمة أساسية للتعامل مع البيانات ، والتي ، بالإضافة إلى المهام الموضحة أعلاه ، مكنت من تنفيذ عملية lemmatization المجمعة.

بعد تحليل القواميس المتاحة للغة الروسية ، تم أخذ OpenCorpora كأساس ، والذي ، بالمناسبة ، يستخدم أيضًا في pymorphy2.
خضع للتحول إلى شكل مناسب للعمل مع Pandas ، وبعد ذلك تم اختيار القواميس التالية منه:

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

يتم حفظ القواميس يونيكود في تنسيق نص بسيط للإدارة من أي برنامج خارجي.

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

  • NUMB رقم ؛
  • ROMN هو رقم روماني.
  • UNKN - لا يمكن تحليل الرمز المميز.

بالمناسبة ، بالنسبة التعبيرات التي تحتوي على بيانات رقمية ، في nrlpk ، بالإضافة إلى NUMB و ROMN ، يتم استخدام العلامات التالية أيضًا:

  • NUSR - يحتوي التعبير على بيانات رقمية واحدة أو أكثر ؛
  • الرياضيات - التعبير يحتوي على صيغة رياضية.

ما هو تعبير الكلمة الرئيسية متعدد الكلمات؟ على سبيل المثال ، NUSR:

  • إذا كان النص هو 25 شباط (فبراير) 2020 ، فسيكون التعبير الرئيسي هو 25 شباط (فبراير) 2020 ، مع "lemma" 02.25.2020 "و gramme" NUSR "وعلامة NUSR ؛
  • ومع ذلك ، إذا كان النص يقول "25 فبراير 2020" ، فسيكون التعبير الرئيسي هو "25 فبراير 2020" ، مع lemma "2f2g" و gramme "WIQM" وعلامة WIQM ؛
  • إذا كان النص يحتوي على 25 طنًا ، فسوف نرى في المفتاح "25 طنًا" ، مع lemma "2t" ، حيث سيتم أيضًا استخدام "NUSR" كغرام وعلامة.

لماذا تحتاج لوصف الكلمات والمفاتيح


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

ولكن نظرًا لأن البرنامج قيد التصحيح ، بدأت تظهر بعض "العناصر النظامية" ، ولم يتم تحديد nrlpk ، كمهمة ، كمهمة.

  • تحديد الكلمات المكتوبة مع الأخطاء الإملائية ؛
  • تحديد النصوص بأسلوب سيء ، سيئ -٪> 35٪ (ملاحظات عملية نتيجة الاختبار) ؛
  • تحديد النصوص المستهدفة (ضيقة التركيز ، تحديد المواقع بوضوح) - skeys-٪ <5 بدون مفاتيح رقمية (ملاحظات عملية نتيجة للاختبار) ؛
  • تحديد النصوص التي لا تخضع لمواضيع الصناعة - skeys-٪ <1.

لا يمكن أن يكون تحليل المزيج المتبادل لمؤشرات الإحصاء مثيراً للاهتمام ، على سبيل المثال

  • تحديد نصوص "النطاق الواسع" - المفاتيح -٪> 45٪ مع ukeys-٪ تميل إلى المفاتيح-٪.

لماذا كل شيء مكتوب


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

PS


يتم تلقائيًا إنشاء تسميات لهذا النص (الأولي - على Habré القليل من التغييرات ) (المدرجة أدناه) بواسطة nrlpk مع المعلمات التالية:

  • لا تتعرف على مفاتيح التعبيرات مع البيانات الرقمية.
  • يتعرف كمفاتيح على الكلمات المكررة في النص 8 مرات على الأقل.

يمكن الاطلاع على البيانات المفصلة حول نتيجة معالجة nrlpk لهذه المقالة على GitHub .

بواسطة: avl33

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


All Articles