Kata-kata yang tidak dikenal dalam penyematan kata terlatih (Gensim) untuk digunakan di Keras
Saya melatih penyematan kata menggunakan GENSIM (word2vec) dan menggunakan model terlatih dalam jaringan saraf di KERAS. Masalah muncul ketika saya memiliki kata yang tidak diketahui (di luar kosakata) sehingga jaringan saraf tidak berfungsi lagi karena tidak dapat menemukan bobot untuk kata tertentu itu. Saya pikir salah satu cara untuk memperbaiki masalah ini adalah menambahkan kata baru ( <unk>
) ke kata yang sudah dilatih sebelumnya yang disematkan dengan bobot nol (atau mungkin bobot acak? Mana yang lebih baik?) Apakah pendekatan ini baik-baik saja? Selain itu, untuk embedding kata ini, bobot tidak dapat dilatih di jaringan neural ini.
Jawaban
Paling khas adalah mengabaikan kata-kata yang tidak dikenal. (Menggantinya dengan kata-plug, atau vektor-asal, lebih merusak.)
Anda juga dapat mempertimbangkan untuk melatih FastText
mode, yang akan selalu mensintesis beberapa vektor tebakan untuk kata di luar kosakata, dari vektor karakter-n-gram yang dibuat selama pelatihan. (Vektor sintetis ini seringkali lebih baik daripada tidak sama sekali, terutama ketika sebuah kata memiliki akar kata yang tumpang tindih dengan kata-kata terkait - tetapi mendapatkan lebih banyak data pelatihan dengan contoh dari semua penggunaan kata yang relevan lebih baik, dan mengabaikan kata-kata langka yang tidak diketahui tidaklah buruk.)