Kelime Sıklığı Sayacı
Coddy'nin Dart Journey'sinin Mantık & Akış bölümünün bir parçası — ders 56 / 65.
Görev
KolayMetin analiz projenize devam ederken, şimdi en karmaşık özelliği uygulayacaksınız: bir kelime frekans sayacı. Bu adım, her bir benzersiz kelimenin metninizde kaç kez göründüğünü takip eden bir harita (map) oluşturacak ve kelime kullanım kalıpları hakkında ayrıntılı bilgiler sunacaktır.
- Önceki kurulumunuzdaki
textToAnalyzedeğişkenini kullanın - Karakter sayma adımınızdaki
totalCharactersdeğişkenini kullanın - Kelime ayırma adımınızdaki
wordListdeğişkenini kullanın - Kelime sayma adımınızdaki
totalWordsdeğişkenini kullanın - Benzersiz kelime sayma adımınızdaki
uniqueWordsSetdeğişkenini kullanın - Benzersiz kelime sayma adımınızdaki
uniqueWordCountdeğişkenini kullanın - Kelime sayılarını saklamak için
wordFrequencyadında boş bir Map oluşturun - Bir for-in döngüsü kullanarak
wordListiçindeki her bir kelimeyi dolaşın - Her kelime için,
containsKey()kullanarak haritada zaten var olup olmadığını kontrol edin - Eğer kelime varsa, sayısını 1 artırın
- Eğer kelime yoksa, 1 sayısıyla haritaya ekleyin
- Kelime frekans analizi sonuçlarını aşağıda gösterilen tam formatta görüntüleyin
- Önceki tüm analiz verilerini ve kelime frekans haritasını uygun biçimlendirmeyle gösterin
Örneğin, metin analizörünüz "hello world hello" ile kurulmuşsa, programınız şu çıktıyı vermelidir:
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.Eğer metin analizörünüz "the cat and the dog and the bird" ile kurulmuşsa, programınız şu çıktıyı vermelidir:
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.Eğer metin analizörünüz "apple banana apple cherry banana apple" ile kurulmuşsa, programınız şu çıktıyı vermelidir:
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ınız kelime listesini dolaşmalı ve her kelimenin haritada zaten var olup olmadığını kontrol ederek bir frekans haritası oluşturmalıdır. Mevcut kelimeleri kontrol etmek için containsKey() kullanın ve ya mevcut sayıyı artırın ya da 1 sayısıyla yeni bir giriş başlatın. Bu frekans analizi, metninizin kelime kullanım kalıpları hakkında en ayrıntılı bilgiyi sağlayacaktır.
Kendin dene
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.');
}Mantık & Akış bölümündeki tüm dersler
1İleri Düzey Liste İşlemleri
Liste Özellikleri: first & lastListe Durumu: isEmpty & isNotEmptyBir Listeyi Tersine ÇevirmeListeye Ekleme: insertListeden Silme: removeWhereListede Bulma: indexOfBir Listeyi SıralamaBir Listeyi KarıştırmaÖzet - Liste Düzenleyici4İleri Seviye Map İşlemleri
Map Üzerinde GezinmeAnahtar ve Değer KontrolüMap Özellikleri: keys & valuesKoşullu Ekleme: putIfAbsentMap'ten Öge Kaldırmaİç İçe Map'lerÖzet - Envanter Güncelleme7İleri Seviye Fonksiyonlar
Anonim FonksiyonlarFonksiyonları Argüman Olarak AktarmaClosure'ları AnlamakÖzyinelemeye GirişÖzyinelemeli Fonksiyon: Geri SayımÖzyinelemeli Fonksiyon: FaktöriyelÖzet - Liste İşleyici10Son Meydan Okumalar
Meydan Okuma: Not SıralayıcıMeydan Okuma: Sesli Harf SayacıMeydan Okuma: FizzBuzz2Fonksiyonel Liste İşlemleri
'map' ile Dönüştürme'where' ile Filtreleme'.toList()' Kullanımı'any' ile Koşul Kontrolü'every' ile Koşullar'firstWhere' ile BulmaÖzet - Veri Filtreleme5Proje: Alışveriş Sepeti Hesaplayıcı
Proje KurulumuSepete Ürün Ekleme8Proje: Basit Metin Analiz Aracı
Projeye Genel Bakış ve KurulumKarakterleri Sayma3Kümeler
Küme Nedir?Küme OluşturmaKümelere Eleman Ekleme ve ÇıkarmaKüme İçinde Eleman KontrolüListeyi Kümeye DönüştürmeKüme BirleşimiKüme KesişimiKüme FarkıÖzet - Benzersiz Davetli Listesi