Contador de Frequência de Palavras
Parte da seção Lógica & Fluxo do Journey de Dart da Coddy — lição 56 de 65.
Desafio
FácilContinuando seu projeto de analisador de texto, agora você implementará o recurso mais complexo: um contador de frequência de palavras. Esta etapa criará um mapa que rastreia quantas vezes cada palavra única aparece em seu texto, fornecendo insights detalhados sobre os padrões de uso das palavras.
- Use a variável
textToAnalyzeda sua configuração anterior - Use a variável
totalCharactersda sua etapa de contagem de caracteres - Use a variável
wordListda sua etapa de divisão de palavras - Use a variável
totalWordsda sua etapa de contagem de palavras - Use a variável
uniqueWordsSetda sua etapa de contagem de palavras únicas - Use a variável
uniqueWordCountda sua etapa de contagem de palavras únicas - Crie um Map vazio chamado
wordFrequencypara armazenar as contagens de palavras - Itere por cada palavra na
wordListusando um loop for-in - Para cada palavra, verifique se ela já existe no mapa usando
containsKey() - Se a palavra existir, incremente sua contagem em 1
- Se a palavra não existir, adicione-a ao mapa com uma contagem de 1
- Exiba os resultados da análise de frequência de palavras no formato exato mostrado abaixo
- Mostre todos os dados de análise anteriores mais o mapa de frequência de palavras com a formatação adequada
Por exemplo, se o seu analisador de texto foi configurado com "hello world hello", seu programa deve exibir:
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.Se o seu analisador de texto foi configurado com "the cat and the dog and the bird", seu programa deve exibir:
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.Se o seu analisador de texto foi configurado com "apple banana apple cherry banana apple", seu programa deve exibir:
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.Seu programa deve iterar pela lista de palavras e construir um mapa de frequência verificando se cada palavra já existe no mapa. Use containsKey() para verificar palavras existentes e incremente a contagem existente ou inicialize uma nova entrada com contagem 1. Esta análise de frequência fornecerá o insight mais detalhado sobre os padrões de uso de palavras do seu texto.
Experimente você mesmo
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 as lições de Lógica & Fluxo
1Manipulação Avançada de Listas
Propriedades de Lista: first & lastEstado da Lista: isEmpty & isNotEmptyInvertendo uma ListaAdicionando a uma Lista: insertRemoção em Listas: removeWhereBuscando em uma Lista: indexOfOrdenando uma ListaEmbaralhando uma ListaRecapitulação - Organizador de Listas4Manipulação Avançada de Mapas
Iterando sobre um MapVerificando Chaves e ValoresPropriedades do Map: keys & valuesAdição Condicional: putIfAbsentRemovendo Entradas de um MapMaps AninhadosRecapitulação - Atualização de Inventário2Operações Funcionais em Listas
Transformando com 'map'Filtrando com 'where'Usando '.toList()'Verificando Condições com 'any'Condições com 'every'Encontrando com 'firstWhere'Recapitulação - Filtragem de Dados5Projeto: Cálculo de Carrinho de Compras
Configuração do ProjetoAdicionando Itens ao Carrinho8Projeto: Analisador de Texto Simples
Visão Geral e Configuração do ProjetoContagem de Caracteres3Conjuntos
O que é um Conjunto?Criando um ConjuntoAdicionando e Removendo de ConjuntosVerificando Elementos em um ConjuntoConvertendo uma Lista para um ConjuntoUnião de ConjuntosInterseção de ConjuntosDiferença de ConjuntosRecapitulação - Lista de Convidados Únicos