Sobes.tech
Middle

TF-IDF qanday ishlaydi?

sobes.tech AI

AIdan javob

TF-IDF (Term Frequency-Inverse Document Frequency) — bu statistik o‘lchov bo‘lib, u hujjatda so‘zning muhimligini butun hujjatlar to‘plamiga nisbatan aks ettiradi.

  • TF (Term Frequency) — muayyan hujjatda so‘zning chastotasi. Odatda, so‘zning takrorlanishlar soni hujjatdagi umumiy so‘zlar soniga bo‘lingan holda hisoblanadi.
  • IDF (Inverse Document Frequency) — hujjatlarning teskari chastotasi, ya’ni so‘zning butun hujjatlar to‘plamida qanchalik kam uchrashini ko‘rsatadi. Bu, umumiy hujjatlar sonining, bu so‘zni o‘z ichiga olgan hujjatlar soniga bo‘linmasining logarifmi sifatida hisoblanadi.

Hujjatdagi so‘zning yakuniy og‘irligi TF bilan IDF ning ko‘paytmasidir:

[ \text{TF-IDF}(t,d) = \text{TF}(t,d) \times \log\frac{N}{1 + \text{DF}(t)} ]

bu yerda:

  • (t) — termin,
  • (d) — hujjat,
  • (N) — umumiy hujjatlar soni,
  • (\text{DF}(t)) — bu so‘zni o‘z ichiga olgan hujjatlar soni.

Bu, muayyan hujjatda tez-tez uchraydigan, lekin boshqalarda kam uchraydigan so‘zlarni ajratib ko‘rsatishga yordam beradi, bu esa matnni vektorizatsiya qilish va keyingi tahlil uchun foydalidir.

Pythonda sklearn bilan misol:

from sklearn.feature_extraction.text import TfidfVectorizer

docs = ["mashinalar o‘rganish qiziqarli", "tabiiy tilni qayta ishlash muhim"]
vectorizer = TfidfVectorizer()
tfidf_matrix = vectorizer.fit_transform(docs)
print(vectorizer.get_feature_names_out())
print(tfidf_matrix.toarray())