Sobes.tech
Middle

Как работи TF-IDF?

sobes.tech AI

Отговор от AI

TF-IDF (Term Frequency-Inverse Document Frequency) е статистическа мярка, която отразява важността на дума в документ спрямо цялостния корпус от документи.

  • TF (Честота на термина) — честотата на термина в конкретен документ. Обикновено се изчислява като броя на срещанията на думата разделен на общия брой думи в документа.
  • IDF (Обратна честота на документа) — обратната честота, която показва колко рядка е думата в цялата колекция от документи. Изчислява се като логаритъм на отношението между общия брой документи и броя на документите, съдържащи тази дума.

Крайната тежест на думата в документа е произведението на 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).

Това помага да се откроят думите, които често се срещат в конкретен документ, но са редки в други, което е полезно за векторизация на текста и последващ анализ.

Пример в 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())