İçerik Temelli Filtreleme: TF-IDF (Term Frequency — Inverse Document Frequency) ve Excel Uygulaması

ANIL ŞANLI
4 min readMay 23, 2022

--

Geçtiğimiz haftalarda yayınladığım yazılarda Öneri Sistemleri ile ilgili içerikler de yer almıştı. Öneri Sistemlerinin temelde kullanıcılara bazı yöntemler ve algoritmalar kullanarak içerik, ürün, hizmet vb. tavsiye etmeye yarayan sistemler olduğunu söyleyebilmek mümkün. Bu algoritmalardan Apriori Algoritması’na odaklanan bir içeriği de yine geçtiğimiz süreçte yayınlamıştım. Bu yazıda ise İçerik Temelli Filtreleme’de yer alan TF-IDF yöntemi ile ilgili bir içerik ile karşınızdayım. Genel olarak İçerik Temelli Filtreleme’den bahsettiğim ve Python uygulamasını yaptığım içeriği buraya da ekliyorum.

İçerik Temelli Filtreleme ürünün içeriğine odaklanır ve ürün benzerlikleri üzerinden analiz yaparak kullanıcıya önerilerde bulunur. TF-IDF (Term Frequency — Inverse Document Frequency veya Terim Frekansı— Tersine Doküman Frekansı) ise en temel ifade ile bir metin vektörleştirme yöntemidir.

İçerik Temelli Filtreleme: TF-IDF (Term Frequency — Inverse Document Frequency)

TF-IDF bir metindeki veya dizideki kelimelerin metinle ne kadar ilgili olduğunun hesaplanması yöntemidir. TF-IDF Makine Öğrenmesi, Metin Madenciliği, Doğal Dil İşlemi gibi uygulamalarda sıkça kullanılır. Bu yöntem 2 ölçümden oluşur:

  • Bir belgede kelimenin kaç kez görüldüğü (TF),
  • Bir dizi belgede (farklı belgelerde) kelimenin ters belge sıklığı (IDF).

Terimler:

  • t — term (kelime)
  • d — document (belge)
  • N —count of corpus (belge sayısı )
  • corpus —belgeler dizisi

Terim Frekansı: Bir belgede belli bir kelimenin sayısını temsil eder. Kelimenin sıklığı artıkça kelimenin o belge ile daha alakalı olduğunu söylemek mümkün. Bir belgede geçen terimin ağırlığı, terim sıklığı ile orantılıdır. TF’i hesaplamak için tüm kelimelere, kelimelerin sayılarına ve belgenin uzunluğuna ihtiyacımız vardır.

Belge Frekansı: Terim frekansına benzer bir şekilde bir metnin (kelimenin) tüm dizi belgelerdeki anlamını test eder. Belge Frekansı değeri kelimenin bulunduğu belge sayısıdır, belgelerde kaç kere bulunduğunun bir önemi yoktur.

Ters Belge Frekansı: IDF yani Ters Belge Frekansı bir terimin (t) bilgilendiriciliğini (anlamlılığını) ölçen değerdir, Belge Frekansı’nın tersidir. Durma sözcüğü olarak isimlendirilen cümlelerdeki temel kelimeler (İngilizce’deki is, the, an vb. Türkçe’deki ama, de, ne, şey, ya vb.) çoğu cümlede bulunduğundan DF değerleri yüksek çıkacaktır. Fakat her cümlede bulunan bu kelimelerin belgeler için anlamlılık (özellik) değerleri düşüktür. TDF işlemi ile DF’teki bu yüksek değerlerin etkisi azaltılır.

TF-IDF — Excel Uygulaması

Bu bölümde Excel üzerinde TF-IDF uygulamasını adım adım gerçekleştireceğiz. Öncelikle belgeler belirlenmelidir:

  1. This is the first document of the Excel
  2. This document is the second document
  3. This document is located on the the third line
  4. Is this the first documend

Bu 4 belgedeki her bir cümle satırlara, her bir kelime de (tekrarsız biçimde) sütunlara gelecek şekilde başlangıç tablosu oluşturuluyor.

1. Adım: Kelimelerin Her Bir Dokümandaki Frekanslarının Hesaplanması

Belgelerdeki her bir farklı kelime çıkartılarak tablo oluşturulmuştu. İlk adımda ise bu kelimelerin her bir belgedeki frekansları bu tabloya doldurulacaktır.

1. Adım: Kelimelerin Her Bir Dokümandaki Frekanslarının Hesaplanması

2. Adım: TF Değerlerinin Hesaplanması

Önceki adımda kelimelerin dokümanlarda kaçar kez geçtiği bulunmuştu. Bu adımda kelimelerin TF değerlerinin, yani o dokümandaki oranlarının bulunması işlemi gerçekleştirilecektir.

2. Adım: TF Değerlerinin Hesaplanması

3. Adım: IDF Değerlerinin Hesaplanması

TF değerlerinin bulunmasının ardından sırada IDF değerlerinin hesaplanması var. Bunun için de bir önceki bölümde verilen fonksiyon kullanılacaktır.

3. Adım: IDF Değerlerinin Hesaplanması

4. Adım: TF*IDF’in Hesaplanması

TF ve IDF değerleri önceki adımlarda bulundu. 4. adımda ise bu değerlerin çarğımı gerçekleştirilecektir.

4. Adım: TF*IDF’in Hesaplanması

5. Adım: L2 Normalizasyonu Yapılması

TF-IDF değeri bulunduktan sonra son adım olarak L2 Normalizasyonu yapılması gelmektedir. L2 Normalizasyonu için öncelikle TF-IDF tablosunda satırlar bazında değerlerin kareleri toplamının karekökünü alma işlemi uygulanır. Ardından her bir değer yapılan işlem sonucu elde edilen değerlere bölünerek normalizasyon işlemi tamamlanmış olur. L2 Normalizasyonu temelde vektörün, vektörün uzunluğuna bölünmesidir.

5. Adım: L2 Normalizasyonu Yapılması

--

--