Proyek ini adalah implementasi pytorch untuk model anti-MMI yang dijelaskan dalam Fungsi Tujuan Mempromosikan Keanekaragaman untuk Model Percakapan Neural
Kode ini didasarkan pada OpenNMT-py dan word_bahasa_model
python preprocess.py
Kami akan bekerja dengan beberapa contoh data di folder data/
. Data terdiri dari data konteks dialog paralel ( .en
) dan responsnya ( .vi
) yang berisi satu kalimat per baris dengan token dipisahkan oleh spasi:
train.en
train.vi
dev.en
dev.vi
Setelah menjalankan prapemrosesan, file berikut dibuat di folder data/
:
dialogue.train.1.pt
: file PyTorch berseri yang berisi data pelatihandialogue.valid.1.pt
: file PyTorch berseri yang berisi data validasidialogue.vocab.pt
: file PyTorch berseri yang berisi data kosakata, yang akan digunakan dalam proses pelatihan model bahasa. cd lm/tool/
Pada langkah ini, kita akan melatih model bahasa berdasarkan respons untuk model anti-MMI (contoh data/*.vi
). Karena model bahasa ini akan digunakan dalam model anti-MMI, model ini akan membagikan kamus ( data/*.vocab.pt
) yang dihasilkan pada Step1
.
python preprocess.py
Pemrosesan awal ini akan mengubah semua respons untuk model anti-MMI (contoh data/*.vi
) menjadi data paralel untuk model bahasa.
Setelah menjalankan prapemrosesan, file berikut dibuat di folder lm/data/
:
train.en
train.de
dev.en
dev.de
Misalnya, respons "they just want a story"
di file data/train.vi
akan diproses terlebih dahulu menjadi "<s> they just want a story"
di file lm/data/train.en
dan "they just want a story </s>"
dalam berkas lm/data/train.de
.
cd ../
python lm.py
Perintah train ini akan menyimpan model bahasa ke lm/model.pt
.
Untuk menjalankan kode ini pada CPU, Anda perlu memperbarui pytorch Anda ke versi apa pun setelah 24th Feb 2018
dan pastikan bahwa potongan kode ini dapat ditemukan di torchtext/data/iterator.py
Anda:
if not torch.cuda.is_available() and self.device is None:
self.device = -1
python generate.py
Alat ini akan menghasilkan 1000 ucapan secara acak menggunakan model bahasa lm/model.pt
dan menyimpannya ke dalam file lm/generated.txt
.
cd ../
python train.py
python translate.py -model model_name
Hasil pembuatannya akan disimpan dalam file pred.txt
.
cat pred.txt | python diversity.py