search

Found

info Visão geral

Informe dois textos para obter a similaridade cosseno TF-IDF (suavizada, N=2), o vocabulário comum e a norma de cada vetor em um painel.

📘 Como usar

  1. Cole em Texto A e Texto B os dois textos que deseja comparar
  2. Ajuste a normalização sem maiúsculas e o TF sublinear conforme necessário
  3. Veja a similaridade cosseno, o vocabulário total, os termos comuns e cada norma

Calculadora de similaridade cosseno TF-IDF

Tokens: 0 Termos únicos: 0
Tokens: 0 Termos únicos: 0
Sem distinguir maiúsculas

As letras ASCII são dobradas; CJK não muda

Usar 1 + ln(tf)

Atenua termos muito frequentes (opção padrão do sklearn)

Similaridade cosseno

/ 1.0

Próximo de 1 = mais similar (ângulo 0°); 0 = ortogonal (ângulo 90°)

Vocabulário total
Termos comuns
Norma A
Norma B
Copiado

※ IDF = ln((2+1)/(df+1)) + 1 evita o colapso a zero com N=2 documentos (padrão do sklearn)

※ Tokenizador por categoria Unicode. CJK separa por caractere; letras, dígitos, apóstrofo, hífen e sublinhado formam uma palavra.

Article

Calculadora de similaridade cosseno TF-IDF — pontue dois textos de 0 a 1

Cole dois textos e obtenha a similaridade cosseno dos seus vetores TF-IDF suavizados (N=2) numa escala de 0 a 1. O vocabulário total, o número de termos comuns e a norma de cada vetor ficam num único painel, com chaves para ignorar maiúsculas e para o TF sublinear. Até 20 000 caracteres por documento.

💡 Sobre esta ferramenta

Ao implementar o ranking de um buscador ou ao verificar a sobreposição entre dois artigos, costuma valer a pena conferir manualmente se dois trechos realmente se parecem pela forma como suas palavras se cruzam. Antes de recorrer a um modelo de embeddings, muitas vezes você quer primeiro a similaridade lexical simples — é isso que esta calculadora oferece.

O TF-IDF pondera cada termo multiplicando sua frequência no documento (TF) pela sua raridade entre documentos (IDF). Palavras frequentes e distintivas pesam mais, enquanto as que aparecem em ambos os documentos são descontadas. A ferramenta trata suas duas entradas como dois documentos, constrói o vocabulário comum, forma os vetores TF-IDF e devolve a similaridade cosseno com quatro casas decimais.

Com apenas dois documentos, o IDF bruto de uma palavra compartilhada se anula, então a ferramenta usa a mesma fórmula suavizada do scikit-learn: IDF = ln((N+1)/(df+1)) + 1. Isso atribui peso 1,0 aos termos comuns e cerca de 1,405 aos que aparecem em apenas um documento. O vocabulário total, a contagem de termos comuns e as normas aparecem ao lado para você acompanhar como o número foi formado.

🧐 Perguntas frequentes

Como leio o valor cosseno? Quanto mais perto de 1, mais alinhados estão os vetores e mais parecidos são os textos (ângulo 0°); 0 significa que não há termos comuns e eles são ortogonais (ângulo 90°). Em torno de 0,5 indica sobreposição parcial de vocabulário.

Por que há uma suavização de +1 no IDF? Com apenas dois documentos, uma palavra presente em ambos teria IDF bruto zero e perderia todo o seu peso. A suavização padrão do scikit-learn (+1 no numerador e no denominador, +1 no final) mantém peso 1,0 nos termos comuns para que o cálculo não quebre.

O que muda ao ativar o TF sublinear? Em vez da contagem bruta, a frequência passa a ser 1 + ln(tf), o que atenua o efeito de uma palavra repetida muitas vezes. Importa em textos longos onde um termo se repete bastante; corresponde à opção padrão do scikit-learn.

Como o CJK e outras escritas são segmentados? Os caracteres CJK (chinês, kana japonês, coreano) são tratados como um token por caractere. Sequências de letras, dígitos, apóstrofo, hífen e sublinhado formam uma única palavra. Não há análise morfológica, então use como medida lexical de proximidade, do tipo saco de palavras.

O que a normalização de maiúsculas afeta? Quando ativa, as letras ASCII viram minúsculas, de modo que "Cosine" e "cosine" contam como o mesmo termo. O CJK não é afetado. Desative quando precisar distinguir nomes próprios com maiúscula.

📚 Notas sobre TF-IDF e cosseno

Desde que foi proposto nos anos 1970, o TF-IDF segue sendo um alicerce da pontuação em busca de texto completo. A pontuação padrão do Elasticsearch e do Lucene é o BM25, uma evolução do TF-IDF, mas a ideia de fundo — frequência vezes raridade — é a mesma. Examinar manualmente um cosseno TF-IDF simples ajuda a entender por que um ranking de busca sai em certa ordem.

A similaridade cosseno ignora o comprimento do vetor e olha só a direção porque o objetivo é comparar a "direção" do vocabulário sem ser distorcido pelo comprimento de cada texto. Um documento longo e um curto ainda podem pontuar alto se a composição de suas palavras for similar. A ferramenta também mostra a norma A e a norma B, então você vê ao mesmo tempo a magnitude do vetor TF-IDF de cada documento: o acúmulo de seus termos e pesos.