Menu
Coddy logo textTech

Compteur de fréquence des mots

Fait partie de la section Logique & Flux du Journey Dart de Coddy — leçon 56 sur 65.

challenge icon

Défi

Facile

En poursuivant votre projet d'analyseur de texte, vous allez maintenant implémenter la fonctionnalité la plus complexe : un compteur de fréquence de mots. Cette étape créera une map qui suit le nombre de fois que chaque mot unique apparaît dans votre texte, fournissant des informations détaillées sur les modèles d'utilisation des mots.

  1. Utilisez la variable textToAnalyze de votre configuration précédente
  2. Utilisez la variable totalCharacters de votre étape de comptage de caractères
  3. Utilisez la variable wordList de votre étape de division des mots
  4. Utilisez la variable totalWords de votre étape de comptage de mots
  5. Utilisez la variable uniqueWordsSet de votre étape de comptage de mots uniques
  6. Utilisez la variable uniqueWordCount de votre étape de comptage de mots uniques
  7. Créez une Map vide appelée wordFrequency pour stocker les comptes de mots
  8. Parcourez chaque mot de la wordList à l'aide d'une boucle for-in
  9. Pour chaque mot, vérifiez s'il existe déjà dans la map en utilisant containsKey()
  10. Si le mot existe, incrémentez son compte de 1
  11. Si le mot n'existe pas, ajoutez-le à la map avec un compte de 1
  12. Affichez les résultats de l'analyse de fréquence des mots dans le format exact indiqué ci-dessous
  13. Affichez toutes les données d'analyse précédentes plus la map de fréquence des mots avec un formatage approprié

Par exemple, si votre analyseur de texte a été configuré avec "hello world hello", votre programme devrait afficher :

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 votre analyseur de texte a été configuré avec "the cat and the dog and the bird", votre programme devrait afficher :

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 votre analyseur de texte a été configuré avec "apple banana apple cherry banana apple", votre programme devrait afficher :

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.

Votre programme doit parcourir la liste de mots et construire une map de fréquence en vérifiant si chaque mot existe déjà dans la map. Utilisez containsKey() pour vérifier les mots existants, et soit incrémenter le compte existant, soit initialiser une nouvelle entrée avec un compte de 1. Cette analyse de fréquence fournira l'aperçu le plus détaillé des modèles d'utilisation des mots de votre texte.

Essayez vous-même

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.');
}

Toutes les leçons de Logique & Flux