مجموعة من الخطوط الأساسية للحوار متعددة المنعطفات أو المنعطفات الفردية الجاهزة للاستخدام.
نرحب بالعلاقات العامة والقضايا.
يمكن العثور على البرنامج النصي للمعالجة المسبقة لمجموعات البيانات هذه ضمن مجلد data/data_process
.
يمكن الحصول على ثلاث مجموعات بيانات لحوار المجال المفتوح متعدد المنعطفات (Dailydialog، DSTC7_AVSD، PersonaChat) من خلال هذا الرابط
تحتوي كل مجموعة بيانات على 6 ملفات
في جميع الملفات، يحتوي سطر واحد فقط على سياق حوار واحد (src) أو استجابة الحوار (tgt). يمكن العثور على مزيد من التفاصيل في ملفات الأمثلة. لإنشاء الرسم البياني، يجب أن تبدأ كل جملة بالرمزين المميزين <user0>
و <user1>
اللذين يشيران إلى المتحدث. يتم استخدام __eou__
للفصل بين الجمل المتعددة في سياق المحادثة. يمكن العثور على مزيد من التفاصيل في حالة البيانات الصغيرة.
Seq2Seq, SeqSeq_MHA, HRED, HRED_RA, VHRED, WSeq, WSeq_RA, DSHRED, DSHRED_RA, HRAN, MReCoSa, MReCoSa_RA
daildydialog, ubuntu, dstc7, personachat, empchat
قبل تشغيل الأوامر التالية، تأكد من إنشاء المجلدات الأساسية:
mkdir -p processed/ $DATASET
mkdir -p data/ $DATASET
mkdir -p tblogs/ $DATASET
mkdir -p ckpt/ $DATASET
تحتوي DATASET
المتغيرة على اسم مجموعة البيانات التي تريد معالجتها
# default 25000 words
./run.sh vocab < dataset >
# only MTGCN and GatedGCN need to create the graph
# zh or en
./run.sh graph < dataset > < zh/en > < cuda >
أظهر طول الكلام، ودورات الإعداد متعدد المنعطفات، وما إلى ذلك.
./run.sh stat < dataset >
تدريب نموذج لغة N-gram بواسطة NLTK (Lidstone مع 0.5 gamma، n-gram الافتراضي هو 3):
# train the N-gram Language model by NLTK
./run.sh lm < dataset >
./run.sh train < dataset > < model > < cuda >
# translate mode, dataset dialydialog, model HRED on 4th GPU
./run.sh translate < dataset > < model > < cuda >
ترجمة مجموعة من النماذج
# rewrite the models and datasets you want to translate
./run_batch_translate.sh < cuda >
# get the BLEU and Distinct result of the generated sentences on 4th GPU (BERTScore need it)
./run.sh eval < dataset > < model > < cuda >
تقييم مجموعة من النماذج
# the performance are redirected into the file `./processed/<dataset>/<model>/final_result.txt`
./run_batch_eval.sh < cuda >
# draw the performance curve, but actually, you can get all the information from the tensorboard
./run.sh curve < dataset > < model > < cuda >
راجع الورقة: Do Neural Dialog Systems Use the Conversation History Effectively? An Empirical Study
# 10 mode for perturbation
./run.sh perturbation < dataset > < zh/en >
Learning Phrase Representations using RNN Encoder-Decoder for Statistical Machine Translation
Attention is All you Need
. تجدر الإشارة إلى أن Vanilla Transformer من الصعب جدًا الحصول على الأداء الجيد في مجموعات البيانات هذه. من أجل التأكد من الأداء المستقر، قمت بتعزيز الاهتمام الذاتي متعدد الرؤوس (طبقة واحدة، يمكنك تغييرها) على Seq2Seq-attn القائم على RNN، والذي يُظهر الأداء الأفضل.Building End-To-End Dialogue Systems Using Generative Hierarchical Neural Network Models
. تعزيز HRED مع الاهتمام بمستوى الكلام.How to Make Context More Useful? An Empirical Study on Context-Aware Neural Conversational Models
A Hierarchical Latent Variable Encoder-Decoder Model for Generating Dialogues
، دون فقدان BOW (لا يزال قيد التطوير، نرحب بالعلاقات العامة)Context-Sensitive Generation of Open-Domain Conversational Responses
، وآلية اهتمام ديناميكية وثابتة على HREDReCoSa: Detecting the Relevant Contexts with Self-Attention for Multi-turn Dialogue Generation
. تجدر الإشارة إلى أن هذا التنفيذ هنا يختلف قليلاً عن الرموز الأصلية، ولكنه أكثر قوة وعملية (3 طبقات متعددة الرؤوس للانتباه الذاتي ولكن طبقة واحدة فقط في الورقة الأصلية).Hierarchical Recurrent Attention Network for Response Generation
، في الواقع هي نفس شبكة HRED مع آلية الاهتمام على مستوى الكلمة.