データを繰り返すと、コンテンツの価値が低下する可能性があります。ライターとして働くには、DRY(繰り返さないでください) の原則に従う必要があります。単語数や各単語の出現回数などの統計により、コンテンツを分析できますが、複数のドキュメントに対して手動で分析することは困難です。したがって、この記事では、C#を使用して、PDF、Word、Excel、PowerPoint、eBook、Markup、およびEメールドキュメント形式でプログラムで単語をカウントする方法と各単語の単語出現回数を示します。

単語と出現回数をカウントする.NETAPI

GroupDocs.Parserは、開発者向けのドキュメント解析ソリューションを提供します。ドキュメントからテキストを抽出し、出現回数をカウントするには、そのGroupDocs.Parser for.NETを使用します。 APIを使用すると、ワードプロセッシングドキュメント、プレゼンテーション、スプレッドシート、電子メール、データベース、電子書籍など、サポートされているドキュメント形式の長いリストから画像やメタデータを抽出できます。

DLLまたはMSIインストーラーはダウンロードセクションからダウンロードするか、NuGetを介してパッケージを.NETアプリケーションに追加してAPIをインストールできます。

PM> Install-Package GroupDocs.Parser

C#を使用して単語をカウントする

単語を数えるための主なことは、ドキュメントのコンテンツ全体を解析して抽出することです。テキストを抽出した後、そのコンテンツを文と単語のコレクションに分割できます。次の手順では、C#を使用してドキュメント内の単語を数えることができます。

  • Parserクラスを使用してドキュメントをロードします。
  • ロードされたドキュメントのテキストをTextReaderにフェッチします。
  • GetTextReaderからのドキュメントのテキストを文字列として。
  • テキストを単語に分割し、文字列配列に保存します。
  • 単語数を実行します。

次の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の詳細と学習については、ドキュメントにアクセスしてください。お問い合わせは、フォーラムまでお問い合わせください。

関連項目