Contar caracteres e palavras parece trivial, mas o português tem um recurso gramatical próprio — a mesóclise — que consegue esconder um pronome no meio de uma única palavra.
Mesóclise: um pronome dentro da palavra
Em português formal, o pronome pode ser inserido no meio do futuro ou do condicional do verbo: "dar-lhe-ei" significa "eu darei a ele/ela", com o pronome "lhe" encaixado entre o radical "dar" e a terminação "-ei". Um contador de palavras baseado em espaços vê isso como uma única palavra, embora ela corresponda a três unidades gramaticais distintas em outras línguas.
Contrações: "do", "na", "pelo"
Preposição e artigo se fundem constantemente em português: "de" + "o" vira "do", "em" + "a" vira "na", "por" + "o" vira "pelo". Cada uma dessas contrações conta como uma palavra ao ser separada por espaços, mas representa duas palavras gramaticais distintas — o que torna a comparação de "número de palavras" entre um texto em português e sua tradução para outro idioma sem esse tipo de contração pouco confiável.
Acentos e o número de pontos de código
Uma palavra como "café" pode ser codificada com o "é" como um único ponto de código precomposto, ou como "e" mais um acento agudo combinante separado. Visualmente é idêntica, mas o número de pontos de código Unicode varia conforme a origem do texto — colar de certos apps de macOS costuma gerar a forma decomposta —, o que pode alterar sutilmente uma contagem de caracteres "caractere por caractere".
Para que serve
- Verificar um texto contra um limite de caracteres (um tweet, um SMS, um campo de formulário).
- Estimar o tempo de leitura de um artigo pelo número de palavras.
- Entender por que duas frases com o mesmo significado dão contagens de palavras diferentes por causa de contrações e mesóclise.
Contagem de palavras em idiomas sem espaços
Em chinês, japonês ou tailandês, as palavras tradicionalmente não são separadas por espaços — o limite entre palavras é definido pela gramática e pelo contexto, não por um separador. Por isso, "contar palavras" nesses idiomas exige um algoritmo próprio de segmentação de texto, e uma contagem simples baseada em espaços resultaria numa única "palavra" para o texto inteiro, ou perderia o sentido por completo.