Kelimeler arasındaki uzaklık durumlarını, vektörel olarak bulmamıza yarayan algoritmalar bütünüdür. Vektörel yapı üzerinde yazılmış araçlar ile bir kelimeye yakın veya uzak kelimeleri listelemek için kelimeler arasındaki anolojiyi kullanır (1).
Word2Vec Kelime Vektörü
Şekilde verdiğimiz input dökümanına göre bir kelime vektörü oluşturulması.
Word2Vec CBOW & Skip-Gram Algoritması
Bu kısımda 2 tane algoritmadan CBOW veya Skip-Gram algoritmasından faydalanıyor.
Multi-Word CBOW model (5)
Daha sonra, ağırlıkları güncellemek için gradyan iniş uygularız:
Skip-Gram model (5)
Ağırlıklar için güncelleme denklemi, CBOW modeli ile aynıdır.
Multi-Word CBOW model Python Code (5)
Skip-Gram model Python Code (5)
Word2Vec Python & Gensim
Python, nesne yönemli programlamayı destekleyen, yorumlamalı (yani byte kod üreten), modüler ve
yüksek seviyeli bir dildir (2). Python dili, yapay zeka ve makine öğrenmesini uygulamalarında oldukça popüler ve kullanışlı bir dildir. Kullanılma nedenleri, makine öğrenmesi için ihtiyaç duyulan paketlerin import edilmesi ve en iyi performans açısından oldukça tercih edilen bir dildir(3).
Gensim, Python'da import edilerek kullanılan bir kütüphanedir. Aslında bir kütüphaneden daha fazlası! Çünkü veri madenciliği konusunda oldukça yetenekli olması ve performanslı olması için NumPy, Scipy yapılarını kullanır. Özellikle kullanım alanı büyük metinleri belli algoritmaları kullanılarak uzaklık ve kelime anolojisi hakkında oldukça başarılıdır(4).
Word2Vec Kurulumu (Linux(Debian))
debian@pc:~$ sudo apt install python3-pip
python yükleme aracını sistemimize kuruyoruz.
debian@pc:~$ sudo pip install
word2vec
Word2vec’i pip yükleme aracı ile sisteme kuruyoruz.
Kurulum sırasında hata oluşması, dosya bağımlılıkları ile alakalıdır.
İlk olarak kuruluma
Başlamadan önce sisteminizin güncel olduğundan emin olun.
Manuel olarak kurmak isteyenler için...
https://github.com/danielfrg/word2vec
Kullanımı
Word2Vec komut satırında şu şekilde kullanılabilir:
word2vec
word2phrase
word2vec-distance
word2vec-word-analogy
Word2vec-compute-accuracy
Kullanılacak türkçe eğitilmiş vektör/model dosyası.
https://drive.google.com/drive/folders/1IBMTAGtZ4DakSCyAoA4j7Ch0Ft1aFoww
Örnek => debian@pc:~$ word2vec-distance trmodel
debian@pc:~$ word2vec-word-analogy trmodel
Word2Vec isteğe göre Windows veya OS X sistemler üzerinde de çalışıtırabilir. Linux/Debian türevi sistemler word2vec için daha performanslı ve stabil çalıştığı için tercih edilmiştir.
Word2Vec Örnek Gerçekleştirimi
Bu kısımda ./distance kullandığımıda çay için en yakın kelimeleri buldu örnek olarak
Kelime analojisi için ./word-analogy kullandığımızda
Word2Vec Background
Yukarıdaki şekilde görüldüğü gibi formül üzerinden kelimler arasındaki benzerlik ve uzaklık yukarıdaki mantığa göre şekillenmektedir.
İçerik Hazırlayan: Yusuf Dede
Kaynaklar
(1) https://medium.com/@odayibasi/word2vec-nedir-ne-i%C5%9Fe-yarar-a314a37c45aa
(2) https://tr.wikipedia.org/wiki/Python_(programlama_dili)
(3) https://medium.com/@EbubekirBbr/makine-%C3%B6%C4%9Frenmesi-uygulamas%C4%B1-geli%C5%9Ftirme-2-python-41028d52686b
(4) https://en.wikipedia.org/wiki/Gensim
(5) http://www.claudiobellei.com/2018/01/07/backprop-word2vec-python/
(5) http://www.claudiobellei.com/2018/01/07/backprop-word2vec-python/