Wortfrequenz-Zähler
Teil des Abschnitts Logik & Ablauf der Dart-Journey von Coddy — Lektion 56 von 65.
Aufgabe
EinfachIn Fortsetzung Ihres Textanalyse-Projekts werden Sie nun die komplexeste Funktion implementieren: einen Wortfrequenzzähler. Dieser Schritt erstellt eine Map, die verfolgt, wie oft jedes eindeutige Wort in Ihrem Text vorkommt, und bietet so detaillierte Einblicke in die Wortnutzungsmuster.
- Verwenden Sie die Variable
textToAnalyzeaus Ihrem vorherigen Setup - Verwenden Sie die Variable
totalCharactersaus Ihrem Schritt zur Zeichenzählung - Verwenden Sie die Variable
wordListaus Ihrem Schritt zur Worttrennung - Verwenden Sie die Variable
totalWordsaus Ihrem Schritt zur Wortzählung - Verwenden Sie die Variable
uniqueWordsSetaus Ihrem Schritt zur Zählung eindeutiger Wörter - Verwenden Sie die Variable
uniqueWordCountaus Ihrem Schritt zur Zählung eindeutiger Wörter - Erstellen Sie eine leere Map namens
wordFrequency, um die Wortanzahlen zu speichern - Iterieren Sie mit einer for-in-Schleife durch jedes Wort in der
wordList - Prüfen Sie für jedes Wort mit
containsKey(), ob es bereits in der Map existiert - Wenn das Wort existiert, erhöhen Sie dessen Anzahl um 1
- Wenn das Wort nicht existiert, fügen Sie es mit einer Anzahl von 1 zur Map hinzu
- Zeigen Sie die Ergebnisse der Wortfrequenzanalyse im unten gezeigten exakten Format an
- Zeigen Sie alle vorherigen Analysedaten plus die Wortfrequenz-Map mit korrekter Formatierung an
Wenn Ihr Textanalysator beispielsweise mit "hello world hello" eingerichtet wurde, sollte Ihr Programm Folgendes ausgeben:
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.Wenn Ihr Textanalysator mit "the cat and the dog and the bird" eingerichtet wurde, sollte Ihr Programm Folgendes ausgeben:
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.Wenn Ihr Textanalysator mit "apple banana apple cherry banana apple" eingerichtet wurde, sollte Ihr Programm Folgendes ausgeben:
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.Ihr Programm sollte die Wortliste durchlaufen und eine Frequenz-Map erstellen, indem es prüft, ob jedes Wort bereits in der Map vorhanden ist. Verwenden Sie containsKey(), um nach vorhandenen Wörtern zu suchen, und erhöhen Sie entweder den vorhandenen Zähler oder initialisieren Sie einen neuen Eintrag mit dem Wert 1. Diese Frequenzanalyse liefert den detailliertesten Einblick in die Wortnutzungsmuster Ihres Textes.
Probier es selbst
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.');
}Alle Lektionen in Logik & Ablauf
1Fortgeschrittene Listenmanipulation
Listen-Eigenschaften: first & lastListen-Status: isEmpty & isNotEmptyEine Liste umkehrenHinzufügen zu einer Liste: insertElemente aus Liste entfernen: removeWhereSuchen in einer Liste: indexOfEine Liste sortierenEine Liste mischenZusammenfassung – Listen-Organizer4Fortgeschrittene Map-Manipulation
Über eine Map iterierenPrüfen auf Schlüssel und WerteMap-Eigenschaften: keys & valuesBedingtes Hinzufügen: putIfAbsentEinträge aus einer Map entfernenVerschachtelte MapsRückblick – Inventar-Update7Fortgeschrittene Funktionen
Anonyme FunktionenFunktionen als Argumente übergebenClosures verstehenEinführung in die RekursionRekursive Funktion: CountdownRekursive Funktion: FakultätZusammenfassung – List Processor10Abschluss-Herausforderungen
Herausforderung: NotensortiererHerausforderung: VokalzählerHerausforderung: FizzBuzz2Funktionale Listenoperationen
Transformieren mit 'map'Filtern mit 'where''.toList()' verwendenBedingungen prüfen mit 'any'Bedingungen mit 'every'Suchen mit 'firstWhere'Zusammenfassung – Datenfilterung5Projekt: Warenkorb-Rechner
Projekt-SetupArtikel zum Warenkorb hinzufügen8Projekt: Einfacher Text-Analyzer
Projektübersicht und SetupZeichen zählen3Sets
Was ist ein Set?Ein Set erstellenHinzufügen und Entfernen in SetsPrüfen auf Elemente in einem SetEine Liste in ein Set umwandelnSet-VereinigungSet-SchnittmengeSet-DifferenzRückblick – Einzigartige Gästeliste