La repetición de datos puede disminuir el valor del contenido. Trabajando como escritor, debes seguir el principio SECO (no te repitas). Las estadísticas, como el recuento de palabras o el número de apariciones de cada palabra, pueden permitirle analizar el contenido, pero es difícil hacerlo manualmente para varios documentos. Por lo tanto, este artículo demuestra cómo contar palabras mediante programación y el recuento de ocurrencias de cada palabra en formatos de documentos PDF, Word, Excel, PowerPoint, eBook, Markup y Email usando C#.

.NET API para contar palabras y ocurrencias

GroupDocs.Parser proporciona la solución de análisis de documentos para desarrolladores. Para la extracción de texto de los documentos y el conteo de ocurrencias, usaremos su GroupDocs.Parser for .NET. La API permite además la extracción de imágenes y metadatos de una larga lista de documentos admitidos formatos como documentos de procesamiento de texto, presentaciones, hojas de cálculo, correos electrónicos, bases de datos, libros electrónicos y muchos otros.

Puede descargar las DLL o el instalador MSI desde la sección de descargas o instalar la API agregando su paquete a su aplicación .NET a través de NuGet.

PM> Install-Package GroupDocs.Parser

Contar palabras usando C#

Para el conteo de palabras, lo principal es analizar y extraer todo el contenido del documento. Después de la extracción del texto, podemos dividir su contenido en una colección de oraciones y palabras. El siguiente paso permite contar las palabras dentro del documento usando C#.

  • Cargar el documento usando la clase Parser.
  • Obtener el texto del documento cargado en TextReader.
  • Obtener el texto del documento del TextReader como una cadena.
  • Divide el texto en palabras y guárdalas en una matriz de cadenas.
  • Realizar recuento de palabras.

El siguiente código fuente de C# cuenta la cantidad de palabras en un documento.

// Contar palabras en un documento PDF usando C#
using (Parser parser = new Parser("path/document.pdf"))
{                
	// Extraer un texto en el lector
	using (TextReader reader = parser.GetText())
	{
		string text = reader.ReadToEnd();
		char[] chars = { ' ', '.', ',', ';', ':', '?', '\n', '\r' };
		// dividir palabras
		string[] words = text.Split(chars);
		// imprimir el recuento total de palabras
		Console.WriteLine("Total word count: {0}", stats.Count);
	}
}

Contar la ocurrencia de palabras en C#

Del mismo modo, podemos contar cuántas veces se ha utilizado una palabra o una frase en particular en el documento. Al usar esta función, puede evitar la repetición excesiva de cualquier palabra dentro de un artículo. Los siguientes pasos cuentan la aparición de cada palabra utilizada en un documento.

  • Cargar el documento usando la clase Parser.
  • Recuperar el texto del documento cargado en TextReader.
  • Leer y dividir todo el texto en la colección de palabras.
  • Atraviesa la colección de palabras para contar palabras.

El siguiente fragmento de código de C# cuenta la aparición de cada palabra única dentro del documento.

// Contar palabras únicas y sus ocurrencias en documentos PDF usando C#
using (Parser parser = new Parser("path/document.pdf"))
{                
	// Extraer texto en TextReader
	using (TextReader reader = parser.GetText())
	{
		Dictionary<string, int> stats = new Dictionary<string, int>();
		string text = reader.ReadToEnd();
		char[] chars = { ' ', '.', ',', ';', ':', '?', '\n', '\r' };
		// dividir palabras
		string[] words = text.Split(chars);
		int minWordLength = 2; // Consider a word having more than 2 characters

		// iterar sobre la colección de palabras para contar las ocurrencias
		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 la colección por número de palabras
		var orderedStats = stats.OrderByDescending(x => x.Value);
		
    		// Imprimir resultados de conteo de palabras
		Console.WriteLine("Total word count: {0}", stats.Count);

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

La siguiente es la salida del código anterior:

Recuento de ocurrencia de palabras

Obtenga una licencia de API gratuita

Puede obtener una licencia temporal gratuita para utilizar la API sin las limitaciones de evaluación.

Conclusión

En resumen, aprendiste a contar palabras en un documento usando C#. Además, discutimos cómo podemos obtener el recuento de ocurrencia de palabras para cada palabra en el documento. Intente desarrollar su aplicación .NET de contador de palabras en línea. Para obtener más detalles y aprender sobre la API, visite la documentación. Para consultas, contáctenos a través del foro.

Ver también