私は非常に大きな配列(32kワード程度)を持っており、配列全体の類似性を効率的にチェックしたいと思っていました。私はそれがパーセントで返されたかった。私はまた、どのくらい多くのスポットが配列に正確にあるのかわかりません。私はこれを行う最も効率的な方法が何であるか分かりません。私の現在の考え方は、配列内の2つの単語の間の類似性をチェックし、その類似性を平均化することです。私はもっと効率的な解決策を探していた。 これは私がこれまで試したものです:大規模な配列全体の類似性
import java.util.*;
import org.apache.commons.lang3.StringUtils;
public class Trial2 {
public static void main(String[] args) {
ArrayList<Double> averageValues = new ArrayList<>();
ArrayList<String> temp = new ArrayList<>(); //holds all the words in the list
for(int i = 0; i < temp.size() - 1; i++) {
double k = StringUtils.getLevenshteinDistance(temp.get(i), temp.get(i + 1));
averageValues.add(k/(double)temp.get(i).length())
}
double average;
for(int i = 0; i < averageValues.size(); i++) {
average += averageValues.get(i);
}
average = average/averageValues.size();
}
}
は私の一時リストがすでに満杯であると仮定。このコードの問題は、すでに2つのforloopsに埋め込まれていて、n^3にヒットしたくないということです。この問題を解決する他の方法はありますか?
助けてください。
これまでに何を試しましたか?あなたはどこにいるのですか?今、「このコードは私のために書く」と読みます。これはStackOverflowのトピックではありません。また、これはビッグデータの問題ではありません(私はそのタグを編集しました)。終了する前に、より詳細な質問を編集してください。 –
私はそれをそのように見せました。私は誰かが私のためにコードを書くのではなく、書き込みの方向を指さしたいと思っていました。 –