基本的な単語頻度カウンターを構築しています。コードを以下に示します。
public static List<Frequency> computeWordFrequencies(List<String> words)
{
List<Frequency> list_of_frequency = new ArrayList<Frequency>();
List<String> list_of_words = words;
int j = 0;
for(int i=0; i<list_of_words.size(); i++)
{
String current_word = list_of_words.get(i);
boolean added = false;
if(list_of_frequency.size() == 0)
{
list_of_frequency.add(new Frequency(current_word, 1));
System.out.println("added " + current_word);
}
else
{
System.out.println("Current word: " + current_word);
System.out.println("Current Frequency: " + list_of_frequency.get(j).getText());
if(list_of_frequency.contains(current_word))
{
list_of_frequency.get(j).incrementFrequency();
System.out.println("found... incremented " + list_of_frequency.get(j).getText() + " frequency");
added = true;
}
else
{
list_of_frequency.add(new Frequency(current_word, 1));
System.out.println("added " + current_word);
added = true;
}
}
}
}
そして、私が得ている出力は次のとおりです。
added I
Current word: am
Current Frequency: I
added am
Current word: very
Current Frequency: I
added very
Current word: good
Current Frequency: I
added good
Current word: at
Current Frequency: I
added at
Current word: being
Current Frequency: I
added being
Current word: good
Current Frequency: I
added good
Total item count: 7
Unique item count: 7
I:1
am:1
very:1
good:1
at:1
being:1
good:1
したがって、「list_of_frequency」をループするには for ループが必要ですが、それを行うと、単語を繰り返し追加するなどの他の問題に遭遇します。私の論理はここにありますか?このプロジェクトを進めるためのより良い方法はありますか? 前もって感謝します!