0

辞書を使用して最も頻繁に使用されている単語を特定することで、ファイル内の単語の出現回数を簡単に数えることができますが、テキスト ファイルが与えられた場合、「フレーズ」が 2つ以上の連続した単語のセットである一般的に使用されるフレーズを見つけるにはどうすればよいでしょうか。言葉?

たとえば、次のサンプル テキストがあります。

口頭による遺言を除き、すべての遺言は書面でなければなりませんが、手書きでもタイプでもかまいません。遺言書には、遺言者の署名、または遺言者の意識の面前 で、遺言者の明示的な指示 による他の人物による署名が含まれていなければなりません。遺言は、遺言者が署名するのを見た、または遺言者が遺言者の署名を認めるのを聞いた、2 人以上の有能な証人によって、遺言者の意識のある存在下で証明され、署名されなければならない。

このセクションの目的上、意識的な存在とは、電話、電子、またはその他の遠隔通信によって感知される視覚または音の感覚を除く、遺言者の感覚の範囲内を意味します。

「意識的存在」(3回)と「遺言者の署名」(2回)というフレーズが複数回出現したことをどのように特定できますか(2つまたは3つの単語のすべてのセットを力ずくで検索することは別として)?

私はこれを c# で書くので、c# コードは素晴らしいですが、良いアルゴリズムを特定することさえできないので、これを解決する方法については、任意のコードまたは疑似コードで解決します。

4

3 に答える 3

0

もし私がやっていたら、おそらく力ずくのアプローチから始めるでしょうが、あなたはそれを避けたいようですね。2 段階のアプローチでは、各単語のカウントを行い、上位のいくつかの結果を取得し (最も頻繁に出現する上位のいくつかの単語からのみ開始します)、これらの人気のある単語を含むフレーズのみを検索してカウントします。そうすれば、すべてのフレーズを検索するのに時間を費やす必要はありません。

CS関係者は、これは実際には力ずくで行うよりも時間がかかると言って訂正するだろうと私は感じています. また、一部の言語学者は、フレーズなどを検出するための方法を提案するかもしれません。

幸運を!

于 2013-09-05T17:04:28.983 に答える