Sobes.tech
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())