Menu
Coddy logo textTech

Contador de Frequência de Palavras

Parte da seção Lógica & Fluxo do Journey de Dart da Coddy — lição 56 de 65.

challenge icon

Desafio

Fácil

Continuando 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.

  1. Use a variável textToAnalyze da sua configuração anterior
  2. Use a variável totalCharacters da sua etapa de contagem de caracteres
  3. Use a variável wordList da sua etapa de divisão de palavras
  4. Use a variável totalWords da sua etapa de contagem de palavras
  5. Use a variável uniqueWordsSet da sua etapa de contagem de palavras únicas
  6. Use a variável uniqueWordCount da sua etapa de contagem de palavras únicas
  7. Crie um Map vazio chamado wordFrequency para armazenar as contagens de palavras
  8. Itere por cada palavra na wordList usando um loop for-in
  9. Para cada palavra, verifique se ela já existe no mapa usando containsKey()
  10. Se a palavra existir, incremente sua contagem em 1
  11. Se a palavra não existir, adicione-a ao mapa com uma contagem de 1
  12. Exiba os resultados da análise de frequência de palavras no formato exato mostrado abaixo
  13. 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