เราจัดให้มีการใช้งาน 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