Herhaling van gegevens kan de waarde van de inhoud verminderen. Als schrijver moet je het DRY-principe (herhaal jezelf niet) volgen. Met statistieken zoals het aantal woorden of het aantal keren dat elk woord voorkomt, kunt u de inhoud analyseren, maar het is moeilijk om dit handmatig te doen voor meerdere documenten. Dit artikel laat dus zien hoe u programmatisch woorden kunt tellen en het aantal keren dat elk woord voorkomt in PDF-, Word-, Excel-, PowerPoint-, eBook-, Markup- en e-maildocumentindelingen met behulp van C#.

.NET API om woorden en voorvallen te tellen

GroupDocs.Parser biedt de oplossing voor het parseren van documenten voor ontwikkelaars. Voor het extraheren van tekst uit documenten en het tellen van exemplaren gebruiken we de GroupDocs.Parser for .NET. De API maakt het verder mogelijk om afbeeldingen en metadata te extraheren uit een lange lijst van ondersteunde documenten formaten zoals tekstverwerkingsdocumenten, presentaties, spreadsheets, e-mails, databases, eBooks en vele andere.

U kunt de DLL’s of het MSI-installatieprogramma downloaden van de downloadsectie of de API installeren door het bijbehorende pakket toe te voegen aan uw .NET-toepassing via NuGet.

PM> Install-Package GroupDocs.Parser

Tel woorden met behulp van C#

Voor het tellen van woorden is het belangrijkste om de volledige inhoud van het document te ontleden en te extraheren. Na de extractie van de tekst kunnen we de inhoud opsplitsen in een verzameling zinnen en woorden. Met de volgende stap kunnen de woorden in het document worden geteld met behulp van C#.

  • Laad het document met behulp van de klasse Parser.
  • Haal de tekst van het geladen document op in TextReader.
  • Krijgen the text of the document from the TextReader as a string.
  • Splits de tekst op in woorden en sla ze op in een stringarray.
  • Voer woordentelling uit.

De volgende C#-broncode telt het aantal woorden in een document.

// Tel woorden in PDF-document met C#
using (Parser parser = new Parser("path/document.pdf"))
{                
	// Extraheer een tekst in de reader
	using (TextReader reader = parser.GetText())
	{
		string text = reader.ReadToEnd();
		char[] chars = { ' ', '.', ',', ';', ':', '?', '\n', '\r' };
		// woorden splitsen
		string[] words = text.Split(chars);
		// afdrukken totaal aantal woorden
		Console.WriteLine("Total word count: {0}", stats.Count);
	}
}

Tel het voorkomen van woorden in C#

Op dezelfde manier kunnen we tellen hoe vaak een bepaald woord of een bepaalde woordgroep in het document is gebruikt. Door deze functie te gebruiken, kunt u de overmatige herhaling van elk woord in een artikel voorkomen. De volgende stappen tellen het voorkomen van elk woord dat in een document wordt gebruikt.

  • Laad het document met behulp van de klasse Parser.
  • Haal de tekst van het geladen document op in TextReader.
  • Lees en splits de hele tekst op in de woordverzameling.
  • Doorkruis de woordenverzameling om woorden te tellen.

Het volgende C#-codefragment telt het voorkomen van elk uniek woord in het document.

// Tel unieke woorden en hun voorkomen in een PDF-document met behulp van C#
using (Parser parser = new Parser("path/document.pdf"))
{                
	// Extraheer tekst in TextReader
	using (TextReader reader = parser.GetText())
	{
		Dictionary<string, int> stats = new Dictionary<string, int>();
		string text = reader.ReadToEnd();
		char[] chars = { ' ', '.', ',', ';', ':', '?', '\n', '\r' };
		// woorden splitsen
		string[] words = text.Split(chars);
		int minWordLength = 2; // Consider a word having more than 2 characters

		// herhaal de woordenverzameling om voorvallen te tellen
		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
				}
			}
		}
		// bestel de collectie op aantal woorden
		var orderedStats = stats.OrderByDescending(x => x.Value);
		
    		// Resultaten woordentelling afdrukken
		Console.WriteLine("Total word count: {0}", stats.Count);

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

Het volgende is de uitvoer van de bovenstaande code:

Aantal woorden dat voorkomt

Ontvang een gratis API-licentie

U kunt een gratis tijdelijke licentie krijgen om de API te gebruiken zonder de evaluatiebeperkingen.

Conclusie

Kortom, u hebt geleerd hoe u woorden in een document kunt tellen met behulp van C#. Daarnaast hebben we besproken hoe we het aantal woorden voor elk woord in het document kunnen achterhalen. Probeer uw online woordenteller .NET-toepassing te ontwikkelen. Ga voor meer informatie en meer informatie over de API naar de documentatie. Neem voor vragen contact met ons op via het forum.

Zie ook