TF-IDF ile Python’da Metin Analizi Örneği

TF-IDF Nedir?

TF-IDF, “Term Frequency-Inverse Document Frequency” kısaltmasıdır ve metin madenciliği ile bilgi erişiminde sıklıkla kullanılan bir istatistiksel ölçüttür. Bu yöntem, bir belgedeki kelimelerin önemini belirlemenin yanı sıra, belgeler arasında kelime sıklığını karşılaştırmayı sağlar. TF-IDF, her terimin (kelimenin) belge setine göre önemini değerlendirir, böylece anahtar kelimelerin ve konuların belirlenmesine yardımcı olur.

Bu yöntem iki bileşenden oluşur: Terim Sıklığı (TF) ve Ters Belge Sıklığı (IDF). TF, bir kelimenin belirli bir belgede kaç defa geçtiğini ölçerken, IDF, kelimenin ne kadar yaygın olduğunu veya ne kadar az belgede bulunduğunu değerlendirir. Tüm belgeleri ele alacak olursak, sık kullanılmayan kelimeler (örneğin, “ve”, “bir”, “de”) daha yüksek IDF değerleri alırken, sık kullanılan kelimeler, değerlerini düşürür.

Örneğin, bir kelimenin bir belgede 3 kez geçtiğini ve toplam 10 belge arasında sadece 2 belgede bulunduğunu varsayalım. TF, 3/100 (kelimenin belgedeki toplam kelime sayısı) olarak hesaplanırken, IDF, log(10/2) olarak hesaplanır. Bu şekilde TF-IDF değeri, kelimenin hem belirli bir belgedeki önemi hem de genel olarak belge çeşitliliğindeki nadirliğini yansıtır.

Python ile TF-IDF Hesaplama

Python’da TF-IDF hesaplamak için genellikle scikit-learn kütüphanesi kullanılır. Bu kütüphane, metin madenciliği için bir dizi araç ve algoritma sunarak, kullanıcıların karmaşık işlemleri basit bir şekilde gerçekleştirmelerine olanak sağlar. Aşağıda, TF-IDF hesaplamak için basit bir örnek bulabilirsiniz. Öncelikle, gerekli kütüphaneleri yükleyin:

from sklearn.feature_extraction.text import TfidfVectorizer

Bu kod, TF-IDF hesaplamaları için gerekli olan TfidfVectorizer sınıfını içe aktarır. Şimdi, bazı örnek metinleri tanımlayalım:

docs = [
    'Python programlama dili çok popülerdir.',
    'Python ile veri bilimi ve veri analizi yapılabilir.',
    'Veri bilimi alanında Python yaygın olarak kullanılmaktadır.',
    'Popüler olan birçok kütüphane Python ile yazılmıştır.'
]

Bu örnekte, dört cümlelik bir belge setimiz var. Şimdi TfidfVectorizer’ı kullanarak TF-IDF matrisini hesaplayalım:

vectorizer = TfidfVectorizer()
X = vectorizer.fit_transform(docs)

Yukarıdaki kod ile TfidfVectorizer nesnesi oluşturulmakta ve fit_transform metodu aracılığıyla belgelerimiz için TF-IDF değerleri hesaplanmaktadır. Şimdi elde edilen matrisin içeriğine bakalım:

tfidf_matrix = X.toarray()
print(tfidf_matrix)

Bu işlem, her kelimenin dört cümledeki ilişkisine göre TF-IDF değerlerini döndüren bir matris oluşturacaktır. Her satır, belgenin bir temsilini ve sütunlar ise belgedeki kelimelerin TF-IDF değerlerini gösterir.

Örnek Uygulama: TF-IDF ile Kelime Önemini Belirleme

TF-IDF değerleri elde edildikten sonra, kelimelerin belgelerdeki önem derecelerini değerlendirmek mümkündür. Bu örnekte, en yüksek TF-IDF değerine sahip kelimeleri bulabilmek için aşağıdaki kodu kullanabiliriz:

import pandas as pd

# Kelime isimlerini al
feature_names = vectorizer.get_feature_names_out()

# Her belgedeki TF-IDF değerlerini pd.DataFrame olarak oluştur
df_tfidf = pd.DataFrame(tfidf_matrix, columns=feature_names)

# Her belgedeki en yüksek 2 TF-IDF değerini bulma
for i in range(len(df_tfidf)):
    print(f'Belge {i+1}:')
    print(df_tfidf.iloc[i].nlargest(2))

Bu kod, her belgedeki en yüksek iki TF-IDF değerine sahip kelimeleri bulur ve listeleyerek, kullanıcının hangi kelimelerin o belgelerde en önemli olduğunu görmesine yardımcı olur.

Örneğin, yukarıdaki kod çalıştırıldığında, popüler kelimeler ve bunların belgelerdeki önem dereceleri görülebilir. Bu tür bir analiz, kullanıcıların metin içindeki anahtar kelimeleri belirlemelerine ve içeriklerini optimize etmelerine olanak tanır.

Bunun yanı sıra, elde edilen TF-IDF değerleri, metin sınıflandırma, kümeleme ve öneri sistemleri gibi daha karmaşık uygulamalarda da kullanılabilir.

Sonuç

TF-IDF yöntemi, metin verilerini analiz etmek ve anahtar kelimeleri belirlemek için güçlü bir araçtır. Python ile birlikte kullanıldığında, bilgiyi hızlı ve etkili bir şekilde işlemek mümkün hale gelir. Bu makalede, TF-IDF’nin ne olduğunu, nasıl hesaplandığını ve gerçek uygulama örneklerini inceledik. Bu bilgiler, metin analizi projelerinizde size yol gösterebilir.

Metin madenciliği ve bilgi erişimi alanında ilerlemek isteyen herkes için TF-IDF, öğrenilmesi ve uygulamaya konulması gereken önemli bir tekniktir. Python kütüphaneleri ile desteklenen bu süreç, kullanıcıların analizlerini derinleştirmelerine olanak tanırken, aynı zamanda yeni fırsatlar yaratır.

Sonuç olarak, TF-IDF ile metin analizi yaparken elde ettiğiniz bulguları kişisel projelerinizde uygulamaktan ve keşfetmekten çekinmeyin. Teknoloji dünyası, sizin gibi meraklı zihinlere her zaman açıktır!

Scroll to Top