Licznik częstotliwości słów
Część sekcji Logika i przepływ sterowania ścieżki Dart w Coddy. Lekcja 56 z 65.
Wyzwanie
ŁatwyKontynuując projekt analizatora tekstu, zaimplementujesz teraz najbardziej złożoną funkcję: licznik częstotliwości słów. W tym kroku utworzysz mapę, która śledzi, ile razy każde unikalne słowo pojawia się w tekście, dostarczając szczegółowych informacji o wzorcach użycia słów.
- Użyj zmiennej
textToAnalyzez poprzedniej konfiguracji - Użyj zmiennej
totalCharactersz kroku zliczania znaków - Użyj zmiennej
wordListz kroku dzielenia tekstu na słowa - Użyj zmiennej
totalWordsz kroku zliczania słów - Użyj zmiennej
uniqueWordsSetz kroku zliczania unikalnych słów - Użyj zmiennej
uniqueWordCountz kroku zliczania unikalnych słów - Utwórz pustą mapę o nazwie
wordFrequency, aby przechowywać liczbę wystąpień słów - Iteruj po każdym słowie z
wordList, używając pętli for-in - Dla każdego słowa sprawdź, czy już istnieje w mapie, używając
containsKey() - Jeśli słowo istnieje, zwiększ jego licznik o 1
- Jeśli słowo nie istnieje, dodaj je do mapy z licznikiem równym 1
- Wyświetl wyniki analizy częstotliwości słów dokładnie w formacie pokazanym poniżej
- Wyświetl wszystkie dotychczasowe dane analizy oraz mapę częstotliwości słów z odpowiednim formatowaniem
Na przykład, jeśli analizator tekstu został skonfigurowany z użyciem "hello world hello", program powinien wyświetlić:
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.Jeśli analizator tekstu został skonfigurowany z użyciem "the cat and the dog and the bird", program powinien wyświetlić:
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.Jeśli analizator tekstu został skonfigurowany z użyciem "apple banana apple cherry banana apple", program powinien wyświetlić:
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.Program powinien iterować po liście słów i tworzyć mapę częstotliwości, sprawdzając, czy każde słowo już istnieje w mapie. Użyj containsKey(), aby sprawdzić, czy dane słowo już istnieje, a następnie zwiększ istniejący licznik lub zainicjuj nowy wpis z licznikiem równym 1. Ta analiza częstotliwości dostarczy najbardziej szczegółowych informacji o wzorcach użycia słów w tekście.
Spróbuj swoich sił
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.');
}Wszystkie lekcje w sekcji Logika i przepływ sterowania
1Zaawansowana manipulacja listami
Właściwości listy: first i lastStan listy: isEmpty i isNotEmpOdwracanie listyDodawanie do listy: insertUsuwanie z listy: removeWhereWyszukiwanie na liście: indexOfSortowanie listyMieszanie elementów listyPodsumowanie – Organizator listy4Zaawansowane operacje na mapach
Iterowanie po mapieSprawdzanie kluczy i wartościWłaściwości mapy: klucze i wartościDodawanie warunkowe: putIfAbsentUsuwanie wpisów z mapyZagnieżdżone mapyPodsumowanie – aktualizacja stanu magazynowego2Operacje funkcyjne na listach
Przekształcanie za pomocą 'map'Filtrowanie za pomocą 'where'Używanie '.toList()'Sprawdzanie warunków za pomocą 'any'Warunki z użyciem 'every'Wyszukiwanie za pomocą 'firstWhere'Podsumowanie — filtrowanie danych5Projekt: Kalkulator koszyka zakupowego
Konfiguracja projektuDodawanie produktów do koszyka8Projekt: Prosty analizator tekstu
Omówienie projektu i konfiguracjaLiczenie znaków3Zbiory
Czym jest zbiór?Tworzenie zbioruDodawanie i usuwanie elementów ze zbiorówSprawdzanie, czy element znajduje się w zbiorzeKonwersja listy na zbiórSuma zbiorówCzęść wspólna zbiorówRóżnica zbiorówPodsumowanie — unikalna lista gościPoćwicz samodzielnie: Kompilator Dart online