كل المقالات

· Casimiro Ferreira· 2 دقيقة قراءة

مجموعة بيانات متعددة اللغات لأنواع الجُمَل: أسئلة، أوامر، تصريحات

  • Datasets
  • Multilingual
  • NLP
  • Intent
  • Classification
  • FOSS

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

sentence-types-multilingual هي مجموعة بيانات التدريب التي تقف خلف تلك الطبقة — 69,300 جملة موسومة، منها 9,900 لكل لغة من سبع لغات: الإنجليزية، والإسبانية، والفرنسية، والألمانية، والإيطالية، والبرتغالية، والهولندية.

ما الذي تعنيه التسميات عملياً

تستخدم مجموعة البيانات مجموعة مسطّحة من ست تسميات — عمود label واحد لكل صف، دون فصل نوع/نوع فرعي — تنعكس مباشرة على الطريقة التي يوجّه بها little_questions (مكتبة الاستدلال التي تستهلك هذه البيانات) المنطوقات:

  • wh_question — أسئلة مبنية حول أداة استفهام (ماذا، أين، من، وهكذا).
  • polar_question — أسئلة بنعم/لا. تضيف تصنيفة EAT داخل little_questions 53 تسمية دقيقة لنوع الإجابة (شخص، موقع، كمية، تعريف، وهكذا) فوق تسميات الأسئلة، لكن تصنيف نوع الجملة هو البوابة الأولى.
  • command — صيغ الأمر. الأوامر لا تنتظر إجابة؛ بل تنتظر فعلاً.
  • request — طلبات فعل مهذّبة أو غير مباشرة، تختلف عن الأمر المجرد.
  • statement — تصريحية. كثيراً ما تحمل التصريحات في سياق الحوار قطبيةً تهمّ فيما بعد: يُشغَّل مصنِّف نعم/لا/ربما على التصريحات لتفسير الإجابات عن الأسئلة السابقة.
  • exclamation — منطوقات ذات وسم عاطفي تحتاج إلى معالجة مختلفة عن التصريحات المحايدة.
{
  "language": "en",
  "label": "wh_question",
  "text": "What time is it?"
}

لماذا لا تُعدّ التغطية عبر اللغات أمراً بسيطاً

القصد التواصلي ذاته يظهر بشكل مختلف في القواعد المختلفة:

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

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

المنظومة النهائية

تُوزَّع النماذج المدرَّبة على هذه البيانات داخل little_questions — وهي مكتبة غير متصلة بالإنترنت وبلا تبعيات (numpy + onnxruntime) تضم مصنِّفات ONNX لكل لغة لنوع الجملة ونموذج قطبية نعم/لا لـ 43 لغة. تُضمَّن النماذج داخل الـ wheel للإنجليزية وتُنزَّل بشكل كسول للغات الأخرى. تُنشَر مصنِّفات نوع الجملة باسم TigreGotico/sentence-types على HuggingFace؛ أما مصنِّفات نوع إجابة EAT فتُدرَّب داخليًا ولا تُنشَر علنًا.

from little_questions import Sentence

s = Sentence("What time is it?")
print(s.sentence_type)     # "question"
print(s.classification)    # e.g. "NUM:date"

little_questions هي طبقة توجيه اللغة الطبيعية لـ OVOS و LILACS: إن تصنيف ما إذا كان المنطوق سؤالاً أو أمراً أو تصريحاً هو أول قرار إرسال يتخذه خط المعالجة الصوتي.

sentence-types-multilingual على HuggingFace · little_questions على GitHub