Подсчет частоты слов
Часть раздела Логика и управление потоком путешествия по Dart на Coddy — урок 56 из 65.
Задание
ЛегкоПродолжая работу над проектом анализатора текста, вы теперь реализуете самую сложную функцию: счетчик частоты слов. На этом этапе будет создана карта (map), которая отслеживает, сколько раз каждое уникальное слово встречается в вашем тексте, предоставляя подробную информацию о закономерностях использования слов.
- Используйте переменную
textToAnalyzeиз вашей предыдущей настройки - Используйте переменную
totalCharactersиз этапа подсчета символов - Используйте переменную
wordListиз этапа разделения слов - Используйте переменную
totalWordsиз этапа подсчета слов - Используйте переменную
uniqueWordsSetиз этапа подсчета уникальных слов - Используйте переменную
uniqueWordCountиз этапа подсчета уникальных слов - Создайте пустую карту (Map) с именем
wordFrequencyдля хранения количества слов - Переберите каждое слово в
wordList, используя цикл for-in - Для каждого слова проверьте, существует ли оно уже в карте, используя
containsKey() - Если слово существует, увеличьте его счетчик на 1
- Если слова не существует, добавьте его в карту со значением 1
- Отобразите результаты анализа частоты слов в точном формате, показанном ниже
- Покажите все предыдущие данные анализа плюс карту частоты слов с правильным форматированием
Например, если ваш анализатор текста был настроен со строкой "hello world hello", ваша программа должна вывести:
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.Если ваш анализатор текста был настроен со строкой "the cat and the dog and the bird", ваша программа должна вывести:
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.Если ваш анализатор текста был настроен со строкой "apple banana apple cherry banana apple", ваша программа должна вывести:
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.Ваша программа должна перебирать список слов и создавать карту частот, проверяя, существует ли уже каждое слово в карте. Используйте containsKey() для проверки существующих слов и либо увеличивайте существующий счетчик, либо инициализируйте новую запись со значением 1. Этот частотный анализ обеспечит наиболее детальное понимание структуры использования слов в вашем тексте.
Попробуйте сами
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.');
}Все уроки раздела Логика и управление потоком
1Продвинутая работа со списками
Свойства списка: first и lastСостояние списка: isEmpty и isNotEmptyРазворот спискаДобавление в список: insertУдаление из списка: removeWhereПоиск в списке: indexOfСортировка спискаПеремешивание спискаИтоги — Органайзер списков4Продвинутая работа с Map
Итерация по MapПроверка ключей и значенийСвойства Map: keys и valuesУсловное добавление: putIfAbsentУдаление записей из MapВложенные MapИтоги — Обновление инвентаря2Функциональные операции со списками
Преобразование с помощью 'map'Фильтрация с помощью 'where'Использование '.toList()'Проверка условий с помощью 'any'Условия с 'every'Поиск с помощью 'firstWhere'Повторение — фильтрация данных5Проект: Калькулятор корзины
Настройка проектаДобавление товаров в корзину8Проект: Простой анализатор текста
Обзор проекта и настройкаПодсчет символов3Множества
Что такое множество?Создание множестваДобавление и удаление элементовПроверка наличия элементов в множествеПреобразование списка в множествоОбъединение множествПересечение множествРазность множествИтоги: уникальный список гостей