Sobes.tech
Middle

Πώς λειτουργεί το TF-IDF;

sobes.tech AI

Απάντηση από AI

TF-IDF (Term Frequency-Inverse Document Frequency) είναι ένα στατιστικό μέτρο που αντικατοπτρίζει τη σημασία μιας λέξης σε ένα έγγραφο σε σχέση με ολόκληρο το σώμα των εγγράφων.

  • TF (Term Frequency) — η συχνότητα του όρου σε ένα συγκεκριμένο έγγραφο. Συνήθως υπολογίζεται ως ο αριθμός των εμφανίσεων της λέξης διαιρούμενος με τον συνολικό αριθμό των λέξεων στο έγγραφο.
  • IDF (Inverse Document Frequency) — η αντίστροφη συχνότητα του εγγράφου, που δείχνει πόσο σπάνια είναι η λέξη σε ολόκληρο το σύνολο εγγράφων. Υπολογίζεται ως ο λογάριθμος της αναλογίας μεταξύ του συνολικού αριθμού εγγράφων και του αριθμού εγγράφων που περιέχουν αυτή τη λέξη.

Το τελικό βάρος της λέξης στο έγγραφο είναι ο πολλαπλασιασμός του TF με το IDF:

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

όπου:

  • (t) — όρος,
  • (d) — έγγραφο,
  • (N) — συνολικός αριθμός εγγράφων,
  • (\text{DF}(t)) — αριθμός εγγράφων που περιέχουν τον όρο (t).

Αυτό βοηθά στην ανάδειξη των λέξεων που εμφανίζονται συχνά σε ένα συγκεκριμένο έγγραφο, αλλά είναι σπάνιες σε άλλα, κάτι που είναι χρήσιμο για την διαvectorization του κειμένου και την περαιτέρω ανάλυση.

Παράδειγμα σε Python με sklearn:

from sklearn.feature_extraction.text import TfidfVectorizer

docs = ["μηχανική μάθηση είναι ενδιαφέρουσα", "επεξεργασία φυσικής γλώσσας είναι σημαντική"]
vectorizer = TfidfVectorizer()
tfidf_matrix = vectorizer.fit_transform(docs)
print(vectorizer.get_feature_names_out())
print(tfidf_matrix.toarray())