Skip to main content

Vector Space Model VSM | I.A

  • Vector Space Model VSM | I.A

danger

Código sobre TF-IDF disponível no link abaixo:

🔗 Ver notebook no GitHub

alt text

Term Frequency-inverse Document Frequency TF-IDF

O TF-IDF (Term Frequency – Inverse Document Frequency) é uma técnica muito usada em recuperação da informação para calcular a importância de uma palavra em um documento dentro de um conjunto (corpus) de documentos.

Ele combina dois fatores:

📌 1. TF (Term Frequency) – Frequência do termo

É a frequência de uma palavra em um documento.

TF(t,d)=nuˊmero de vezes que o termo t aparece em dnuˊmero total de termos em dTF(t, d) = \frac{\text{número de vezes que o termo } t \text{ aparece em } d}{\text{número total de termos em } d}

📌 2. IDF (Inverse Document Frequency) – Frequência inversa nos documentos

Mede o quão raro é um termo no corpus. Se a palavra aparece em muitos documentos, ela tem menos valor.

IDF(t,D)=log(N1+nt)IDF(t, D) = \log\left(\frac{N}{1 + n_t}\right)
  • NN: número total de documentos no corpus
  • ntn_t: número de documentos que contêm o termo tt
  • A adição de 1 no denominador evita divisão por zero.

📌 3. TF-IDF final:

TF-IDF(t,d,D)=TF(t,d)×IDF(t,D)TF\text{-}IDF(t, d, D) = TF(t, d) \times IDF(t, D)

✅ Exemplo simples:

Corpus com 3 documentos:

  • D1: "gato gosta de leite"
  • D2: "cachorro gosta de osso"
  • D3: "gato e cachorro são animais"

Termo: "gato"

  • TF no D1 = 1/4 = 0.25
  • "gato" aparece em 2 documentos (D1 e D3), então:
  • IDF = log(3 / (1 + 2)) = log(1) = 0
  • TF-IDF no D1 = 0.25 × 0 = 0

Agora suponha que o termo "leite" só aparece no D1:

  • TF("leite", D1) = 1/4 = 0.25
  • IDF("leite") = log(3 / (1 + 1)) = log(1.5) ≈ 0.176
  • TF-IDF("leite", D1) ≈ 0.25 × 0.176 ≈ 0.044

📈 Interpretação:

  • Palavras comuns (como "gato", "gosta") têm TF alto, mas IDF baixo → pouco relevantes.
  • Palavras específicas (como "leite", "osso") têm IDF alto → mais peso na distinção dos documentos.