استخراج العبارة الرئيسية

في المقال السابق من سلسلة مقدمة في معالجة اللغة الطبيعية أخذنا جوله سريعة في الجوانب المختلفة لإستخراج المعلومات و تعرفنا على خط إنتاج نموذجي لمهام إستخراج المعلومات .  فلنبدأ الآن في النظر في مهمة استخراج العبارات الرئيسية

استخراج العبارة الرئيسية

ضع في اعتبارك سيناريو حيث نريد شراء منتج يحتوي على مئات المراجعات على Amazon. لا توجد طريقة سنقرأها جميعًا للحصول على فكرة عما يفكر فيه المستخدمون حول المنتج. لتسهيل ذلك ، تمتلك أمازون ميزة تصفية: “قراءة المراجعات التي تذكر”. يقدم هذا مجموعة من الكلمات الرئيسية أو العبارات التي استخدمها العديد من الأشخاص في هذه المراجعات لتصفية المراجعات ، كما هو موضح في الشكل أدناه. هذا مثال جيد على المكان الذي يمكن أن يكون فيه استخراج الكلمات الرئيسية أو المفاتيح (keyword or keyphrase extraction ) أو  (KPE). مفيدًا في تطبيق نستخدمه جميعًا.

تصفية المراجعات في أمازون

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

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

 ومن ثم ، فإن الأساليب غير الخاضعة للإشراف التي لا تتطلب مجموعة بيانات مصنفة والتي لا تعرف المجال إلى حد كبير هي أكثر شيوعًا لـ KPE. تُستخدم هذه الأساليب أيضًا بشكل أكثر شيوعًا في تطبيقات KPE في العالم الحقيقي. أظهرت الأبحاث الحديثة أيضًا أن طرق تعلم الألة الحديثة لـ KPE لا تؤدي أفضل من الأساليب غير الخاضعة للإشراف (ورقة بحثية).

طريقة عملها

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

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

تطبيق خوارزميات استخراج الكلمات الرئيسية والعبارات

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

import textacy.ke
from textacy import *

# والذي سيتم استخدامه لجميع عمليات المعالجة الإضافية  spacy قم بتحميل نموذج  ،.
en = textacy.load_spacy_lang("en_core_web_sm")

# نستخدم أي نص نرغب به النص هنا من ويكيبيديا
#https://en.wikipedia.org/wiki/Natural_language_processing
mytext = open("Data/nlphistory.txt").read()

#Spacy تحويل النص إلى صيغة 
doc = textacy.make_spacy_doc(mytext, lang=en)
# TextRank طباعة الكلمات الرئيسي بإستخدام خوارزمية 
print("Textrank output: ", [kps for kps, weights in textacy.ke.textrank(doc, normalize="lemma", topn=5)])\
# SGRank طباعة الكلمات الرئيسي بإستخدام خوارزمية 
print("SGRank output", [kps for kps, weights in textacy.ke.sgrank(doc, topn=5)])

و المخرج هو

Textrank output:  ['successful natural language processing system', 'statistical machine translation system', 'natural language system', 'statistical natural language processing', 'natural language task']
SGRank output ['natural language processing system', 'statistical machine translation', 'research', 'late 1980', 'early']

[{'natural language processing system'}, {'statistical machine translation'}, {'statistical model'}, {'late 1980'}, {'research'}, {'example'}, {'world'}, {'ELIZA'}, {'early'}, {'real'}]

هناك العديد من الخيارات للطول التي يجب أن تكون فيها n-grams في هذه العبارات ؛ ما هي علامات جزء الكلام (pos tags) التي يجب مراعاتها أو تجاهلها ؛ ما هي المعالجة المسبقة التي يجب إجراؤها مسبقًا ؛ كيفية التخلص من n-grams المتداخلة ، مثل الترجمة الآلية الإحصائية والترجمة الآلية في المثال أعلاه ؛ وهلم جرا.  

أظهرنا مثالًا واحدًا على تنفيذ KPE باستخدام textacy. ومع ذلك ، هناك خيارات أخرى. على سبيل المثال ، مكتبة Python gensim لديها مستخرج كلمات مفتاحية يعتمد على TextRank يوضح  هذا الدفتر  كيفية تنفيذ TextRank من البداية. 

نصائح عملية

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

  • تعتبر عملية استخراج n-grams المحتملة وبناء الرسم البياني معهم حساسة لطول المستند ، مما قد يمثل مشكلة في سيناريو الإنتاج. تتمثل إحدى طرق التعامل معها في عدم استخدام النص الكامل ، ولكن بدلاً من ذلك حاول استخدام أول M٪ وآخر N٪ من النص ، حيث نتوقع أن تغطي الأجزاء التمهيدية والختامية من النص الملخص الرئيسي لـ النص.
  • نظرًا لأنه يتم تصنيف كل عبارة رئيسية بشكل مستقل ، ينتهي بنا الأمر أحيانًا إلى رؤية عبارات رئيسية متداخلة (على سبيل المثال ، “إعادة شراء الأسهم” و “إعادة الشراء”). يمكن أن يكون أحد الحلول لهذا هو استخدام بعض مقاييس التشابه (على سبيل المثال ، تشابه جيب التمام) بين العبارات الرئيسية ذات الترتيب الأعلى واختيار العبارات الأكثر اختلافًا مع بعضها البعض. يقوم textacy بالفعل بتنفيذ وظيفة لمعالجة هذه المشكلة ، كما هو موضح في الكود أعلاه.
  • تعتبر رؤية أنماط ذات نتائج عكسية (على سبيل المثال ، عبارة رئيسية تبدأ بحرف جر عندما لا تريد ذلك) مشكلة شائعة أخرى. من السهل نسبيًا التعامل مع هذا من خلال تعديل رمز التنفيذ للخوارزمية وترميز المعلومات بشكل صريح حول أنماط الكلمات غير المرغوب فيها.
  • يمكن أن يؤثر الاستخراج غير الصحيح للنص على بقية عملية KPE ، خاصة عند التعامل مع تنسيقات مثل PDF أو الصور الممسوحة ضوئيًا. هذا في المقام الأول لأن KPE حساس لبنية الجملة في المستند. ومن ثم ، فمن الجيد دائمًا إضافة بعض المعالجة اللاحقة إلى قائمة العبارات الرئيسية المستخرجة لإنشاء قائمة نهائية ذات مغزى بدون ضوضاء.
  • يمكن أن يكون الحل المخصص عبارة عن مجموعة من خوارزمية KPE القائمة على الرسم البياني والتي تعالج المشكلات المذكورة أعلاه وقائمة خاصة بالمجالات التجريبية ، إذا كانت متوفرة. من واقع خبرتنا ، يغطي هذا المشكلات الأكثر شيوعًا التي نواجهها مع KPE في مشاريع معالجة اللغة الطبيعية النموذجية.

ختاماُ 

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

إضافة تعليق