Implementación de una aplicación de análisis de texto
Estás desarrollando una aplicación de análisis de texto que necesita contar la frecuencia de las palabras en un documento. Debes implementar una solución con complejidad temporal óptima para las búsquedas de palabras.
Este ejercicio forma parte del curso
Optimizing Code in Java
Instrucciones del ejercicio
- Recupera
currentCountpara la palabra cuando ya esté en el mapa de frecuencias. - Increméntalo y actualiza el mapa de frecuencias con el valor actualizado.
- Si la palabra no estaba en el mapa de frecuencias hasta ahora, añádela.
Ejercicio interactivo práctico
Prueba este ejercicio y completa el código de muestra.
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;
}
}