[Brendan Shillingford, Yannis Assael, Chris Dyer]
Untuk praktis ini, Anda akan diberikan notebook Ipython yang sebagian lengkap, lingkungan komputasi Python berbasis web interaktif yang memungkinkan kami untuk mencampur teks, kode, dan plot interaktif.
Kami akan melatih model Word2VEC pada data TED Talk dan Wikipedia, menggunakan implementasi Word2VEC yang termasuk dalam paket Python gensim . Setelah melatih model, kami akan menganalisis dan memvisualisasikan embeddings yang dipelajari.
Pada workstation lab, klon repositori praktis dan jalankan . install-python.sh skrip shell di terminal untuk menginstal anaconda dengan python 3, dan paket yang diperlukan untuk praktis ini.
Jalankan ipython notebook di Direktori Repositori dan buka Notebook practical.ipynb di browser Anda.
Kode untuk mengunduh dataset dan preprocessing itu telah ditulis untuk menghemat waktu. Namun, diharapkan bahwa Anda harus melakukan tugas seperti itu dalam praktik masa depan, diberi data mentah. Bacalah dan pastikan Anda memahaminya. Seringkali, seseorang menggunakan pustaka seperti nltk untuk menyederhanakan tugas ini, tetapi kami belum melakukannya di sini dan sebaliknya memilih untuk menggunakan ekspresi reguler melalui modul re Python.
Buatlah daftar kata -kata yang paling umum dan jumlah kejadiannya. Lihatlah 40 kata teratas. Anda mungkin ingin menggunakan kelas CountVectorizer Modul sklearn.feature_extraction.text Modul atau kelas Counter Modul collections .
Ambil 1000 kata teratas, dan plot histogram penghitungan mereka. Kode plot untuk histogram interaktif sudah diberikan dalam notebook.
Handin: Tunjukkan histogram distribusi frekuensi.
Sekarang kita memiliki daftar kalimat yang diproses, mari kita jalankan pelatihan Word2Vec. Mulailah dengan membaca dokumentasi gensim untuk Word2Vec di https://radimrehurek.com/gensim/models/word2vec.html, untuk mengetahui cara menggunakan kelas Word2Vec . Belajar embeddings di min_count=10 sehingga kata -kata yang jarang diabaikan. Proses pelatihan harus memakan waktu kurang dari setengah menit.
Jika instance Word2Vec terlatih Anda disebut model_ted , Anda harus dapat memeriksa ukuran kosa kata menggunakan len(model_ted.vocab) , yang seharusnya sekitar 14427. Coba gunakan metode most_similar() untuk mengembalikan daftar kata yang paling mirip dengan "man" dan "computer".
Handin: Temukan beberapa kata lagi dengan tetangga terdekat yang menarik dan/atau mengejutkan.
Handin: Temukan cluster yang menarik di plot T-SNE.
Opsional, untuk siswa yang antusias: Cobalah secara manual mengambil dua vektor kata menggunakan operator pengindeksan seperti yang dijelaskan dalam dokumentasi Gensim, lalu komputer jarak cosinus mereka (ingat itu didefinisikan sebagai np.dot() dan np.linalg.norm() , lihat dokumentasi numpy untuk detailnya. Bandingkan ini dengan jarak yang dihitung oleh fungsi Gensim.
Kami telah menyediakan kode pengunduhan/preprocessing (mirip dengan kode sebelumnya) untuk dataset WIKITEXT-2. Kode menggunakan subsampel acak dari data sehingga sebanding dalam ukuran dengan data TED Talk.
Ulangi analisis yang sama seperti di atas tetapi pada dataset ini.
Handin: Temukan beberapa kata dengan tetangga terdekat yang serupa.
Handin: Temukan cluster yang menarik di plot T-SNE.
Handin: Apakah ada perbedaan penting antara embeddings yang dipelajari pada data dibandingkan dengan yang dipelajari pada data TED Talk?
Jika Anda memiliki waktu ekstra, cobalah melakukan pengelompokan K-means (misalnya menggunakan sklearn.cluster.kmeans ) pada embeddings, menyetel jumlah kelompok sampai Anda mendapatkan kelompok yang menarik atau bermakna.
Lihat bagian " Handin: " yang tebal di atas. Di atas kertas atau secara verbal, tunjukkan demonstran praktis tanggapan Anda terhadap ini untuk ditandatangani.