Middle
Hogyan működik a TF-IDF?
sobes.tech MI
Válasz az MI-től
TF-IDF (Term Frequency-Inverse Document Frequency) statisztikai mérőszám, amely tükrözi egy szó fontosságát egy dokumentumban az egész dokumentumkorpuszhoz képest.
- TF (Szó gyakorisága) — a szó gyakorisága egy adott dokumentumban. Általában a szó előfordulásainak száma osztva a dokumentum összes szavának számával.
- IDF (Fordított dokumentum gyakoriság) — a szó ritkaságát mutatja az egész dokumentumkorpuszon belül. Azt a logaritmust jelenti, amely a teljes dokumentumszám és azoknak a dokumentumoknak a számának arányát fejezi ki, amelyek tartalmazzák ezt a szót.
A szó végső súlya a dokumentumban a TF és az IDF szorzata:
[ \text{TF-IDF}(t,d) = \text{TF}(t,d) \times \log\frac{N}{1 + \text{DF}(t)} ]
ahol:
- (t) — kifejezés,
- (d) — dokumentum,
- (N) — összes dokumentum száma,
- (\text{DF}(t)) — azoknak a dokumentumoknak a száma, amelyek tartalmazzák a (t) kifejezést.
Ez segít kiemelni azokat a szavakat, amelyek gyakran fordulnak elő egy adott dokumentumban, de ritkák másokban, ami hasznos a szöveg vektorizálásában és a későbbi elemzésekben.
Python példával sklearn használatával:
from sklearn.feature_extraction.text import TfidfVectorizer
docs = ["gépi tanulás érdekes", "természetes nyelv feldolgozása fontos"]
vectorizer = TfidfVectorizer()
tfidf_matrix = vectorizer.fit_transform(docs)
print(vectorizer.get_feature_names_out())
print(tfidf_matrix.toarray())