Menu
Coddy logo textTech

Contador de frecuencia de palabras

Parte de la sección Lógica y Flujo del Journey de Dart de Coddy — lección 56 de 65.

challenge icon

Desafío

Fácil

Continuando con tu proyecto de analizador de texto, ahora implementarás la característica más compleja: un contador de frecuencia de palabras. Este paso creará un mapa que rastrea cuántas veces aparece cada palabra única en tu texto, proporcionando información detallada sobre los patrones de uso de las palabras.

  1. Usa la variable textToAnalyze de tu configuración anterior
  2. Usa la variable totalCharacters de tu paso de conteo de caracteres
  3. Usa la variable wordList de tu paso de división de palabras
  4. Usa la variable totalWords de tu paso de conteo de palabras
  5. Usa la variable uniqueWordsSet de tu paso de conteo de palabras únicas
  6. Usa la variable uniqueWordCount de tu paso de conteo de palabras únicas
  7. Crea un Map vacío llamado wordFrequency para almacenar los conteos de palabras
  8. Itera a través de cada palabra en wordList usando un bucle for-in
  9. Para cada palabra, verifica si ya existe en el mapa usando containsKey()
  10. Si la palabra existe, incrementa su conteo en 1
  11. Si la palabra no existe, agrégala al mapa con un conteo de 1
  12. Muestra los resultados del análisis de frecuencia de palabras en el formato exacto que se muestra a continuación
  13. Muestra todos los datos de análisis anteriores más el mapa de frecuencia de palabras con el formato adecuado

Por ejemplo, si tu analizador de texto fue configurado con "hello world hello", tu programa debería mostrar:

Text Analysis Tool - Word Frequency
====================================
Analyzing text: "hello world hello"
Total characters: 17
Words found: [hello, world, hello]
Total words: 3
Unique words: {hello, world}
Unique word count: 2
====================================
Word Frequency Analysis Results:
Word frequencies: {hello: 2, world: 1}
====================================
Word frequency analysis completed successfully.

Si tu analizador de texto fue configurado con "the cat and the dog and the bird", tu programa debería mostrar:

Text Analysis Tool - Word Frequency
====================================
Analyzing text: "the cat and the dog and the bird"
Total characters: 33
Words found: [the, cat, and, the, dog, and, the, bird]
Total words: 8
Unique words: {the, cat, and, dog, bird}
Unique word count: 5
====================================
Word Frequency Analysis Results:
Word frequencies: {the: 3, cat: 1, and: 2, dog: 1, bird: 1}
====================================
Word frequency analysis completed successfully.

Si tu analizador de texto fue configurado con "apple banana apple cherry banana apple", tu programa debería mostrar:

Text Analysis Tool - Word Frequency
====================================
Analyzing text: "apple banana apple cherry banana apple"
Total characters: 38
Words found: [apple, banana, apple, cherry, banana, apple]
Total words: 6
Unique words: {apple, banana, cherry}
Unique word count: 3
====================================
Word Frequency Analysis Results:
Word frequencies: {apple: 3, banana: 2, cherry: 1}
====================================
Word frequency analysis completed successfully.

Tu programa debe iterar a través de la lista de palabras y construir un mapa de frecuencia verificando si cada palabra ya existe en el mapa. Usa containsKey() para verificar las palabras existentes, y aumenta el conteo existente o inicializa una nueva entrada con el conteo 1. Este análisis de frecuencia proporcionará la información más detallada sobre los patrones de uso de palabras de tu texto.

Pruébalo tú mismo

import 'dart:io';

void main() {
  // Text analyzer setup
  String? textToAnalyze = stdin.readLineSync();
  
  // Character counting
  int totalCharacters = textToAnalyze!.length;
  
  // Word splitting and counting
  List<String> wordList = textToAnalyze.split(' ');
  int totalWords = wordList.length;
  
  // Unique word analysis
  Set<String> uniqueWordsSet = Set.from(wordList);
  int uniqueWordCount = uniqueWordsSet.length;
  
  // Display results
  print('Text Analysis Tool - Unique Words');
  print('====================================');
  print('Analyzing text: "$textToAnalyze"');
  print('Total characters: $totalCharacters');
  print('Words found: $wordList');
  print('Total words: $totalWords');
  print('====================================');
  print('Unique Word Analysis Results:');
  print('Unique words: $uniqueWordsSet');
  print('Unique word count: $uniqueWordCount');
  print('====================================');
  print('Unique word analysis completed successfully.');
}

Todas las lecciones de Lógica y Flujo