A repetição de dados pode diminuir o valor do conteúdo. Trabalhando como escritor, você deve seguir o princípio DRY (não se repita). As estatísticas, como a contagem de palavras ou o número de ocorrências de cada palavra, podem permitir que você analise o conteúdo, mas é difícil fazer isso manualmente para vários documentos. Portanto, este artigo demonstra como contar palavras programaticamente e a contagem de ocorrências de cada palavra nos formatos de documento PDF, Word, Excel, PowerPoint, eBook, Markup e Email usando C#.

API .NET para contar palavras e ocorrências

GroupDocs.Parser fornece a solução de análise de documentos para desenvolvedores. Para a extração de texto de documentos, e contagem de ocorrências, usaremos seu GroupDocs.Parser for .NET. A API permite ainda a extração de imagens e metadados de uma longa lista de documentos suportados formatos como documentos de processamento de texto, apresentações, planilhas, e-mails, bancos de dados, eBooks e muitos outros.

Você pode baixar as DLLs ou o instalador MSI da seção de downloads ou instalar a API adicionando seu pacote ao seu aplicativo .NET via NuGet.

PM> Install-Package GroupDocs.Parser

Contar palavras usando C#

Para a contagem de palavras, o principal é analisar e extrair todo o conteúdo do documento. Após a extração do texto, podemos dividir seu conteúdo em uma coleção de frases e palavras. A etapa a seguir permite contar as palavras dentro do documento usando C#.

  • Carregue o documento usando a classe Parser.
  • Buscar o texto do documento carregado em TextReader.
  • Obter o texto do documento do TextReader como uma string.
  • Divida o texto em palavras e salve-as em uma matriz de strings.
  • Executar contagem de palavras.

O código-fonte C# a seguir conta o número de palavras em um documento.

// Contar palavras em documento PDF usando C #
using (Parser parser = new Parser("path/document.pdf"))
{                
	// Extraia um texto para o leitor
	using (TextReader reader = parser.GetText())
	{
		string text = reader.ReadToEnd();
		char[] chars = { ' ', '.', ',', ';', ':', '?', '\n', '\r' };
		// palavras divididas
		string[] words = text.Split(chars);
		// imprimir contagem total de palavras
		Console.WriteLine("Total word count: {0}", stats.Count);
	}
}

Contar a ocorrência de palavras em C#

Da mesma forma, podemos contar quantas vezes uma determinada palavra ou frase foi usada no documento. Ao usar esse recurso, você pode evitar a repetição excessiva de qualquer palavra dentro de um artigo. As etapas a seguir contam a ocorrência de cada palavra usada em um documento.

  • Carregue o documento usando a classe Parser.
  • Recupere o texto do documento carregado em TextReader.
  • Leia e divida todo o texto na coleção de palavras.
  • Atravesse a coleção de palavras para contar palavras.

O trecho de código C# a seguir conta a ocorrência de cada palavra exclusiva no documento.

// Contar palavras únicas e suas ocorrências em documento PDF usando C#
using (Parser parser = new Parser("path/document.pdf"))
{                
	// Extrair texto no TextReader
	using (TextReader reader = parser.GetText())
	{
		Dictionary<string, int> stats = new Dictionary<string, int>();
		string text = reader.ReadToEnd();
		char[] chars = { ' ', '.', ',', ';', ':', '?', '\n', '\r' };
		// palavras divididas
		string[] words = text.Split(chars);
		int minWordLength = 2; // Consider a word having more than 2 characters

		// iterar sobre a coleção de palavras para contar ocorrências
		foreach (string word in words)
		{
			string w = word.Trim().ToLower();
			if (w.Length > minWordLength)
			{
				if (!stats.ContainsKey(w))
				{
					stats.Add(w, 1); // add new word to collection
				}
				else
				{
					stats[w] += 1; // update word occurrence count
				}
			}
		}
		// ordenar a coleção por contagem de palavras
		var orderedStats = stats.OrderByDescending(x => x.Value);
		
    		// Imprimir resultados da contagem de palavras
		Console.WriteLine("Total word count: {0}", stats.Count);

    		foreach (var pair in orderedStats)
		{
			Console.WriteLine("Total occurrences of {0}: {1}", pair.Key, pair.Value);
		}
	}
}

Segue a saída do código acima:

Contagem de ocorrências de palavras

Obtenha uma licença de API gratuita

Você pode obter uma licença temporária gratuita para usar a API sem as limitações de avaliação.

Conclusão

Para resumir, você aprendeu a contar palavras em um documento usando C#. Além disso, discutimos como podemos obter a contagem de ocorrências de palavras para cada palavra no documento. Tente desenvolver seu aplicativo .NET de contador de palavras online. Para obter mais detalhes e aprender sobre a API, visite a documentação. Para dúvidas, entre em contato conosco através do fórum.

Veja também