التثبيت • إلغاء التثبيت • كيفية استخدام Chatette ؟ • شاتيت مقابل شاتيتو ؟ • التنمية • الاعتمادات
Chatette هو برنامج Python يقوم بإنشاء مجموعات بيانات تدريبية لملفات القالب المحددة لـ Rasa NLU . إذا كنت تريد إنشاء مجموعات بيانات كبيرة من البيانات النموذجية لمهام فهم اللغة الطبيعية دون الكثير من الصداع، فإن Chatette هو مشروع مناسب لك.
على وجه التحديد، تطبق Chatette لغة خاصة بالمجال ( DSL ) تسمح لك بتحديد القوالب لإنشاء عدد كبير من الجمل، والتي يتم حفظها بعد ذلك في تنسيق (تنسيقات) الإدخال لـ Rasa NLU .
إن خط المشترك الرقمي (DSL) المستخدم هو عبارة عن مجموعة شبه شاملة لمشروع Chatito الممتاز الذي أنشأه Rodrigo Pimentel. ( ملاحظة: DSL هو في الواقع مجموعة شاملة من Chatito v2.1.x لـ Rasa NLU، وليس لجميع المحولات الممكنة. )
الوضع التفاعلي متاح أيضًا:
لتشغيل Chatette ، ستحتاج إلى تثبيت Python. يعمل Chatette مع كل من Python 2.7 و3.x (>= 3.4).
يتوفر Chatette على PyPI، وبالتالي يمكن تثبيته باستخدام pip
:
pip install chatette
وبدلاً من ذلك ، يمكنك استنساخ مستودع GitHub وتثبيت المتطلبات:
pip install -r requirements/common.txt
يمكنك بعد ذلك تثبيت المشروع (كحزمة قابلة للتحرير) باستخدام النقطة، عن طريق تنفيذ الأمر التالي من الدليل Chatette/chatette/
:
pip install -e .
يمكنك بعد ذلك تشغيل الوحدة باستخدام الأوامر الموجودة أدناه في الدليل المستنسخ.
يمكنك فقط استخدام النقطة لإلغاء تثبيت Chatette :
pip uninstall chatette
يتم تحميل البيانات التي يستخدمها Chatette ويقوم بإنشائها وحفظها في الملفات. وبذلك سيكون لديك:
ملف (ملفات) إدخال واحد أو أكثر يحتوي على القوالب. ليست هناك حاجة لامتداد ملف معين. تم توضيح بناء جملة DSL لإنشاء هذه القوالب على الويكي.
ملف (ملفات) إخراج واحد أو أكثر، والتي سيتم إنشاؤها بواسطة Chatette وستحتوي على الأمثلة التي تم إنشاؤها. يمكن تنسيق هذه الملفات بتنسيق JSON (افتراضيًا) أو في Markdown ويمكن تغذيتها مباشرة إلى Rasa NLU . من الممكن أيضًا استخدام تنسيق JSONL .
بمجرد تثبيت Chatette وإنشاء ملفات القالب، قم بتشغيل الأمر التالي:
python -m chatette < path_to_template >
حيث python
هو مترجم Python الخاص بك (تستخدم بعض أنظمة التشغيل python3
كاسم مستعار لمترجم Python 3.x).
يمكنك تحديد اسم ملف الإخراج كما يلي:
python -m chatette < path_to_template > -o < output_directory_path >
تم تحديد
نسبيًا للدليل الذي يتم تنفيذ البرنامج النصي منه. سيتم بعد ذلك حفظ ملف (ملفات) الإخراج في ملفات .json
مرقمة في
و
. إذا لم تقم بتحديد مسار لدليل الإخراج، فإن المسار الافتراضي هو output
.
وسيطات البرنامج الأخرى وموضحة في الويكي.
TL;DR: نقطة البيع الرئيسية : من الأسهل التعامل مع المشاريع الكبيرة باستخدام Chatette، ويمكنك تحويل معظم مشاريع Chatito إلى Chatette دون أي تعديل.
والسؤال المشروع تماما هو:
لماذا يوجد Chatette في حين أن Chatito يحقق نفس الأغراض بالفعل؟
المشروعان لهما في الواقع أهداف مختلفة:
يهدف Chatito إلى أن يكون خط DSL عامًا ولكنه قوي، ويجب أن يظل واضحًا للغاية. على الرغم من أنه جيد تمامًا للمشروعات الصغيرة، إلا أنه عندما تصبح المشروعات أكبر، فإن بساطة DSL الخاصة بها قد تصبح عبئًا: يصبح ملف القالب الخاص بك كبيرًا للغاية، لدرجة أنك تضيع بداخله.
تحدد Chatette خط DSL أكثر تعقيدًا لتتمكن من إدارة المشاريع الأكبر حجمًا وتحاول البقاء قابلة للتشغيل المتبادل مع Chatito قدر الإمكان. فيما يلي قائمة غير شاملة بالميزات التي يتمتع بها Chatette والتي لا يمتلكها Chatito :
نظرًا لأن خط DSL الخاص بـ Chatette عبارة عن مجموعة شاملة من خط Chatito ، فإن ملفات الإدخال المستخدمة لـ Chatito تكون في معظم الأوقات قابلة للاستخدام بالكامل مع Chatette (وليس العكس). ومن ثم، فمن السهل البدء في استخدام Chatette إذا كنت قد استخدمت Chatito من قبل.
على سبيل المثال، بيانات Chatito هذه:
// This template defines different ways to ask for the location of toilets (Chatito version)
%[ask_toilet]('training': '3')
~[sorry?] ~[tell me] where the @[toilet#singular] is ~[please?]?
~[sorry?] ~[tell me] where the @[toilet#plural] are ~[please?]?
~[sorry]
sorry
Sorry
excuse me
Excuse me
~[tell me]
~[can you?] tell me
~[can you?] show me
~[can you]
can you
could you
would you
~[please]
please
@[toilet#singular]
toilet
loo
@[toilet#plural]
toilets
يمكن تقديمه مباشرة كمدخل إلى Chatette ، لكن قالب Chatette هذا سينتج نفس النتائج:
// This template defines different ways to ask for the location of toilets (Chatette version)
%[&ask_toilet](3)
~[sorry?] ~[tell me] where the @[toilet#singular] is [please?]?
~[sorry?] ~[tell me] where the @[toilet#plural] are [please?]?
~[sorry]
sorry
excuse me
~[tell me]
~[can you?] [tell|show] me
~[can you]
[can|could|would] you
@[toilet#singular]
toilet
loo
@[toilet#plural]
toilets
يمكن القول إن إصدار Chatito أسهل في القراءة، لكن إصدار Chatette أقصر، مما قد يكون مفيدًا جدًا عند التعامل مع الكثير من القوالب والتكرار المحتمل.
كن حذرًا، كما هو الحال دائمًا مع التعلم الآلي، فإن الحصول على الكثير من البيانات قد يتسبب في أداء نماذجك بشكل أقل جودة بسبب التجهيز الزائد. على الرغم من أنه يمكن استخدام هذا البرنامج النصي لإنشاء الآلاف والآلاف من الأمثلة، إلا أنه لا يُنصح به لمهام التعلم الآلي.
تم تسمية Chatette على اسم Chatito : يمكن ترجمة -ette بالفرنسية إلى -ita أو -ito بالإسبانية. لاحظ أن الحرف e الأخير في Chatette لا يُنطق (كما هو الحال في "note").
بالنسبة للمطورين، يمكنك استنساخ الريبو وتثبيت متطلبات التطوير: pip install -r requirements/develop.txt
ثم قم بتثبيت الوحدة كقابلة للتحرير: pip install -e
تشغيل pylint: tox -e pylint
قم بتشغيل pycodestyle: tox -e pycodestyle
تشغيل pytest: tox -e pytest
إخلاء المسؤولية: هذا مشروع جانبي لم أتقاضى أجرًا مقابله، فلا تتوقع مني أن أعمل عليه على مدار الساعة طوال أيام الأسبوع.
شكرا جزيلا لهم!