Menu
Coddy logo textTech

Contatore della frequenza delle parole

Fa parte della sezione Logica e flusso del percorso Dart di Coddy. Lezione 56 di 65.

challenge icon

Sfida

Facile

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

  1. Usa la variabile textToAnalyze della configurazione precedente
  2. Usa la variabile totalCharacters del passaggio di conteggio dei caratteri
  3. Usa la variabile wordList del passaggio di suddivisione delle parole
  4. Usa la variabile totalWords del passaggio di conteggio delle parole
  5. Usa la variabile uniqueWordsSet del passaggio di conteggio delle parole univoche
  6. Usa la variabile uniqueWordCount del passaggio di conteggio delle parole univoche
  7. Crea una Map vuota chiamata wordFrequency per memorizzare il conteggio delle parole
  8. Itera su ogni parola in wordList usando un ciclo for-in
  9. Per ogni parola, verifica se esiste già nella mappa usando containsKey()
  10. Se la parola esiste, incrementa il suo conteggio di 1
  11. Se la parola non esiste, aggiungila alla mappa con un conteggio pari a 1
  12. Visualizza i risultati dell’analisi della frequenza delle parole nel formato esatto mostrato di seguito
  13. 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

Esercitati da solo: Compilatore Dart online