La ripetizione dei dati può diminuire il valore del contenuto. Lavorando come scrittore, devi seguire il principio DRY (non ripetere te stesso). Le statistiche come il conteggio delle parole o il numero di occorrenze di ciascuna parola possono consentirti di analizzare il contenuto, ma è difficile farlo manualmente per più documenti. Pertanto, questo articolo mostra come contare le parole a livello di codice e il conteggio delle occorrenze delle parole di ogni parola nei formati di documento PDF, Word, Excel, PowerPoint, eBook, Markup ed e-mail utilizzando C#.

API .NET per contare parole e occorrenze

GroupDocs.Parser fornisce la soluzione di analisi dei documenti per gli sviluppatori. Per l’estrazione di testo dai documenti e il conteggio delle occorrenze, utilizzeremo il suo GroupDocs.Parser for .NET. L’API consente inoltre l’estrazione di immagini e metadati da un lungo elenco di formati documento supportato come documenti di elaborazione testi, presentazioni, fogli di calcolo, e-mail, database, eBook e molti altri.

Puoi scaricare le DLL o il programma di installazione MSI dalla sezione download o installare l’API aggiungendo il suo pacchetto all’applicazione .NET tramite NuGet.

PM> Install-Package GroupDocs.Parser

Conta le parole usando C#

Per il conteggio delle parole, la cosa principale è analizzare ed estrarre l’intero contenuto del documento. Dopo l’estrazione del testo, possiamo suddividere il suo contenuto in una raccolta di frasi e parole. Il passaggio seguente consente di contare le parole all’interno del documento utilizzando C#.

  • Carica il documento usando la classe Parser.
  • Recupera il testo del documento caricato in TextReader.
  • Ottieni il testo del documento da TextReader come stringa.
  • Dividi il testo in parole e salvale in un array di stringhe.
  • Esegui il conteggio delle parole.

Il codice sorgente C# seguente conta il numero di parole in un documento.

// Conta le parole nel documento PDF usando C#
using (Parser parser = new Parser("path/document.pdf"))
{                
	// Estrarre un testo nel lettore
	using (TextReader reader = parser.GetText())
	{
		string text = reader.ReadToEnd();
		char[] chars = { ' ', '.', ',', ';', ':', '?', '\n', '\r' };
		// dividere le parole
		string[] words = text.Split(chars);
		// stampa il conteggio totale delle parole
		Console.WriteLine("Total word count: {0}", stats.Count);
	}
}

Conta le occorrenze delle parole in C#

Allo stesso modo, possiamo contare quante volte una parola o una frase particolare è stata utilizzata nel documento. Utilizzando questa funzione, puoi evitare l’eccessiva ripetizione di qualsiasi parola all’interno di un articolo. I passaggi seguenti contano l’occorrenza di ogni parola utilizzata in un documento.

  • Carica il documento usando la classe Parser.
  • Recupera il testo del documento caricato in TextReader.
  • Leggi e dividi l’intero testo nella raccolta di parole.
  • Attraversa la raccolta di parole per contare le parole.

Il frammento di codice C# seguente conta l’occorrenza di ogni parola univoca all’interno del documento.

// Conta le parole univoche e le loro occorrenze nel documento PDF usando C#
using (Parser parser = new Parser("path/document.pdf"))
{                
	// Estrai il testo in TextReader
	using (TextReader reader = parser.GetText())
	{
		Dictionary<string, int> stats = new Dictionary<string, int>();
		string text = reader.ReadToEnd();
		char[] chars = { ' ', '.', ',', ';', ':', '?', '\n', '\r' };
		// dividere le parole
		string[] words = text.Split(chars);
		int minWordLength = 2; // Consider a word having more than 2 characters

		// scorrere la raccolta di parole per contare le occorrenze
		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
				}
			}
		}
		// ordina la raccolta in base al conteggio delle parole
		var orderedStats = stats.OrderByDescending(x => x.Value);
		
    		// Stampa i risultati del conteggio delle parole
		Console.WriteLine("Total word count: {0}", stats.Count);

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

Quello che segue è l’output del codice precedente:

Conteggio occorrenze delle parole

Ottieni una licenza API gratuita

Puoi ottenere una licenza temporanea gratuita per utilizzare l’API senza i limiti di valutazione.

Conclusione

Per riassumere, hai imparato a contare le parole in un documento usando C#. Inoltre, abbiamo discusso di come ottenere il conteggio delle occorrenze delle parole per ogni parola nel documento. Prova a sviluppare la tua applicazione .NET per il contatore di parole online. Per maggiori dettagli e informazioni sull’API, visita la documentazione. Per domande, contattaci tramite il forum.

Guarda anche