Vector Space Model Nedir ?

Vector Space Model

Metin dokümanlarının vektörler ile ifade edildiği bir uzay düşünün. Bu sayede;

  • Aradığınız bir metni bu uzay düzlemindeki yerini bulabilirseniz bu vektöre en yakın dokümanlara erişebilirsiniz.
  • Dokümanlar arası uzaklığı birbiri ile kıyaslayabilirsiniz.
  • k-means clustering uygulayarak belgelerinizi belli gruplara ayırabilirsiniz.

Vector Space Model: tf-idf veya kelimenin o doküman içerisinde olup/olmaması(bag of words) üzerinden hesaplanacak vektörel değerleri üzerinden bu vector uzayı oluştırma

Daha önceki yazımda TF-IDF (Term Frequency — Inverse Document Frequency) konusundan bahsetmiştim.

Günlük hayattan bir örnek Lucene(Search Framework) bu işlemi TFIDFSimilarity Vector Space Model’de Cosine Similarity kullanarak yaptığını görebilirsiniz.

1nci Aşama: Sözlük Oluşturma

Dokümanların içerisinden kelimeler ile sözlük oluşturma işlemini gerçekleştiririz. Tek tek geçen kelimeleri bularak bu sözlüğü oluşturabiliriz.

  • D1 ve D3 dokümanlarımız
  • W bizim sözlüğümüz
  • V1 ve V2 bu dokümanları oluşturan vektörlerdir. (Not: Vektörleri kelimelerin geçme frekanslarını göre oluşturduğumuzu görebilirsiniz)
topic vector

Bu esnada sözlüğümüzü farklı şekillerde de oluşturabiliriz.

  • Mesela kelimeleri birim birim almak yerine kelime öbekleri şeklinde ele almamız gerekebilir. Bu durumda NGram yöntemini kullanabilirsiniz.
  • Mesela türeyen bir dilde (göz, gözlük, gözlükçü vb..) kelime kökleri üzerinden sözlük oluşturma ihtiyacı duyabilirsiniz (stemming örneğin zemberek)
  • Bir diğer konuda The, have vb.. stopping words denilen kelimelerin sözlükten elenmesini sağlamak bunun içinde tf-idf yöntemi kullanabilirsiniz.
tf-idf

tf-idf yöntemi ile sözlüğünüzdeki kelimelerin bu belgeler içerisindeki ağırlığını hesaplayabilirsiniz. Arkasındaki matematik ise

Vector Normalization

Vector Normalization

Bu işlem sırasında kelimelerin doküman içerisinde geçme sıklığı unit vector dönüştürülür. Ve bunlar ile term frekansı hesaplanır.

Şimdi dokümanlarda çokça geçen ve anlam ifade etmeyen kelimelerin bulunmasına bu aşamada da Inverse Document Frequency (idf) yani kelimenin logaritması alınır.

2nci Aşama: Cosine Similarity

Artık elimizde vektörler mevcut. Bu vektörler arasındaki cosine hesaplayarak dokümanların bu uzayda birbirine ne uzaklıkta olduğunu hesaplayabiliriz. Bu aşamada ağırlıkları hesaplanmış vektörlerimizdeki aynı sözlük kelimlerini birbiri ile çarpıp topluyoruz.

Sonuçta iki metin birbirine çok benziyor ise aynı sözlük öğelerinin ağırlıkları benzer olacak ve bunları birbiri ile çarpınca en yüksek değerleri elde edeceğiz 1x1 gibi.. 0.8x0.9 gibi … Eğer metinde ortak olmayan kelimelere gelirsek bu kelimeler 0.8x0 veya 0x0.9 sonucunda bu işlemden bize bir sonuç gelmeyecektir.