TF-IDF (Term Frequency — Inverse Document Frequency)

TD-IDF, bir terimin doküman içerisindeki önemini gösteren istatistiki yöntem ile hesaplanmış ağırlık faktörüdür.

Peki bunun bize ne gibi bir faydası olacak ? Bu değeri nerelerde kullanabiliriz ?

  • Arama motorları sıralama ve skorlama sırasında kullanabilir.
  • Stop Words filtrelemede kullanılabilir. (Stop word: Cümlede çok kullanılan bağlaç, noktalama işaretleri vb.. terim olmayan kelimeler)
  • Metin özetlenmesinde ve sınıflandırmasında kullanılabilir.

Bir yazarın yazdığı yazılar incelenerek, bir kullanıcının attığı tweetler incelenerek kişinin nelere ilgi duyduğu, yazılarında hangi konulara ağırlık verdiğini çıkarabiliriz.

Term Frequency
Bir doküman içerisinde geçen terim ağırlıklarını hesaplamak için kullanılan yöntemdir. Aşağıda Term Frequency ağırlık hesaplama yöntemleri bulunmaktadır.

  • Binary, doküman içerisinde terimin olup olmadığını
  • Raw Frequency, terimin dökümanda geçme sayısı / dökümanda kelime sayısı (Dokümanın uzunluğu kaliteli bir sonuç elde etmeyi engeller)
  • Log Normalization -
  • Double Normalization 0,5 burada 0,5–1 arasında bir değer oluşturuyor. Raw Freq / Maksimun geçen Terim Raw Freq bölerek doküman ne kadar uzun olursa olsun terim’in diğer terimlere olan oranını bularak frekansı normalize etmektedir.
  • Double Normalization K -

Inverse Document Frequency
Birden fazla dokümanda kelimenin geçme sayısını bularak bu kelimenin terim olup olmadığını bağlaç vb (Stop Words) olduğu anlamaya çalışır. Bunun için Dokuman Sayısı / Terimin Geçtiği Dokuman Sayısı'nın logaritmasının mutlak değeri alınmaktadır.

IDF = log ( Dokuman Sayısı / Terimin Geçtiği Dokuman Sayısı )

Örneğin. Ve, ile kelimesi her dokümanda geçiyor ise |log(10/10)| = 0 verirken mesela yazdığımız dokümanda tf-idf kelimesi 1 dokümanda geçiyor ise |log(1/10)| = 1 değeri elde ederiz 100 dokümanda 1 defa geçiyor ise 2 değerini elde ederiz. Özetle terim ne kadar az dökumanda tekrar ediyor ise IDF değeri o kadar büyük çıkar.

Double Normalization Term Frequency değeri ile IDF değerinin çarpımı bize bu terimin doküman içerisindeki değerini vermiş olur. Dokümanın ağırlıklı olarak hangi konuyla ilgili olduğunu, arama işlemlerinde aradığımız terimin dokümanda ne kadar ağırlıklı olarak geçtiğini anlayabiliriz.

Lucene dokümanları indeksleyen ve bu dokümanlar üzerinde yüksek performanslı kelime araması yapabildiğiniz bir java kütüphanesidir.

Lucene aşağıdaki linkteki şu cümleden TF-IDF’yi kullandığını görebiliriz. “VSM does not require weights to be Tf-idf values, but Tf-idf values are believed to produce search results of high quality, and so Lucene is using Tf-idf.”

Okumaya Devam Et 😃

Bu yazının devamı veya yazı grubundaki diğer yazılara erişmek için bu linke tıklayabilirsiniz.

--

--