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.
Desafío
FácilContinuando 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.
- Usa la variable
textToAnalyzede tu configuración anterior - Usa la variable
totalCharactersde tu paso de conteo de caracteres - Usa la variable
wordListde tu paso de división de palabras - Usa la variable
totalWordsde tu paso de conteo de palabras - Usa la variable
uniqueWordsSetde tu paso de conteo de palabras únicas - Usa la variable
uniqueWordCountde tu paso de conteo de palabras únicas - Crea un Map vacío llamado
wordFrequencypara almacenar los conteos de palabras - Itera a través de cada palabra en
wordListusando un bucle for-in - Para cada palabra, verifica si ya existe en el mapa usando
containsKey() - Si la palabra existe, incrementa su conteo en 1
- Si la palabra no existe, agrégala al mapa con un conteo de 1
- Muestra los resultados del análisis de frecuencia de palabras en el formato exacto que se muestra a continuación
- 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
1Manipulación avanzada de listas
Propiedades de listas: first y lastEstado de la lista: isEmpty y isNotEmptyInvertir una listaAñadir a una lista: insertEliminación en listas: removeWhereBúsqueda en una lista: indexOfOrdenar una listaMezclar una listaResumen - Organizador de listas4Manipulación avanzada de mapas
Iterar sobre un mapaComprobación de claves y valoresPropiedades del mapa: keys y valuesAdición condicional: putIfAbsentEliminar entradas de un mapaMapas anidadosResumen - Actualización de inventario2Operaciones funcionales con listas
Transformar con 'map'Filtrar con 'where'Uso de '.toList()'Comprobar condiciones con 'any'Condiciones con 'every'Búsqueda con 'firstWhere'Resumen - Filtrado de datos5Proyecto: Calculadora de carrito de compras
Configuración del proyectoAgregar artículos al carrito8Proyecto: Analizador de texto simple
Descripción general y configuración del proyectoContar caracteres3Conjuntos
¿Qué es un Conjunto?Crear un ConjuntoAñadir y eliminar elementos de un ConjuntoComprobar elementos en un ConjuntoConvertir una lista en un ConjuntoUnión de ConjuntosIntersección de ConjuntosDiferencia de ConjuntosResumen - Lista de invitados única