DOĞAL DİL İŞLEME – BAG OF WORDS KAVRAMI

BAG OF WORDS NEDİR ?

Kelime çantası olarak  bilinen bu model doğal dil işlemede kullanılan basitleştirici bir temsildir. Bu modelde  bir metin kelimelerinin çantası halinde temsil edilir. Çoksallık tutulurken gramer ve kelime sırası hataları gözardı edilir. Tabiki Bag Of Words’un bazı aşamalarında bu kelime sırası ve hatalarının gözardı edilmediği kısımlar olmaktadır. Örnek olarak ; Kelime Haznesi oluşturulduktan sonra azaltma kısmında yapılan işlemler verilebilir.

Metin belgelerinden özelliklerin çıkarılması için kullanılan yaygın bir yöntem olan Bag Of Words; makine öğrenme algoritmalarının eğitimi için de kullanılabilir. Eğitim setindeki tüm belgelerde bulunan eşsiz kelimelerin sözlüğü oluşturulabilir. Eşiz kelimeler sözlüğü oluşturulduğu gibi tüm kelimeleri içeren bir sözlük de oluşturulabilir.

Peki nelerden bahsedeceğiz ?

1-) Verileri Toplama
2-) Kelime haznesi vocabulary oluşturma
2.1) Kelime Haznesinin arttırılması
2.2) Kelime Haznesinin azaltılması
3) Döküman vektörlerinin oluşturulması
3.1) Scoring
3.2) Dense/Sparse Vector
4) Word2vec kullanılan CBOW ve Skip Gram yöntemi

1-) VERİLERİN TOPLANMASI
      

Elimizde analiz etmek istediğimiz belgeler ve dokümanlar olmalıdır. Bu belgeler bazen E-Posta, bazen Kitap, bazen Makale, bazen ise yazılar olabilir.

Misalen sevdiğiniz bir filmle ilgili Twitter üzerinden takip ettiğiniz hashtaglerden yola çıkarak veri toplamanız mümkündür. Bu gibi bir senaryoda topladığınız her tweet’i bir belge olarak kabul edebilirsiniz.

İncelediğimiz örnekte 4 satırlık bir kelime dizisi üzerinden bu işlemleri yaparak her satırın bir belge olduğunu farz edelim.

2-) Kelime Haznesi(Vocabulary) Oluşturma

Elimizdeki belgeleri analiz ederek kelime haznesi oluşturulur. En basit yöntem Külliyat(corpus) bulunan yöntemdir.

4 tane belgeden elde ettiğimiz kelime haznesindeki kelime sayısı 10’dur

2.1-) Kelime Sayısının Arttırılması

Bu kısımda kullandığımız yöntem N-Gramlardır. Kelimeler tek tek anlam ifade etmez iken ; 2li veya 3lü kullanıldığında anlamlı olabilir. Deyimler, şirket, kurum ve özel isimler örnek verilebilir.

Buradaki n tekrarın kontrol edildiği yerdir. Gram ise tekrarın dizilimi içerisindeki ağırlığı ifade etmek için kullanılmıştır.

Türk Hava Yolları, Türk Hava Kurumu vb.

šUnigram: 1 kelimelik gruplar .
šBigrams: 2 kelimelik gruplar
šTrigrams : 3 kelimelik gruplar

2.1-) Kelime Sayısının Azaltılması

Bazı kelimeler işaretler kelime haznesinin gereğinden fazla şişmesine sebep olabilir. Başarıyı olumlu veya olumsuz yönde doğrudan etkilemese de bu istemediğimiz bir durumdur. Bunun için aşağıdaki aşamaları gerçekleştirebiliriz.

š-Büyük harf küçük harf ayrımının kaldırılması
š-Noktalama işaretlerinin elenmesi
š-Kelime köklerine göre farklılıkların ortadan kaldırılması ( Stemming ) işlemi
š-Yanlış yazılmış kelimelerin elenmesi
š-Frekansı çok geçen yardımcı kelimelerin TF-IDF yöntemleri kullanılarak elenmesi

Peki TF-IDF Nedir ?

šBir terimin döküman içerisindeki önemini gösteren istatistik yöntem ile hesaplanmış ağırlık faktörüdür.

šBir yazarın yazdığı yazılar incelenerek veya bir kullanıcının tweetleri incelenerek kişinin nelere ilgi duyduğu, yazılarında hangi konulara ağırlık verildiği tespit edilebilir. Bundan sonra yazacağı yazının türü tahmin edilebilir.


3.1 Scoring

Vektörlerin değerlerini ise değişik şekillerde oluşturabiliriz. Bu işleme Scoring denilmektedir.

šBinary Scoring: Dokümanda olup olmaması durumuna göre 0 veya 1 veriyoruz(Presence or Absence) Bag of Words genelde bu yöntemi kullanmaktadır. Ki döküman vektörleri oluşturulurken Binary Scoring yönteminden yararlanılmıştır.

šCount: Doküman içerisinde kelime kaç tane geçtiğini tespit etmektedir. C

šFrekans : Doküman içerisinde diğer kelimelere göre frekansı ,ağırlık oranına önem vermektedir

Bu işlemlere döküman vektörleri oluşturulur.

3.3-) Dense /Sparce Vector

Doküman vektörlerinin içerisinde birden fazla 0 değer oluşumu gerçekleşebilir. Bunlar bellek anlamında çok ciddi yer kayıplarına neden olabilir. Bu soruunu çözebilmek için ; veriler Sparse Vector şeklinde tutulabilir.

4. Word2Vec kullanılan CBOW ve Skip-gram Yöntemi

Word2Vec , kelimeleri vektör uzayında ifade etmeye çalışan unsupervised (no labels) ve tahmin temelli(prediction-based) bir modeldir .

2 çeşit alt yöntemi vardır:

 CBOW(Continous Bag of Words) ve Skip-Gram .

2 yöntem de genel olarak birbirine benzemektedir.

Word2Vec için en önemli hyperparameter’lardan bir tanesi window_size’dir. window_size hyperparametresi bize ortadaki kelimenin sağında ve solunda kaç kelime olabileceğini ifade ediyor . Aşağıdaki resim, window_size’ın 3 olduğu bir örnek :

CBOW  ve Skip Gram Arasındaki Temel Farklar

CBOW ve Skip-Gram modelleri birbirlerinden output’u ve input’u alma açısından farklılaşıyor .

CBOW modelinde window size’ın merkezinde olmayan kelimeler input olarak alınıp , merkezinde olan kelimeler output olarak tahmin edilmeye çalışırken; Skip-Gram modelinde ise merkezdeki kelime input olarak alınıp merkezde olmayan kelimeler output olarak tahmin edilmeye çalışılıyor .

Bu işlem cümle bitene kadar devam ediyor. Bir cümleye uygulanan bu işlemler tüm cümlelere uygulanıyor ve böylece başlangıçta elimizde bulunan unlabeled(etiketsiz) dataya mapping işlemi uygulanmış oluyor ve train etmeye hazır oluyor

NOT : CBOW modelleri genel olarak küçük datasetlerde daha iyi çalışırken, büyük datasetlerde Skip-gram daha iyi çalışmaktadır..

Bu konuyu çalışırken hazırlarken ve konu anlatımı videosunu hazırlarken yararlandığım kaynaklar aşağıdaki gibidir

Oğuz Atay’ın Tehlikeli Oyunlar kitabındaki incelemesinin detayına

https://medium.com/@muhammedbuyukkinaci/word2vec-nedir-t%C3%BCrk%C3%A7e-f0cfab20d3ae? ” linkinden ulaşabilirsiniz.

https://medium.com/@muhammedbuyukkinaci/word2vec-nedir-t%C3%BCrk%C3%A7e-f0cfab20d3ae?

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir