4.857 views 4.857 views
Tem 112016
 
4.858 views

Word2vec yöntemiyle Türkçe sözcüklerin ilişkilendirilmesi

Word2vec sistemi, kabaca sözcüklerin vektörelleştirilmesine dayanıyor. Sözcüklerin birbirine göre konumunu sayısallaştırarak yeni ilişkilerin saptanabilmesini sağlıyor.

Yöntemi geliştiren Google. https://code.google.com/archive/p/word2vec/ adresinde kelime torbası (bag-of-words) ve skip-gram yaklaşımları tanıtılıyor. Ayrıca örnekler ve kaynak kodlarının paylaşıldığı link te verilmiş. Ama ne yazık ki bu sayfaya erişmek artık mümkün olmuyor. Sistemin kaynaklarının açılmasına ilişkin duyuru 14 Ağustos 2013 tarihinde Google Knowledge’tan Tomas Mikolov, Ilya Sutskever ve Quoc Le tarafından yapılmış. İlgili makaleyi http://google-opensource.blogspot.com.tr/2013/08/learning-meaning-behind-words.html adresinde bulabilirsiniz.

Word2vec yöntemiyle Türkçe sözcüklerin ilişkilendirilmesi

Görüntü: deeplearning4j.org

https://github.com/danielfrg/word2vec adresinde de konuya ilişkin ayrıntılar ve örnekler var. Burada kullanılan word2vec, bağımsız bir modül. Aynı modülü gensim‘in bir alt modülü olarak kullanmak ta mümkün.

github.com/danielfrg deposunda modülün kurulum ve kullanımıyla ilgili açıklamalar ve örnekler var. Örnek veritabanını http://mattmahoney.net/dc/text8.zip adresinden indirebilirsiniz. 100MB büyüklüğünde bir dosya bu. İçeriğinde noktalama işaretleri kaldırılmış çeşitli yazılar bulunuyor.

Benzer çalışmayı Türkçe bir veritabanı oluşturarak denedim.

4 GB belleği olan makinamda 125MB’lık örnekler sorunsuz çalışabiliyor. Bu boyutun üzerine çıktığım zaman, “buffer overflow” hatası alıyorum. Eğer sizin bilgisayarınızın belleği daha büyükse, daha büyük boyutlu veritabanlarıyla çalışmanız da mümkün.

Elde ettiğim sonuçlardan bazıları şu şekilde:

insan: [‘insanın’ ‘insanoğlu’ ‘ruh’ ‘insanların’ ‘insanlar’ ‘hayvan’ ‘insandan’ ‘birey’ ‘toplum’ ‘doğa’]
macera: [‘serüven’ ‘vaka’ ‘hayatımız’ ‘felaket’ ‘çılgınlık’ ‘evliliği’ ‘kentte’ ‘buluşmamız’ ‘aşk_hikayesi’ ‘eğlence’]
öfke: [‘tiksinti’ ‘korku’ ‘utanç’ ‘kızgınlık’ ‘çaresizlik’ ‘acıma’ ‘şaşkınlık’ ‘hiddet’ ‘dehşet’ ‘üzüntü’]
karanlık: [‘kasvetli’ ‘ıssız’ ‘aydınlık’ ‘karanlığı’ ‘loş’ ‘boğucu’ ‘zifiri’
‘bulanık’ ‘alacakaranlık’ ‘iç_karartıcı’]
öykü: [‘hikaye’ ‘roman’ ‘romanda’ ‘şiiri’ ‘hikayeler’ ‘öyküler’ ‘şiirler’
‘romanı’ ‘dizeler’ ‘öyküsü’]
ayşe: [’emine’ ‘aliye’ ‘makbule’ ‘naciye’ ‘fatma’ ‘dede’ ‘hatice’ ‘zübeyde’ ‘sabiha’ ‘ablası’]
recep: [‘halit’ ‘şakir’ ‘hamit’ ‘nusret’ ‘cemal’ ‘muharrem’ ‘sait’ ‘cemil’ ‘nedim’ ‘refik’]

Veritabanına noktalama işaretlerini kaldırmak dışında yapılmış herhangi bir müdahale yok. Tüm ilişkileri sistemin kendisi saptıyor. İsimlerdeki cinsiyet farkının bile yakalanmış olması dikkat çekici.

Önümüzdeki günlerde, kullandığım Türkçe veritabanı örneklerini de paylaşacağım.

Beni izlemeye devam edin!

Ahmet Aksoy

  5 Yanıt - “Word2vec yöntemiyle Türkçe sözcüklerin ilişkilendirilmesi”

  1. […] mekanizması oluşturuyor ve buna bağlı sonuçlar üretiyor. Daha önce yazdığım “Word2vec yöntemiyle Türkçe sözcüklerin ilişkilendirilmesi” isimli yazıma bir göz atmak […]

  2. Merhabalar, elimizde pozitif,negatif ve nötr olarak işaretlenmiş tweetler var. ben bunları word2vec ile eğitmek istiyorum. ardından yeni bir tweet girdiğimde yapılan yorumun poz,neg yada nötr olarak sınıflandırmasını istiyorum.

    Nasıl bir yol izlemeliyim. hangi word2vec paketini kullanmalıyım. teşekkürler…

 Bir yanıt bırakın

Bu HTML tagleri ve özellikleri kullanabilirsiniz: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">

(gerekli)

(gerekli)

Önceki yazıyı okuyun:
Ubuntu 16.04 Hikayeleri No-03

Ubuntu 16.04 Hikayeleri No-03 Eski sistemlerimde yerel olarak genellikle MySQL veritabanı kullandım. PhpMyadmin ile kolayca işlem yapabilmek bende kalıcı bir...

Kapat