Kami menyediakan implementasi TensorFlow dari model dialog berbasis CVAE yang dijelaskan dalam Pembelajaran Keanekaragaman Tingkat Wacana untuk Model Dialog Neural menggunakan Conditional Variational Autoencoders , yang diterbitkan sebagai makalah panjang di ACL 2017. Lihat makalah untuk detail selengkapnya.
Jika Anda menggunakan kode sumber atau kumpulan data apa pun yang disertakan dalam toolkit ini dalam pekerjaan Anda, harap kutip makalah berikut. Bibtex tercantum di bawah ini:
[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}
}
Metode dasar HRED yang menggunakan kumpulan data SwitchBoard yang sama juga diterapkan pada Texar , perangkat pembuatan teks untuk tujuan umum. Periksa di sini.
python kgcvae_swda.py
akan menjalankan pelatihan default dan menyimpan model ke ./working
Ubah tanda TF di bagian atas kgcvae_swda.py sebagai berikut untuk menjalankan model yang ada
forward_only: False -> True
test_path: set to the folder contains the model. E.g. runxxxx
Kemudian Anda dapat menjalankan model tersebut dengan:
python kgcvae_swda.py
Outputnya akan dicetak ke stdout dan respons yang dihasilkan akan disimpan di test.txt di test_path.
Unduh Penyematan kata sarung tangan dari https://nlp.stanford.edu/projects/glove/ Pengaturan default menggunakan penyematan kata 200 dimensi yang dilatih di Twitter.
Terakhir, setel word2vec_path pada baris 15 dari kgcvae_swda.py.
Kami merilis dua kumpulan data:
Jika Anda ingin melatih model pada data Anda sendiri. Silakan buat file acar dengan format sebagai berikut:
# 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'])
Masukkan file yang dihasilkan ke ./data dan atur data_dir di kgcvae_swda.py