Повторение данных может снизить ценность контента. Работая писателем, вы должны следовать принципу DRY (не повторяйтесь). Статистика, такая как количество слов или количество вхождений каждого слова, может позволить вам проанализировать содержимое, но это сложно сделать вручную для нескольких документов. Итак, в этой статье показано, как программно подсчитывать слова и количество вхождений каждого слова в форматах документов PDF, Word, Excel, PowerPoint, eBook, Markup и электронной почты с использованием C#.

.NET API для подсчета слов и вхождений

GroupDocs.Parser предоставляет решение для анализа документов для разработчиков. Для извлечения текста из документов и подсчета вхождений мы будем использовать его GroupDocs.Parser for .NET. Кроме того, API позволяет извлекать изображения и метаданные из длинного списка форматов поддерживаемых документов, таких как текстовые документы, презентации, электронные таблицы, электронные письма, базы данных, электронные книги и многие другие.

Вы можете загрузить библиотеки DLL или установщик MSI из раздела загрузок или установить API, добавив его пакет в свое приложение .NET через NuGet.

PM> Install-Package GroupDocs.Parser

Подсчет слов с помощью C#

Для подсчета слов главное разобрать и извлечь все содержимое документа. После извлечения текста мы можем разделить его содержимое на набор предложений и слов. Следующий шаг позволяет подсчитывать слова в документе с помощью C#.

  • Загрузите документ с помощью класса Parser.
  • Получить текст загруженного документа в TextReader.
  • Получить текст документа из TextReader в виде строки.
  • Разделите текст на слова и сохраните их в массив строк.
  • Выполните подсчет слов.

Следующий исходный код C# подсчитывает количество слов в документе.

// Подсчет слов в документе PDF с использованием С#
using (Parser parser = new Parser("path/document.pdf"))
{                
	// Извлечь текст в ридер
	using (TextReader reader = parser.GetText())
	{
		string text = reader.ReadToEnd();
		char[] chars = { ' ', '.', ',', ';', ':', '?', '\n', '\r' };
		// разделить слова
		string[] words = text.Split(chars);
		// вывести общее количество слов
		Console.WriteLine("Total word count: {0}", stats.Count);
	}
}

Подсчет количества слов в C#

Точно так же мы можем подсчитать, сколько раз конкретное слово или фраза использовалось в документе. Используя эту функцию, вы можете избежать чрезмерного повторения любого слова в статье. Следующие шаги подсчитывают появление каждого слова, используемого в документе.

  • Загрузите документ с помощью класса Parser.
  • Получить текст загруженного документа в TextReader.
  • Прочитайте и разделите весь текст на набор слов.
  • Пройдите по коллекции слов, чтобы подсчитать слова.

Следующий фрагмент кода C# подсчитывает появление каждого уникального слова в документе.

// Подсчет уникальных слов и их вхождений в PDF-документ с использованием С#
using (Parser parser = new Parser("path/document.pdf"))
{                
	// Извлечь текст в TextReader
	using (TextReader reader = parser.GetText())
	{
		Dictionary<string, int> stats = new Dictionary<string, int>();
		string text = reader.ReadToEnd();
		char[] chars = { ' ', '.', ',', ';', ':', '?', '\n', '\r' };
		// разделить слова
		string[] words = text.Split(chars);
		int minWordLength = 2; // Consider a word having more than 2 characters

		// перебирать коллекцию слов для подсчета вхождений
		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
				}
			}
		}
		// упорядочить сборник по количеству слов
		var orderedStats = stats.OrderByDescending(x => x.Value);
		
    		// Печать результатов подсчета слов
		Console.WriteLine("Total word count: {0}", stats.Count);

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

Ниже приведен вывод приведенного выше кода:

Число вхождений слова

Получите бесплатную лицензию API

Вы можете получить бесплатную временную лицензию, чтобы использовать API без ограничений пробной версии.

Вывод

Подводя итог, вы научились считать слова в документе с помощью C#. Кроме того, мы обсудили, как получить количество вхождений каждого слова в документе. Попробуйте разработать .NET-приложение для онлайн-счетчика слов. Для получения более подробной информации и изучения API посетите документацию. По вопросам обращайтесь к нам через форум.

Смотрите также