Diberi kalimat: "Ketika saya membuka ?? pintu mulai memanas secara otomatis"
Saya ingin mendapatkan daftar kata-kata yang mungkin masuk ?? dengan probabilitas.
Konsep dasar yang digunakan dalam model word2vec adalah untuk "memprediksi" kata yang diberikan konteks sekitarnya.
Setelah model dibuat, operasi vektor konteks apa yang tepat untuk melakukan tugas prediksi saya pada kalimat baru?
Apakah ini hanya jumlah linier?
model.most_similar(positive=['When','I','open','the','door','it','starts' ,'heating','automatically'])
Jawaban:
Word2vec bekerja dalam dua model CBOW dan skip-gram. Mari kita ambil model CBOW, karena pertanyaan Anda sama dengan cara memprediksi kata target, mengingat kata-kata di sekitarnya.
Pada dasarnya, model ini mengembangkan matriks bobot input dan output, yang tergantung pada kata konteks input dan kata target output dengan bantuan lapisan tersembunyi. Jadi back-propagation digunakan untuk memperbarui bobot ketika perbedaan kesalahan antara vektor output yang diprediksi dan matriks output saat ini.
Pada dasarnya, memprediksi kata target dari kata konteks yang diberikan digunakan sebagai persamaan untuk mendapatkan matriks bobot optimal untuk data yang diberikan.
Untuk menjawab bagian kedua, sepertinya sedikit rumit dari sekadar jumlah linier.
h
ukuran layer vektor yang tersembunyiNx1
syn1
(word2vec.c
ataugensim
) yang berukuranVxN
syn1
denganh
, vektor yang dihasilkan akanz
dengan ukuranVx1
y = softmax(z)
dengan ukuranVx1
, di mana probabilitas tertinggi menunjukkan representasi satu kata panas dari kata target dalam kosa kata.V
menunjukkan ukuran kosa kata danN
menunjukkan ukuran embedding vektor.Sumber: http://cs224d.stanford.edu/lecture_notes/LectureNotes1.pdf
Pembaruan: Model memori jangka pendek saat ini sedang melakukan pekerjaan besar dalam memprediksi kata-kata selanjutnya. model seq2seq dijelaskan dalam tutorial tensorflow . Ada juga posting blog tentang pembuatan teks.
sumber
syn1
hanya dengan menyimpan model. ya, pemesanan diabaikan, untuk aplikasi yang benar-benar bisa pergi dengan model seq2seq berbasis LSTM.Prediksi kata yang hilang telah ditambahkan sebagai fungsi dalam versi terbaru dari Word2Vec. Tentu saja kalimat Anda harus sesuai dengan sintaks input model Word2Vec yang digunakan untuk melatih model (huruf kecil, kata berhenti, dll)
Penggunaan untuk memprediksi 3 kata teratas untuk "When I open? Door":
sumber
center
itu berada di antara kata ke-3 dan ke-4? Itu tidak masuk akal bagi saya. Saya akan membayangkan hanya kata-kata konteks nomor yang dapat dimasukkan dan itu akan memilih kata antarafloor(len(n)/2))
danfloor(len(n)/2))+1