Een tekstanalyse-applicatie implementeren
Je ontwikkelt een tekstanalyse-applicatie die de frequentie van woorden in een document moet tellen. Je moet een oplossing implementeren met optimale tijdscomplexiteit voor woordopvragingen.
Deze oefening maakt deel uit van de cursus
Code optimaliseren in Java
Oefeninstructies
- Haal de
currentCountop voor het woord wanneer het al in de frequentiemap staat. - Verhoog deze en werk de frequentiemap bij met de bijgewerkte waarde.
- Als het woord nog niet in de frequentiemap stond, voeg het dan toe.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
public class Main {
public static void main(String[] args) {
TextAnalyzer analyzer = new TextAnalyzer();
List words = Arrays.asList(
"Java", "is", "a", "programming", "language",
"Java", "is", "widely", "used", "for", "building", "applications",
"Many", "programmers", "use", "Java", "for", "web", "development", "and", "Android", "apps"
);
Map wordFrequency = analyzer.buildWordFrequencyMap(words);
System.out.println("Word frequency analysis:");
for (Map.Entry entry : wordFrequency.entrySet()) {
System.out.println(entry.getKey() + ": " + entry.getValue() + " occurrences");
}
}
}
class TextAnalyzer {
public Map buildWordFrequencyMap(List words) {
Map frequencyMap = new HashMap();
for (String word : words) {
if (word.isEmpty()) {
continue;
}
word = word.toLowerCase();
if (frequencyMap.containsKey(word)) {
// Retrieve the frequency of the word
int currentCount = ____.get(____);
// Increment the frequency of the word
frequencyMap.put(____, currentCount + 1);
} else {
// If the frequency map does not have the word, add it.
____.____(word, 1);
}
}
return frequencyMap;
}
}