Die Wiederholung von Daten kann den Wert des Inhalts mindern. Wenn Sie als Autor arbeiten, müssen Sie dem DRY-Prinzip (don’t repeat yourself) folgen. Anhand von Statistiken wie der Wortanzahl oder der Anzahl der Vorkommen jedes Wortes können Sie den Inhalt analysieren, aber es ist schwierig, dies manuell für mehrere Dokumente zu tun. Daher zeigt dieser Artikel, wie Wörter programmgesteuert gezählt werden und die Anzahl der Wortvorkommen jedes Wortes in PDF-, Word-, Excel-, PowerPoint-, eBook-, Markup- und E-Mail-Dokumentformaten mithilfe von C#.

.NET-API zum Zählen von Wörtern und Vorkommen

GroupDocs.Parser bietet Entwicklern die Lösung zum Analysieren von Dokumenten. Zum Extrahieren von Text aus Dokumenten und zum Zählen von Vorkommen verwenden wir dessen GroupDocs.Parser for .NET. Die API ermöglicht außerdem das Extrahieren von Bildern und Metadaten aus einer langen Liste von unterstützten Dokument-Formaten wie Textverarbeitungsdokumenten, Präsentationen, Tabellenkalkulationen, E-Mails, Datenbanken, eBooks und vielen anderen.

Sie können die DLLs oder das MSI-Installationsprogramm aus dem Downloadbereich herunterladen oder die API installieren, indem Sie ihr Paket über NuGet zu Ihrer .NET-Anwendung hinzufügen.

PM> Install-Package GroupDocs.Parser

Wörter zählen mit C#

Beim Zählen von Wörtern geht es vor allem darum, den gesamten Inhalt des Dokuments zu analysieren und zu extrahieren. Nach der Extraktion des Textes können wir seinen Inhalt in eine Sammlung von Sätzen und Wörtern aufteilen. Der folgende Schritt ermöglicht das Zählen der Wörter innerhalb des Dokuments mit C#.

  • Laden Sie das Dokument mit der Klasse Parser.
  • Holen Sie sich den Text des geladenen Dokuments in TextReader.
  • Get den Text des Dokuments aus dem TextReader als String.
  • Teilen Sie den Text in Wörter auf und speichern Sie sie in einem String-Array.
  • Wortzählung durchführen.

Der folgende C#-Quellcode zählt die Anzahl der Wörter in einem Dokument.

// Zählen Sie Wörter in einem PDF-Dokument mit C#
using (Parser parser = new Parser("path/document.pdf"))
{                
	// Extrahieren Sie einen Text in den Reader
	using (TextReader reader = parser.GetText())
	{
		string text = reader.ReadToEnd();
		char[] chars = { ' ', '.', ',', ';', ':', '?', '\n', '\r' };
		// gespaltene Wörter
		string[] words = text.Split(chars);
		// Gesamtwortzahl drucken
		Console.WriteLine("Total word count: {0}", stats.Count);
	}
}

Zählen Sie das Vorkommen von Wörtern in C#

In ähnlicher Weise können wir zählen, wie oft ein bestimmtes Wort oder eine Phrase im Dokument verwendet wurde. Durch die Verwendung dieser Funktion können Sie die übermäßige Wiederholung von Wörtern innerhalb eines Artikels vermeiden. Die folgenden Schritte zählen das Vorkommen jedes in einem Dokument verwendeten Wortes.

  • Laden Sie das Dokument mit der Klasse Parser.
  • Rufen Sie den Text des geladenen Dokuments in TextReader ab.
  • Lesen Sie den gesamten Text und teilen Sie ihn in die Wortsammlung auf.
  • Durchsuchen Sie die Wortsammlung, um Wörter zu zählen.

Der folgende C#-Codeausschnitt zählt das Vorkommen jedes eindeutigen Wortes im Dokument.

// Zählen Sie eindeutige Wörter und deren Vorkommen im PDF-Dokument mit C#
using (Parser parser = new Parser("path/document.pdf"))
{                
	// Text in TextReader extrahieren
	using (TextReader reader = parser.GetText())
	{
		Dictionary<string, int> stats = new Dictionary<string, int>();
		string text = reader.ReadToEnd();
		char[] chars = { ' ', '.', ',', ';', ':', '?', '\n', '\r' };
		// gespaltene Wörter
		string[] words = text.Split(chars);
		int minWordLength = 2; // Consider a word having more than 2 characters

		// Iterieren Sie über die Wortsammlung, um Vorkommen zu zählen
		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
				}
			}
		}
		// Sortieren Sie die Sammlung nach Wortzahl
		var orderedStats = stats.OrderByDescending(x => x.Value);
		
    		// Ergebnisse der Wortzählung drucken
		Console.WriteLine("Total word count: {0}", stats.Count);

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

Das Folgende ist die Ausgabe des obigen Codes:

Anzahl der Wortvorkommen

Holen Sie sich eine kostenlose API-Lizenz

Sie können eine kostenlose temporäre Lizenz erhalten, um die API ohne die Evaluierungseinschränkungen zu verwenden.

Fazit

Zusammenfassend haben Sie gelernt, wie man Wörter in einem Dokument mit C# zählt. Außerdem haben wir besprochen, wie wir die Anzahl der Wortvorkommen für jedes Wort im Dokument erhalten können. Versuchen Sie, Ihre .NET-Anwendung für den Online-Wortzähler zu entwickeln. Weitere Einzelheiten und Informationen zur API finden Sie in der Dokumentation. Bei Fragen kontaktieren Sie uns über das Forum.

Siehe auch