Compteur de fréquence des mots
Fait partie de la section Logique & Flux du Journey Dart de Coddy — leçon 56 sur 65.
Défi
FacileEn 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.
- Utilisez la variable
textToAnalyzede votre configuration précédente - Utilisez la variable
totalCharactersde votre étape de comptage de caractères - Utilisez la variable
wordListde votre étape de division des mots - Utilisez la variable
totalWordsde votre étape de comptage de mots - Utilisez la variable
uniqueWordsSetde votre étape de comptage de mots uniques - Utilisez la variable
uniqueWordCountde votre étape de comptage de mots uniques - Créez une Map vide appelée
wordFrequencypour stocker les comptes de mots - Parcourez chaque mot de la
wordListà l'aide d'une boucle for-in - Pour chaque mot, vérifiez s'il existe déjà dans la map en utilisant
containsKey() - Si le mot existe, incrémentez son compte de 1
- Si le mot n'existe pas, ajoutez-le à la map avec un compte de 1
- Affichez les résultats de l'analyse de fréquence des mots dans le format exact indiqué ci-dessous
- 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
1Manipulation avancée des listes
Propriétés de liste : first & lastÉtat de la liste : isEmpty & isNotEmptyInverser une listeAjouter à une liste : insertSuppression dans une liste : removeWhereRechercher dans une liste : indexOfTrier une listeMélanger une listeRécapitulatif - Organisateur de liste4Manipulation avancée des Maps
Itérer sur une MapVérifier les clés et les valeursPropriétés de Map : keys & valuesAjout conditionnel : putIfAbsentSupprimer des entrées d'une MapMaps imbriquéesRécapitulatif - Mise à jour de l'inventaire2Opérations fonctionnelles sur les listes
Transformer avec 'map'Filtrer avec 'where'Utiliser '.toList()'Vérifier des conditions avec 'any'Conditions avec 'every'Trouver avec 'firstWhere'Récapitulatif - Filtrage de données5Projet : Calcul du panier
Configuration du projetAjout d'articles au panier8Projet : Analyseur de texte simple
Présentation et configuration du projetComptage des caractères3Les Ensembles
Qu'est-ce qu'un ensemble ?Créer un ensembleAjouter et supprimer des éléments d'un ensembleVérifier la présence d'éléments dans un ensembleConvertir une liste en ensembleUnion d'ensemblesIntersection d'ensemblesDifférence d'ensemblesRécapitulatif - Liste d'invités uniques