Aqui no Clube do Português a gente fala sobre “n” assuntos interessantes, não é? Já pensou nessa expressão que acabei de usar: ‘“n” assuntos’? Se você entende do que estou falando, vai ficar fácil compreender o que são n-gramas.  Eles são uma subsequência de n itens de uma dada sequência. Essa sequência contígua de itens pertence a uma determinada amostra de texto ou fala, ou seja, a um corpus.

O termo “n-grama”, ou “n-gram”, em inglês, é usado por linguistas computacionais e engenheiros para se referir a combinações de palavras que ocorrem juntas (que descrevem um padrão de discurso), normalmente com uma certa frequência.

No fundo, é um jogo probabilístico que mede a chance de ocorrer uma dada letra na sequência de um determinado número de itens. Em um modelo de linguagem simples de n-grama, é a probabilidade de ocorrer uma palavra, condicionada a algum número de palavras anteriores.

Mas note que os n-gramas não são apenas palavras. Podem ser também itens como fonemas, sílabas, letras, ou pares de bases coletados dentro de um corpus de texto ou fala – sim, além de pertinentes ao campo das probabilidades, os n-gramas também estão ligados à linguística computacional.

Onde e como o n-grama se aplica?

Como já dito, o n-grama é um tipo de modelo de linguagem probabilístico para prever o próximo item em tal sequência. Para tal, usa o modelo de Markov, que simplifica e escalabiliza a análise de um corpus, principalmente de linguagens naturais.

Este modelo supõe uma aproximação da verdadeira linguagem subjacente, algo importante, porque simplifica enormemente a tarefa de estimar o modelo de linguagem a partir dos dados.

Isso é de muita serventia no reconhecimento de fala humana pelos computadores, por exemplo. Para análise, as palavras são modeladas de forma que cada n-grama seja composto por n palavras. Isso amplifica a capacidade de compreensão de uma fala humana, porque traz uma gama (n possibilidades) de detecção de intencionalidades no discurso.

Para isso, faz-se a identificação de sequências de caracteres/grafemas a partir de diferentes idiomas. Com base na expressão “bom dia”, por exemplo, podem ser geradas sequências de caracteres (chamadas neste caso de trigramas) como “bom”, “om ”, “m d”, “ di” e “dia”. Tudo isso vai ser “lido” pela linguagem computacional como se fosse “bom dia”. Perceba que o espaço conta como um caractere válido.

Em termos linguísticos, os n-gramas são considerados modelos bem limitados. Mesmo assim, também são usados para sequências de palavras ou quase qualquer tipo de dados, inclusive em tradução automática, para extrair recursos para agrupar grandes conjuntos de imagens terrestres de satélite ou para determinar de que parte da Terra veio uma imagem específica.

Palavras fora do dicionário ou raras

Outra fragilidade do modelo de linguagem n-grama são palavras fora do vocabulário. Essas expressões acabam sendo ignoradas, a não ser que haja a introdução de um símbolo especial.

Existem ainda problemas de equilíbrio de peso, como os que ocorrem entre gramas pouco frequentes (por exemplo, um nome próprio inserido no texto) e gramas frequentes. Na prática, é necessário suavizar as distribuições de probabilidade atribuindo também probabilidades diferentes de zero a palavras (ou n-gramas) não vistas.

*

Gostou do texto? Então vale a pena conferir todos os artigos da série Língua e Tecnologia.