Menu
Coddy logo textTech

Подсчет частоты слов

Часть раздела Логика и управление потоком путешествия по Dart на Coddy — урок 56 из 65.

challenge icon

Задание

Легко

Продолжая работу над проектом анализатора текста, вы теперь реализуете самую сложную функцию: счетчик частоты слов. На этом этапе будет создана карта (map), которая отслеживает, сколько раз каждое уникальное слово встречается в вашем тексте, предоставляя подробную информацию о закономерностях использования слов.

  1. Используйте переменную textToAnalyze из вашей предыдущей настройки
  2. Используйте переменную totalCharacters из этапа подсчета символов
  3. Используйте переменную wordList из этапа разделения слов
  4. Используйте переменную totalWords из этапа подсчета слов
  5. Используйте переменную uniqueWordsSet из этапа подсчета уникальных слов
  6. Используйте переменную uniqueWordCount из этапа подсчета уникальных слов
  7. Создайте пустую карту (Map) с именем wordFrequency для хранения количества слов
  8. Переберите каждое слово в wordList, используя цикл for-in
  9. Для каждого слова проверьте, существует ли оно уже в карте, используя containsKey()
  10. Если слово существует, увеличьте его счетчик на 1
  11. Если слова не существует, добавьте его в карту со значением 1
  12. Отобразите результаты анализа частоты слов в точном формате, показанном ниже
  13. Покажите все предыдущие данные анализа плюс карту частоты слов с правильным форматированием

Например, если ваш анализатор текста был настроен со строкой "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.');
}

Все уроки раздела Логика и управление потоком