ما هو المطلوب في البداية:
- برنامج "صيد" أسماء فريدة من المنتجات في صناعة معينة من النص الخام باللغة الروسية. نص أولي - نص كتبه شخص ما ، يعبر ببساطة عن أفكاره ولا يهتم بتكوين قائمة كلمات أو اختيارها ؛
- الحصول على قائمة الكلمات تلقائيا.
- الحد الأدنى من المعالجة اليدوية أو الآلية لتحويل القائمة إلى مجموعة من علامات التصنيف أو الكلمات الرئيسية للنص.
أعتقد أن العديد من الأشخاص يواجهون المشكلة ضمنيًا كل يوم ، بعد كتابة أو تحليل مقال أو منشور أو تعليق أو ملاحظة أو تقرير وما إلى ذلك. لذلك ، خلال عملي ، اضطررت إلى التعامل مع هذه المشكلة عدة مرات في اليوم. لذلك ، يمكن القول أن "الكسل" ، بالمعنى الجيد للكلمة ، قادني إلى فكرة الأتمتة.
الآن ، عندما أكتب هذه المقالة ، تم الحفاظ على الفكرة ، لكن مجموعة البيانات الخاصة بالنتيجة النهائية قد تغيرت كثيرًا:
- لا يتم اختيار الكلمات ، ولكن العبارات الرئيسية ، بما في ذلك الكلمات ؛
- قائمة تعبيرات المفاتيح المميزة بـ 16 علامة مختلفة ؛
- جميع كلمات النص (بما في ذلك الكلمات غير الرئيسية) يتم تحديدها - يتم تقديمها في النموذج الأولي أو يتم توحيدها ضمن التنسيق المعروض ؛
- تحتوي كل كلمة في النص على تحليلات إضافية متعلقة بالموضع في النص وعدد مرات التكرار.
تقوم نتائج برامج
Nrlpk (معالجة اللغة الروسية الطبيعية بواسطة المفاتيح) بإعداد البيانات من أجل:
- تحليل النصوص الخاصة بمجموعة غير محدودة من الموضوعات والصناعات (تم إجراء التطوير والاختبار على أساس المواد الصناعية المعقدة والصناعية - المجمع الصناعي العسكري) ؛
- التشحيم التلقائي ، التصنيف ، الفهرسة ، تجسيد المواد (المواقع الإلكترونية) ؛
- المراقبة والتصفية حسب المحتوى باستخدام إعدادات استجابة النظام (خدمات وأنظمة الأمان في حلقات مغلقة أو عبر الإنترنت) ؛
- متعدد الطبقات العلامات من النصوص (منظمة العفو الدولية).
جودة
حتى لا يجتاز المقال بأكمله أولئك الذين يؤمنون بالأرقام فقط ، وليس بالكلمات وأولئك الذين يتوقعون الجودة المطلقة ولا يقبلون الآخر ...
تتراوح جودة العينة بين 95 و 100٪ عند اختبار المقالات التي لا يتجاوز حجمها 3500 كلمة. يتعلق الانتثار بنوعية وتعقد العرض التقديمي. فيما يلي
مثال على أحد المقالات التي شاركت في الاختبار ، وهنا
نتج عن تحليله التلقائي .
من الضروري إزالة حوالي 7-10 ٪ من الفاصل الزمني للجودة التي تم الحصول عليها ، أي من المرجح أن يكون المستوى الفعلي للجودة 85-93 ٪. هذا يرجع إلى حقيقة أن:
- أثناء عملية الاختبار ، تتغير متطلبات البيانات المحددة ، والتي لم ألاحظها من قبل وأعتقد أنني لا ألاحظ كل شيء الآن ؛
- عند التوفيق يدويًا ، هناك رأي شخصي بأن ما يمكن التعرف عليه بالضبط كمفتاح في مقال وما هو غير محتمل - وعلى الأرجح لا يطابق المفتاح بالمفتاح برأي مؤلفي المقالات.
يمكن العثور على قائمة كاملة بالمقالات التي تم اختبارها وإحصائيات مفصلة للنتائج
على GitHub .
ما الذي أثر بشكل خاص على جودة النتيجة في كل مقالة يمكن
العثور عليه في ملف الأسباب على جيثب .
كيف تقرأ النتائج
في كل مجلد لمقالة محددة يتم تحليلها ، هناك 5 ملفات مع مجموعة بيانات في Unicode:
- words.csv - قائمة بالكلمات ذات الصلة ، بما في ذلك قائمة بالكلمات مجهولة الهوية ؛
- keys.csv - قائمة بالكلمات الرئيسية ، تحتوي الآن ، بالإضافة إلى التعبيرات المحددة ، على كلمات تتكرر في النص على الأقل عددًا محددًا من المرات - في هذه الحالة ، 4 مرات على الأقل ؛
- garbage.csv - قائمة بالكلمات المجهولة الهوية ؛
- descr_words.csv - وصف (إحصائيات) لقائمة جميع كلمات النص ؛
- descr_keys.csv - وصف (إحصائيات) لقائمة الكلمات الرئيسية ؛
و reason_quality.txt عبارة عن قائمة (اختياري) من التعبيرات من المقالة التي تم تحديدها يدويًا وفقدت المفاتيح ، أو حصلت بشكل غير صحيح (وفقًا للمؤلف nrlpk).
يمكنك
معرفة كيفية قراءة هذه الملفات
من ملف Legend على GitHub .
يسمح لك nrlpk بالحصول على أي مجموعة بيانات بأحد التنسيقات التالية:
- Pandas Dataframe (افتراضي) ؛
- قاموس بايثون
- JSON.
- ملف CSV.
منهجية الاختبار
- تحليل النص البرمجي (التلقائي).
- التحديد اليدوي (بالعين) والتعريف اليدوي (للوسم) التعبيرات الرئيسية وتسوية قائمة التعبيرات الرئيسية المستلمة ، مع تلقي القائمة تلقائيًا.
- حساب النسبة المئوية للجودة : عدد التعبيرات الفائتة أو التي بها أخطاء إملائية بشكل غير صحيح + عدد الكلمات في البيانات المهملة ، إلى إجمالي عدد الكلمات في النص.
الأدوات
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