Extrator de n-gramas

Um n-grama é uma sequência de n palavras consecutivas dentro de um texto. Este extrator passa o seu texto para minúsculas, divide-o em palavras a cada espaço e a cada sinal de pontuação e conta todos os n-gramas do tamanho que você escolher (de 1 a 8). O resultado é uma tabela de frequências em CSV, ordenada do mais frequente para o menos frequente: exatamente a tabela em que se apoiam as verificações de densidade de palavras-chave em SEO, a suavização de modelos de linguagem e a detecção de plágio.

Como extrair n-gramas

  1. 1

    Cole o seu texto

    Coloque um artigo, uma transcrição ou o texto de uma página de produto. Não há limite de tamanho para entradas razoáveis.

  2. 2

    Escolha o n

    Unigramas (1), bigramas (2), trigramas (3) e até 8. Um tamanho por execução.

  3. 3

    Extraia

    O texto é passado para minúsculas e dividido em palavras; a pontuação funciona como separador e é descartada.

  4. 4

    Leia a tabela de frequências

    Cada n-grama aparece com o número de ocorrências, ordenado do mais frequente para o menos frequente.

  5. 5

    Copie o CSV

    A saída é separada por vírgulas (N-gram,Count), pronta para colar numa planilha.

O que cada tamanho de n-grama revela

N Nome Caso de uso
1 Unigrama Densidade de palavras-chave, mapeamento de tópicos
2 Bigrama Expressões (“search intent”, “page speed”), colocações
3 Trigrama Expressões de cauda longa, detecção de características
4+ Tetragrama e acima Detecção de conteúdo duplicado, sinais de plágio

Como a ferramenta divide o seu texto

  • Tudo é passado para minúsculas, de modo que “The” e “the” caem na mesma linha.
  • Uma palavra é qualquer sequência contínua de letras, dígitos ou apóstrofos. Qualquer outro caractere (pontuação, símbolos, quebras de linha) funciona como separador e é descartado.
  • Os limites das frases não são preservados. A última palavra de uma frase e a primeira da seguinte ainda podem formar um n-grama, portanto leia com cautela os pares que atravessam duas frases. Se isso for importante, analise frase a frase ou parágrafo a parágrafo.
  • As stopwords são mantidas. Nada é filtrado por você: se quiser apenas expressões com carga semântica, apague essas linhas do CSV depois.
  • As palavras são identificadas por espaços e pontuação. O português separa as palavras com espaços, então a ferramenta funciona de imediato. Lembre-se apenas de que não há lematização: “página”, “páginas” e “paginar” ocupam linhas diferentes; se precisar das formas canônicas, lematize antes com o spaCy. Já o chinês, o japonês e o tailandês não usam espaços entre palavras: uma frase inteira chega como uma única palavra e precisa ser segmentada antes (jieba, MeCab, um segmentador de tailandês).

Quando remover as stopwords

Stopwords são palavras funcionais de altíssima frequência: em inglês “the”, “a”, “of”, “and”; em português “de”, “que”, “e”, “para”. Mantê-las enche a lista de bigramas de ruído como “of the” e “de que”. Este extrator as conserva, portanto apague essas linhas do arquivo exportado quando quiser expressões com carga semântica, e mantenha-as quando estiver estudando estilo, atribuição de autoria ou modelos de linguagem em que as palavras funcionais é que carregam o sinal.

Caso de uso em SEO

Para um artigo que mira “nginx config generator”, verifique:

  • Se o seu bigrama e o seu trigrama alvo aparecem no top 20. Se “nginx config” está na 40ª posição, provavelmente você está usando pouco o termo.
  • Se você não está fazendo keyword stuffing. Se ele está em primeiro lugar por uma margem enorme, o texto é lido como spam.
  • Se existem vizinhos semânticos. Bigramas relacionados como “server block”, “proxy pass” e “ssl certificate” confirmam aos motores de busca que o tema foi realmente coberto.

Uso em PLN e no meio acadêmico

  • Os modelos de linguagem usam frequências de n-gramas para suavização e backoff (Kneser-Ney, Good-Turing).
  • Os estudos de atribuição de autoria comparam as distribuições de trigramas entre os autores candidatos.
  • A avaliação de tradução automática (BLEU) pontua a sobreposição de n-gramas entre a tradução produzida e a tradução de referência.

Perguntas frequentes

Desde um tweet (em que os n-gramas quase não significam nada) até um capítulo de livro. Para confiabilidade estatística nos bigramas, mais de 1.000 palavras; para os trigramas, mais de 10.000. Abaixo disso, o ranking é puro ruído.

Aqui não. O texto é sempre passado para minúsculas antes da contagem, de modo que “The” e “the” (ou “Apple” e “apple”) compartilham uma única linha em vez de se dividirem em duas. Não existe um modo sensível a maiúsculas: se precisar manter nomes próprios ou código separados, marque-os no texto antes de colar.

Elas funcionam como separadores de palavras e nunca aparecem dentro de um n-grama. Mas não cortam a janela de contagem: a última palavra de uma frase e a primeira da seguinte continuam sendo contadas juntas como um bigrama. Se precisar respeitar os limites das frases, processe frases ou parágrafos separadamente.

Só se você segmentar o texto antes. As palavras são detectadas como sequências de letras e dígitos entre separadores, e esses idiomas são escritos sem espaços entre as palavras, de modo que uma frase inteira chega como uma única palavra. Passe-a primeiro por um segmentador (jieba, MeCab, um segmentador de tailandês) para que as palavras fiquem separadas por espaços e cole o resultado aqui. O português e os demais idiomas com espaços funcionam direto.

A ferramenta não aplica nenhuma, então você filtra depois de exportar. A lista inglesa mais comum é o conjunto de 179 palavras do NLTK, usado pela maioria das ferramentas de SEO. Snowball, SpaCy e scikit-learn trazem listas ligeiramente diferentes. Para o português, use a lista de stopwords em português do NLTK ou do spaCy.

Ferramentas relacionadas

Ferramenta disponível em outros idiomas