辞書を使用して最も頻繁に使用されている単語を特定することで、ファイル内の単語の出現回数を簡単に数えることができますが、テキスト ファイルが与えられた場合、「フレーズ」が 2つ以上の連続した単語のセットである一般的に使用されるフレーズを見つけるにはどうすればよいでしょうか。言葉?
たとえば、次のサンプル テキストがあります。
口頭による遺言を除き、すべての遺言は書面でなければなりませんが、手書きでもタイプでもかまいません。遺言書には、遺言者の署名、または遺言者の意識の面前 で、遺言者の明示的な指示 による他の人物による署名が含まれていなければなりません。遺言は、遺言者が署名するのを見た、または遺言者が遺言者の署名を認めるのを聞いた、2 人以上の有能な証人によって、遺言者の意識のある存在下で証明され、署名されなければならない。
このセクションの目的上、意識的な存在とは、電話、電子、またはその他の遠隔通信によって感知される視覚または音の感覚を除く、遺言者の感覚の範囲内を意味します。
「意識的存在」(3回)と「遺言者の署名」(2回)というフレーズが複数回出現したことをどのように特定できますか(2つまたは3つの単語のすべてのセットを力ずくで検索することは別として)?
私はこれを c# で書くので、c# コードは素晴らしいですが、良いアルゴリズムを特定することさえできないので、これを解決する方法については、任意のコードまたは疑似コードで解決します。