TF-IDF (Term Frequency-Inverse Document Frequency)
TF-IDF (Term Frequency-Inverse Document Frequency), belirli bir terimin bir dokümanda ne kadar önemli olduğunu belirlemek için kullanılan bir istatistiksel ölçümdür. Bu yöntem, metin madenciliği ve bilgi geri kazanımı alanlarında, belgelerden bilgi çıkarma ve belge sıralama gibi görevlerde yaygın olarak kullanılır.
TF-IDF Nasıl Çalışır?
TF-IDF, iki farklı metriği birleştirir: Terim Sıklığı (TF) ve Ters Belge Sıklığı (IDF). Bu iki metrik, bir kelimenin bir dokümanda ne kadar önemli olduğunu belirlemeye yardımcı olur.
Terim Sıklığı (TF): Bir terimin belirli bir dokümanda ne sıklıkta geçtiğini ölçer. Basit bir hesaplama ile, bir terimin toplam terim sayısına bölünmesiyle elde edilir:
Ters Belge Sıklığı (IDF): Bir terimin tüm belgelerde ne kadar sık geçmediğini ölçer ve nadir terimlere daha yüksek ağırlık verir. Bir terimin belge frekansının ters logaritması olarak hesaplanır:
Burada +1, sıfır bölme hatasını önlemek için eklenir.
TF-IDF Skoru: Bu iki ölçüm çarpılarak bir terimin bir dokümanda ne kadar önemli olduğunu belirleyen bir skor üretilir:
TF-IDF'ın Kullanım Alanları
TF-IDF, metinler arası benzerlik ölçümü, anahtar kelime çıkarımı, arama motorlarında sorgu ve belge sıralama gibi alanlarda etkilidir. Ayrıca, makine öğrenmesi modellerinde özellik olarak kullanılarak metin sınıflandırma ve kümeleme işlemlerinde de yarar sağlar.
Örnek Python Kodu
Python'da, scikit-learn kütüphanesinin TfidfVectorizer sınıfı kullanılarak kolayca TF-IDF tabanlı vektörleştirme yapılabilir. İşte basit bir örnek:
from sklearn.feature_extraction.text import TfidfVectorizer # Dokümanlar documents = [ 'the sky is blue', 'the sun is bright', 'the sun in the sky is bright', 'we can see the shining sun, the bright sun' ] # TF-IDF vektörleştiricisini başlat vectorizer = TfidfVectorizer() # Dokümanları TF-IDF matrisine dönüştür tfidf_matrix = vectorizer.fit_transform(documents) # Sözcükler ve TF-IDF skorları feature_names = vectorizer.get_feature_names_out() for doc_id, doc in enumerate(tfidf_matrix): print(f"Document {doc_id}:") for word_id in doc.nonzero()[1]: print(f" {feature_names[word_id]}: {doc[0, word_id]:.4f}")
Bu kod, verilen dokümanları TF-IDF skorlarına göre vektörleştirir ve her bir dokümandaki her kelime için TF-IDF değerlerini yazdırır.
0 Yorum
Önerilen Yorumlar
Görüntülenecek yorum yok.