Contatore della frequenza delle parole
Fa parte della sezione Logica e flusso del percorso Dart di Coddy. Lezione 56 di 65.
Sfida
FacileContinuando il tuo progetto di analisi del testo, ora implementerai la funzionalità più complessa: un contatore della frequenza delle parole. In questo passaggio creerai una mappa che tiene traccia di quante volte compare nel testo ogni parola univoca, fornendo informazioni dettagliate sui modelli d’uso delle parole.
- Usa la variabile
textToAnalyzedella configurazione precedente - Usa la variabile
totalCharactersdel passaggio di conteggio dei caratteri - Usa la variabile
wordListdel passaggio di suddivisione delle parole - Usa la variabile
totalWordsdel passaggio di conteggio delle parole - Usa la variabile
uniqueWordsSetdel passaggio di conteggio delle parole univoche - Usa la variabile
uniqueWordCountdel passaggio di conteggio delle parole univoche - Crea una Map vuota chiamata
wordFrequencyper memorizzare il conteggio delle parole - Itera su ogni parola in
wordListusando un ciclo for-in - Per ogni parola, verifica se esiste già nella mappa usando
containsKey() - Se la parola esiste, incrementa il suo conteggio di 1
- Se la parola non esiste, aggiungila alla mappa con un conteggio pari a 1
- Visualizza i risultati dell’analisi della frequenza delle parole nel formato esatto mostrato di seguito
- Mostra tutti i dati delle analisi precedenti, oltre alla mappa delle frequenze delle parole formattata correttamente
Ad esempio, se il tuo analizzatore di testo è stato configurato con "hello world hello", il programma dovrebbe produrre:
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 il tuo analizzatore di testo è stato configurato con "the cat and the dog and the bird", il programma dovrebbe produrre:
Text Analysis Tool - Word Frequency
====================================
Analyzing text: "the cat and the dog and the bird"
Total characters: 32
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 il tuo analizzatore di testo è stato configurato con "apple banana apple cherry banana apple", il programma dovrebbe produrre:
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.Il programma dovrebbe iterare sull’elenco di parole e creare una mappa delle frequenze verificando se ogni parola esiste già nella mappa. Usa containsKey() per verificare la presenza di parole e incrementa il conteggio esistente oppure inizializza una nuova voce con conteggio pari a 1. Questa analisi delle frequenze fornirà le informazioni più dettagliate sui modelli d’uso delle parole nel testo.
Provalo tu
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.');
}Tutte le lezioni di Logica e flusso
1Manipolazione avanzata delle liste
Proprietà delle liste: primo e ultimoStato della lista: isEmpty e isNotEmpInvertire una listaAggiungere a una lista: insertRimozione dalla lista: removeWhereRicerca in una lista: indexOfOrdinare una listaMescolare una listaRiepilogo - Organizzatore di liste4Manipolazione avanzata delle mappe
Iterare su una mappaVerificare chiavi e valoriProprietà delle mappe: chiavi e valoriAggiunta condizionale: putIfAbsentRimuovere elementi da una mappaMappe annidateRiepilogo - Aggiornamento dell'inventario2Operazioni funzionali sulle liste
Trasformare con 'map'Filtrare con 'where'Usare '.toList()'Verificare condizioni con 'any'Condizioni con 'every'Trovare con 'firstWhere'Riepilogo - Filtraggio dei dati5Progetto: Calcolo del carrello
Configurazione del progettoAggiungere articoli al carrello8Progetto: semplice analizzatore di testo
Panoramica del progetto e configurazioneConteggio dei caratteri3Insiemi
Che cos'è un insieme?Creare un insiemeAggiungere e rimuovere elementi dagli insiemiVerificare la presenza di elementi in un insiemeConvertire una lista in un insiemeUnione di insiemiIntersezione di insiemiDifferenza tra insiemiRiepilogo - Lista degli ospiti uniciEsercitati da solo: Compilatore Dart online