A densidade de palavras-chave é uma métrica morta, e eis o que a substituiu
Publicado a 27/05/2025 · 14 min de leitura · Ferramentas de marketing e SEO
Camille Laurent — Redatora de Finanças na OneKitly
Fiscalidade · Finanças pessoais
Verificado a partir de 5 fontes
A densidade de palavras-chave é ocorrências a dividir pelo total de palavras, e era um indicador utilizável em 2003 porque a recuperação de então pontuava mesmo documentos por contagens brutas. Era um indicador da frequência de termo num modelo de saco de palavras, e todos os modelos que substituíram aquele tratam as contagens brutas de outra forma. O TF-IDF pondera um termo pela raridade dele no corpus, pelo que uma palavra presente em metade da web quase nada rende por muito que a repita. O BM25 foi mais longe e fez a frequência de termo saturar: com os padrões k1 = 1,2 e b = 0,75, uma ocorrência vale 1,000, duas valem 1,375, dez valem 1,964, e o teto é 2,2 por mais que acrescente. A segunda ocorrência traz 0,375; a décima traz 0,023 — dezasseis vezes menos. A recuperação por embeddings não conta termos de todo: compara sentidos num espaço vetorial, pelo que uma página pode posicionar-se para uma expressão que nunca contém. A densidade sobrevive por uma coisa só: como teste de cheiro. Se uma expressão chega a 5 % das suas palavras, algo se repete por acidente. Não há percentagem recomendada, e quem cita uma está a citar 2003.
A densidade contava ocorrências porque a recuperação contava ocorrências. TF-IDF, depois BM25 com a sua curva de saturação, depois os embeddings substituíram-na. Eis a mesma página de 800 palavras pontuada de três formas, e porque é que as três divergem.
De que é que a densidade era realmente um indicador
A densidade de palavras-chave é uma divisão: o número de vezes que um termo aparece, a dividir pelo número de palavras da página. Dezasseis aparições de uma palavra num artigo de 800 palavras são 2,00 %. É essa toda a métrica, e nunca foi inventada pelos motores — foi inventada por quem tentava fazer-lhes engenharia inversa, como palpite sobre o que o motor estava a contar.
O palpite era razoável, porque durante um tempo esteve certo. A recuperação inicial tratava um documento como um saco de palavras: ordem descartada, estrutura descartada, documento reduzido a um vetor de contagens de termos. Pontue um documento face a uma consulta somando quantos termos da consulta ele contém e com que frequência, e a repetição fica diretamente recompensada. A densidade é a regra prática desse modelo, normalizada pelo comprimento para que uma página longa e uma curta se possam comparar. Era o indicador de uma coisa concreta — a frequência de termo numa função de pontuação de saco de palavras — e deixou de ser útil assim que a função de pontuação mudou.
Duas coisas mataram-na. A primeira: o indicador tornou-se um alvo, e uma métrica que é também um alvo deixa de medir — as páginas entupidas de repetições eram excelentes segundo a densidade, e ilegíveis segundo qualquer critério humano. A segunda foi mais lenta e mais interessante: as funções de pontuação deixaram de contar assim, primeiro pela frequência inversa de documento, depois pela saturação, depois abandonando de todo a contagem de termos. O resto deste artigo são esses três passos, aplicados a uma página concreta.
TF-IDF: a raridade vale mais do que a repetição
A primeira correção veio de uma observação de Karen Spärck Jones em 1972: a especificidade de um termo é inversamente proporcional ao número de documentos que o contêm. Um termo presente em quase todos os documentos quase nada lhe diz sobre qual devolver. Isso torna-se a frequência inversa de documento, idf = ln(N ÷ df), com N o número de documentos do corpus e df o número dos que contêm o termo. Multiplique-a pela frequência de termo e tem o TF-IDF, que continua a ser o modelo mental de que a maioria dos editores precisa de facto.
Ponhamos-lhe números. Pegue numa página de 800 palavras sobre máquinas de espresso. A palavra machine aparece 24 vezes — densidade de 3,00 %, a mais alta da página. A palavra espresso aparece 16 vezes, densidade de 2,00 %. A palavra descalcificação aparece 4 vezes, densidade de 0,50 %. Suponha agora um corpus de 10 000 000 de documentos em que machine aparece em 2 000 000, espresso em 200 000 e descalcificação em 50 000. Os idf valem ln(5) = 1,6094, ln(50) = 3,9120 e ln(200) = 5,2983. Com frequência de termo bruta, o TF-IDF dá a machine 24 × 1,6094 = 38,63, a espresso 16 × 3,9120 = 62,59 e a descalcificação 4 × 5,2983 = 21,19.
A ordenação já mudou uma vez. A densidade diz que machine é o sinal mais forte da página. O TF-IDF diz que é espresso, por 62 contra 39, apesar de aparecer oito vezes menos. E se usar a variante logarítmica da frequência de termo que o TF-IDF clássico costuma aplicar, 1 + ln(f), as pontuações passam a 6,72 para machine, 14,76 para espresso e 12,64 para descalcificação — um termo a 0,50 % de densidade quase supera um a 2,00 %, e supera folgadamente o de 3,00 %. Mesma página, mesmas palavras, três ordenações, nenhuma repetição acrescentada.
BM25 e a curva de saturação, que é a parte interessante
O BM25 saiu do trabalho Okapi na City University London e das avaliações TREC dos anos noventa, e continua a ser a função de ranking por omissão no Lucene, no Elasticsearch e em boa parte da infraestrutura de pesquisa em serviço. A sua componente de frequência de termo é onde vive a ideia a sério: em vez de usar f diretamente, usa f × (k1 + 1) ÷ (f + k1 × (1 − b + b × dl ÷ avgdl)), onde dl é o comprimento do documento, avgdl o comprimento médio do corpus, e k1 e b são constantes de afinação convencionalmente fixadas em 1,2 e 0,75. Leia-a como fração e o comportamento aparece sozinho: quando f cresce, numerador e denominador crescem ambos, e o quociente converge para k1 + 1.
Numa página de comprimento exatamente médio o termo de comprimento reduz-se a 1 e o peso fica simplesmente f × 2,2 ÷ (f + 1,2). Calcule: uma ocorrência vale 1,0000, duas valem 1,3750, três valem 1,5714, cinco valem 1,7742, dez valem 1,9643, vinte valem 2,0755, cinquenta valem 2,1484. O teto é 2,2 e nada lá chega. Em fração desse teto, uma só ocorrência já recolhe 45,5 % de tudo o que o termo alguma vez poderá valer; duas recolhem 62,5 %, cinco 80,6 %, dez 89,3 %.
A vista marginal devia encerrar a discussão. Passar de uma ocorrência a duas acrescenta 0,3750. Passar de nove a dez acrescenta 0,0231. A décima ocorrência vale cerca de um dezasseis avos da segunda, e a quinquagésima vale 0,0010 — 365 vezes menos do que a segunda. É isto que significa saturação, e é uma escolha de desenho deliberada, não um acidente: Robertson e Zaragoza descrevem essa forma como o próprio objetivo da função — a primeira ocorrência estabelece que o documento é sobre o termo, e as seguintes só podem confirmar o que já está estabelecido. Escrever uma palavra pela décima vez para se posicionar nela é otimizar uma quantidade que a função de recuperação já deixou de ouvir.
O parâmetro b trata do comprimento, e fá-lo muito mais suavemente do que a densidade. Pegue nessas mesmas 16 ocorrências de espresso e ponha-as numa página de 1 600 palavras em vez de uma de 800, num corpus cujo documento médio tem 800 palavras. A densidade reduz-se a metade, de 2,00 % para 1,00 %. O peso BM25 desce de 2,0465 para 1,9448 — uma queda de 5,0 %. Para recuperar a pontuação das 800 palavras com o dobro do comprimento seriam precisas 28 ocorrências, não 32. A densidade diz que foi penalizado em metade; o BM25 diz que num vigésimo. Não medem a mesma coisa, e nunca mediram.
Depois os embeddings deixaram de contar termos de todo
O TF-IDF e o BM25 são ambos lexicais: precisam que o termo da consulta esteja presente no documento, de alguma forma, para que ele sequer pontue. A recuperação baseada em embeddings quebra esse pressuposto por completo. Um modelo projeta a consulta e o documento no mesmo espaço vetorial de alta dimensão, e a relevância passa a ser a proximidade geométrica de dois vetores — normalmente a similaridade do cosseno — em vez de uma sobreposição de cadeias. As contagens de ocorrências não desempenham papel algum no cálculo. Não há f na fórmula.
A consequência prática devia reformular a forma como escreve. Uma página sobre descalcificar uma máquina de café pode ser recuperada para uma consulta sobre calcário numa chaleira, ou sobre vinagre branco numa máquina de espresso, sem conter nenhuma dessas palavras, porque os vetores caem perto. Ao invés, uma página que repete uma expressão exata quarenta vezes mas nada mais diz sobre o assunto fica numa região do espaço para a qual nenhuma pergunta genuína aponta. Os sistemas modernos costumam correr as duas famílias e fundir os resultados, pelo que a correspondência lexical não desapareceu — mas a metade lexical é o BM25, que satura, e a metade semântica não conta nada de todo.
Para que serve ainda a densidade: exatamente uma vista de olhos
Eis a defesa honesta da métrica. A densidade é um diagnóstico, não um botão. Passe-a uma vez sobre um rascunho acabado e leia-a como um corretor ortográfico: não para atingir um número, mas para se surpreender. Uma expressão a 5 % de uma página de 800 palavras são quarenta ocorrências, e ninguém escreve quarenta repetições deliberadas seja do que for — portanto é um artefacto de template, um bloco padrão contado no corpo do texto, um nome de produto repetido por um gerador, ou um redator que perdeu o fio. Os quatro são defeitos reais, e a densidade encontra-os numa passagem.
O que ela não vale é como alvo, e é aqui que convém desconfiar de qualquer ferramenta ou consultor que ofereça um. Não existe nenhuma percentagem recomendada publicada, nem da Google nem de quem quer que tenha acesso a uma função de ranking, e a razão é estrutural em vez de secreta: o BM25 satura, logo não há percentagem que o maximize; os embeddings ignoram as contagens por completo, logo não há percentagem a que respondam; e o número ótimo de ocorrências de um termo depende de estatísticas de corpus que não tem. Uma ferramenta que lhe diz para apontar a um intervalo está a reportar uma convenção, não uma descoberta. As políticas antispam da Google abordam o mesmo comportamento pelo outro lado — o enchimento de palavras-chave, definido como encher uma página de palavras repetidas para manipular o posicionamento, é uma infração, e é descrito em termos de experiência de leitura, não de limiar.
Portanto, o substituto de um alvo de densidade não é outro número. É outra pergunta: esta página cobre os subtemas distintos que uma pessoa a fazer esta pergunta precisaria de ver respondidos, numa linguagem que reconheceria? É isso que um modelo com ponderação de termos recompensa sem que ninguém o otimize, porque uma página que cobre mesmo um assunto contém naturalmente o seu vocabulário raro e específico — a descalcificação, o porta-filtros, a finura da moagem — e o vocabulário raro e específico é precisamente o que o idf foi construído para recompensar. Uma contagem de frequência de palavras e uma pontuação de legibilidade são melhores companhias para um rascunho do que uma percentagem de densidade, porque ambas descrevem o texto em vez de fingirem descrever o motor.
| Termo | Ocorrências | Densidade | IDF | TF-IDF (tf bruto) | TF-IDF (tf log) | BM25 |
|---|---|---|---|---|---|---|
| machine | 24 | 3,00 % | 1,6094 | 38,63 | 6,72 | 3,37 |
| espresso | 16 | 2,00 % | 3,9120 | 62,59 | 14,76 | 8,01 |
| descalcificação | 4 | 0,50 % | 5,2983 | 21,19 | 12,64 | 8,97 |
Perguntas frequentes
- Qual é a densidade de palavras-chave ideal?
- Não há, e a ausência é matemática em vez de secreta. O BM25 satura: com k1 = 1,2, uma ocorrência recolhe 45,5 % de tudo o que o termo pode valer e dez recolhem 89,3 %, convergindo para um teto que nada atinge — logo não há contagem que maximize a pontuação. A recuperação por embeddings ignora as contagens por completo. E o número de ocorrências que mais ajudaria depende de estatísticas de corpus que não consegue ver. Qualquer ferramenta que cite um intervalo está a citar uma convenção anterior a todos os modelos de recuperação em uso.
- Se a densidade está morta, porque é que a vossa ferramenta continua a calculá-la?
- Porque um alvo morto pode continuar a ser um diagnóstico vivo. Ninguém devia escrever em direção a um número de densidade, mas lê-lo num rascunho acabado apanha acidentes que nenhuma outra verificação apanha: texto padrão contado no corpo, um nome de produto repetido por um gerador, uma variável de template que se expandiu quarenta vezes. São defeitos reais e a densidade traz-os à superfície numa passagem. Use-a como usa um corretor ortográfico — para que lhe assinalem algo que não pretendia, não para atingir uma pontuação.
- O que são k1 e b no BM25, e preciso de me preocupar?
- k1 controla a rapidez com que a frequência de termo satura e fixa o teto em k1 + 1; b controla a força com que o comprimento do documento é normalizado, de 0 para nenhuma a 1 para total. Os valores por omissão convencionais são 1,2 e 0,75, os que o Lucene e o Elasticsearch trazem. Como redator não os afina e não pode saber quais um dado motor usa. O que deve levar daqui é a forma que produzem, não os valores: a repetição tem rendimentos fortemente decrescentes, e o comprimento é penalizado suavemente e não proporcionalmente.
- Continua a importar usar a minha palavra-chave no título e nos cabeçalhos?
- Sim, mas não pela razão que os defensores da densidade costumam dar. A recuperação ponderada por campo trata de forma diferente uma correspondência num título e uma no corpo, e o BM25F — a extensão por campos do BM25 — formaliza exatamente isso. A razão não é que o termo apareça mais uma vez; é que o sítio onde aparece transporta informação sobre o assunto do documento. A regra prática não muda em relação à boa edição: diga do que trata a página no título, uma vez, com as palavras que um leitor usaria. É também isso que faz um título funcionar como ligação e como fragmento.
- Pode uma página posicionar-se para uma expressão que nunca contém?
- Sim, e é a ilustração mais nítida de porque a densidade não tem alvo. A recuperação por embeddings projeta consulta e documento no mesmo espaço vetorial e compara-os geometricamente, sem exigir qualquer correspondência de cadeia. Uma página sobre remover calcário de uma máquina de espresso pode ser recuperada para uma consulta sobre descalcificar uma cafeteira com vinagre, porque os vetores caem perto. Os sistemas puramente lexicais nunca conseguiam isto, e é por isso que escrever para cobrir um assunto vence agora escrever para colocar ocorrências.
- O enchimento de palavras-chave ainda é penalizado, ou é só inútil?
- Ambos, e a parte inútil vem primeiro. A saturação do BM25 faz com que a quadragésima ocorrência contribua essencialmente nada acima da décima, pelo que a prática não compra pontuação alguma mesmo antes de qualquer política se aplicar. Por cima, as políticas antispam da Google listam o enchimento de palavras-chave — encher uma página de palavras repetidas para manipular o posicionamento — como infração, descrita pelo efeito no leitor e não como limiar numérico. O resumo honesto é que o enchimento é uma forma de piorar uma página para os humanos em troca de um ganho de pontuação que a função de recuperação deixou de pagar há décadas.
Artigos que podem interessar-lhe
Todos os guias →Ferramentas relacionadas
Fontes
- Now Publishers — Foundations and Trends in Information Retrieval — Robertson & Zaragoza, The Probabilistic Relevance Framework: BM25 and Beyond (2009)
- NIST — Robertson et al., Okapi at TREC-3 (Proceedings of the Third Text REtrieval Conference, 1994)
- Cambridge University Press / Stanford NLP — Manning, Raghavan & Schütze, Introduction to Information Retrieval — term weighting and the vector space model
- Journal of Documentation — Spärck Jones, A Statistical Interpretation of Term Specificity and Its Application in Retrieval (1972)
- Google Search Central — Spam policies for Google web search — keyword stuffing
Detetaste um erro neste artigo?