0

txt ファイルがあるとします。各行は文字列を表します。トップ10の頻繁な部分文字列を見つける効率的な方法はありますか?

問題は、特定の文字列の部分文字列順列のサイズが大きすぎることです。N文字列の長さが与えられると、全C(N,0)+C(N,1)+..C(N,N)種類の部分文字列があります。

=============================================== [更新]

質問は「[a link] Algorithm to find the most common substrings in a string」と似ていますが、どちらも同じではありません違いは、すべての文字列の中で上位 10 の頻度の高い部分文字列を見つけようとしたことですが、「[a link] Algorithm to find the most common substrings in a string to find the most common substrings in. 1 つの文字列" はローカル最適化のみです。

「[a link]文字列内で最も一般的な部分文字列を検索するアルゴリズム」のメソッドを使用すると、すべての文字列で 1 つの部分文字列はまれですが、最も頻繁になる可能性があります。たとえば、10 個の文字列があり、文字列が最も頻繁に str1 sub_str1 --4 回
str2 sub_str2 -- 4 回 ..
str10 sub_str10

各文字列の最も頻繁な部分文字列は異なり、それぞれが 4 回発生します。存在する sub_minor という名前の別の部分文字列がすべての文字列で発生し、1 回だけ発生する可能性があります。結果として、この sub_minor 文字列は、他のすべての sub_str 文字列を超える 10 で発生するため、最も頻繁に発生します。

すべての sub_str はすべてグローバル最適化ではなくローカル最適化のみであり、私の問題は主にグローバル最適化のためのものであり、「[リンク]文字列で最も一般的な部分文字列を見つけるアルゴリズム」とは異なります

4

0 に答える 0