數據的重複會降低內容的價值。作為一名作家,你必須遵循 DRY(不要重複自己)原則。字數統計或每個字的出現次數等統計數據可以讓您分析內容,但很難對多個文檔手動進行分析。因此,本文演示瞭如何使用 C# 以編程方式計算 PDF、Word、Excel、PowerPoint, 電子書、標記和電子郵件文檔格式中每個單詞的單詞出現次數。

.NET API 來計算單詞和出現次數

GroupDocs.Parser 為開發者提供文檔解析解決方案。為了從文檔中提取文本併計算出現次數,我們將使用它的 GroupDocs.Parser for .NET。該 API 還允許從一長串 支持的文檔 格式(如文字處理文檔、演示文稿、電子表格、電子郵件、數據庫、電子書等)中提取圖像和元數據。

您可以從 下載部分 下載 DLL 或 MSI 安裝程序,或者通過 NuGet 將其包添加到您的 .NET 應用程序來安裝 API。

PM> Install-Package GroupDocs.Parser

使用 C# 計算單詞

對於單詞的統計,主要是解析和提取文檔的全部內容。提取文本後,我們可以將其內容拆分為句子和單詞的集合。以下步驟允許使用 C# 計算文檔中的單詞數。

  • 使用 Parser 類加載文檔。
  • 將加載文檔的文本獲取到 TextReader
  • 得到 the text of the document from the TextReader as a string.
  • 將文本拆分為單詞並將它們保存到字符串數組中。
  • 進行字數統計。

以下 C# 源代碼計算文檔中的單詞數。

// 使用 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# 代碼片段計算文檔中每個唯一單詞的出現次數。

// 使用 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 的更多詳細信息和學習,請訪問 文檔。如有疑問,請通過論壇 聯繫我們。

也可以看看