يعتمد هذا المشروع على ورقة بعنوان "تحديد برامج مجموعة الإجابات ولفظها باللغة الطبيعية الخاضعة للرقابة" بقلم رولف شويتر. لقد قمت بإعادة إنشاء ما تم القيام به في الورقة ولكن على نطاق أصغر بكثير، مع التركيز على إنشاء قواعد نحوية ثنائية الاتجاه مناسبة لكل من معالجة وإنشاء مواصفات البرنامج في CNL.
يجب تشغيل البرنامج big.pl (يرمز إلى Bi -directional G rammar) باستخدام SWI-Prolog. لإجراء اختبار تشغيل، ما عليك سوى تحميل الملف باستخدام الأمر: [big].
ثم الاستعلام: test.
بعد القيام بذلك، سوف ترى مخرجات البرنامج كمثال محدد مسبقًا.
إذا كنت تريد تشغيل البرنامج على جمل الإدخال الخاصة بك ، فيجب عليك تعديل الملف big.pl :
لاحظ أن كل جملة يجب أن تكون عبارة عن قائمة كلمات، حيث يجب الفصل بين جميع الكلمات بفاصلة، ويجب أن تنتهي الجملة بالرمز الخاص '.' . يجب أن تبدأ كل جملة بكلمة النظام 'every'
/ 'no'
أو تحتوي على وكيل، على سبيل المثال كما في [bob,dreams,'.']
حيث يكون bob وكيلًا. كلمات النظام هي: 'every', 'no', 'is', 'is not', 'does not', '.'
. راجع Samples.txt للحصول على نماذج من جمل الإدخال التي يمكنك تجربتها.
في حالة رغبتك في تقديم كلمات و/أو عوامل جديدة غير مدرجة في البرنامج، فيجب عليك إضافتها بنفسك في big.pl . تم تعريف المعجم الحالي في السطور 175-198. لكل كلمة من كلماتك المخصصة، أضف سطرًا يتبع التنسيق:
lexicon(cat:noun, wform:[student], arg:X, term:student(X)).
حيث حجة القط هي فئة الكلمة (الاسم، الفعل، ديت، وما إلى ذلك)؛ يرمز wform إلى شكل الكلمة، أي الكلمة الدقيقة التي تظهر في الجملة؛ arg تحدد وسيطة المصطلح الذي تشير إليه الكلمة؛ يشير المصطلح إلى المصطلح الفعلي الذي سيتم استخدامه في التنسيق الداخلي وفي ASP. لكل من الوكلاء المخصصين، قم بإضافة سطر من agent(name).
، حيث الاسم هو اسم وكيلك، على سبيل المثال، bob
.
لاحظ أن البرنامج يدعم حاليًا الفئات التالية فقط: الاسم ( cat:noun
)، الفعل ( cat:iv
)، المحدد ( 'every', 'no'
)، الصفة ( cat:jj
). يجب أن تحتوي جميع الجمل على بنية بسيطة، ولا تحتوي على مقالات ("a"، "an"، "the")، ولا تحتوي على مكونات مرتبطة بـ "و"/"أو".
يقدم برنامج big.pl أربعة مخرجات في وقت واحد:
يرجى الرجوع إلى Report.pdf لمزيد من التفاصيل حول التمثيلات.
لاحظ أن 3. تمثيل ASP هو برنامج صالح لمجموعة الإجابات، والذي يمكنك حله باستخدام clingo، على سبيل المثال، والذي أشجعك على تجربته.
تم الإنشاء بواسطة يفهينيا سوروكا، طالبة ماجستير، جامعة ستوني بروك، نيويورك (CSE505: الحوسبة باستخدام المنطق، خريف 2018)
شكر خاص لرولف شويتر لتوجيهاته حول كيفية البدء ومشاركة الموارد المفيدة.