نحن نقدم تطبيق TensorFlow لنموذج الحوار القائم على CVAE الموصوف في التنوع على مستوى الخطاب التعليمي لنماذج الحوار العصبي باستخدام أجهزة التشفير التلقائية المتغيرة الشرطية ، المنشور كورقة طويلة في ACL 2017. راجع الورقة لمزيد من التفاصيل.
إذا كنت تستخدم أي رموز مصدر أو مجموعات بيانات مضمنة في مجموعة الأدوات هذه في عملك، فيرجى الاستشهاد بالمقالة التالية. Bibtex مدرجة أدناه:
[Zhao et al, 2017]:
@inproceedings{zhao2017learning,
title={Learning Discourse-level Diversity for Neural Dialog Models using Conditional Variational Autoencoders},
author={Zhao, Tiancheng and Zhao, Ran and Eskenazi, Maxine},
booktitle={Proceedings of the 55th Annual Meeting of the Association for Computational Linguistics (Volume 1: Long Papers)},
volume={1},
pages={654--664},
year={2017}
}
يتم أيضًا تطبيق الطريقة الأساسية HRED باستخدام نفس مجموعة بيانات SwitchBoard على Texar ، وهي مجموعة أدوات إنشاء نص للأغراض العامة. الخروج هنا.
python kgcvae_swda.py
سيتم تشغيل التدريب الافتراضي وحفظ النموذج في ./working
قم بتعديل إشارات TF الموجودة في الجزء العلوي منkgcvae_swda.py على النحو التالي لتشغيل نموذج موجود
forward_only: False -> True
test_path: set to the folder contains the model. E.g. runxxxx
وبعد ذلك يمكنك تشغيل النموذج عن طريق:
python kgcvae_swda.py
ستتم طباعة المخرجات على stdout وسيتم حفظ الاستجابات التي تم إنشاؤها في test.txt في test_path.
قم بتنزيل تضمينات كلمات Glove من https://nlp.stanford.edu/projects/glove/ يستخدم الإعداد الافتراضي تضمين كلمات مكون من 200 بُعد تم تدريبه على Twitter.
أخيرًا، قم بتعيين word2vec_path في السطر 15 من الملفkgcvae_swda.py.
نصدر مجموعتين من البيانات:
إذا كنت ترغب في تدريب النموذج على البيانات الخاصة بك. الرجاء إنشاء ملف مخلل بالتنسيق التالي:
# The top directory is a python dictionary
type(data) = dict
data.keys() = ['train', 'valid', 'test']
# Train/valid/test is a list, each element is one dialog
train = data['train']
type(train) = list
# Each dialog is a dict
dialog = train[0]
type(dialog)= dict
dialog.keys() = ['A', 'B', 'topic', 'utts']
# A, B contain meta info about speaker A and B.
# topic defines the dialog prompt topic in Switchboard Corpus.
# utts is a list, each element is a tuple that contain info about an utterance
utts = dialog['utts']
type(utts) = list
utts[0] = ("A" or "B", "utterance in string", [dialog_act, other_meta_info])
# For example, a utterance look like this:
('B','especially your foreign cars',['statement-non-opinion'])
ضع الملف الناتج في ./data وقم بتعيين data_dir فيkgcvae_swda.py