Java ile Metinde En Çok Geçen Kelimeyi Bulma (Adım Adım Rehber)

Java ile Metinde En Çok Geçen Kelimeyi Bulma – Bir metin içerisinde en çok tekrar eden kelimeyi bulmak, yazılım geliştiricilerin sık karşılaştığı problemlerdendir. Özellikle metin analizi, log analizi, doğal dil işleme ve veri işleme uygulamalarında bu tür algoritmalar oldukça kullanılır.

Bu yazıda Java programlama dili kullanarak bir metinde en çok geçen kelimeyi nasıl bulabileceğinizi adım adım anlatacağız. Ayrıca örnek bir Java kodu paylaşarak algoritmanın nasıl çalıştığını açıklayacağız.


Metinde En Çok Geçen Kelime Neden Önemlidir?

Java ile Metinde En Çok Geçen Kelimeyi Bulma

Bir metindeki en sık kullanılan kelimeyi bulmak birçok farklı alanda kullanılabilir.

Örnek kullanım alanları:

  • Metin analizi
  • Spam filtreleri
  • Arama motoru algoritmaları
  • Sosyal medya analizleri
  • Log dosyası inceleme
  • Veri madenciliği

Örneğin bir haber sitesinde kullanıcı yorumlarını analiz ederken en çok kullanılan kelimeleri belirlemek, içerik hakkında fikir verebilir.


Problemin Mantığı

Java ile Metinde En Çok Geçen Kelimeyi Bulma

Bir metindeki en çok tekrar eden kelimeyi bulmak için şu adımlar izlenir:

  1. Metni kelimelere ayırmak
  2. Her kelimenin kaç kez geçtiğini saymak
  3. En yüksek tekrar sayısına sahip kelimeyi bulmak

Bu işlemi gerçekleştirmek için Java’da en uygun veri yapılarından biri HashMap’tir.

HashMap kullanarak:

  • kelime → tekrar sayısı

şeklinde bir yapı oluşturabiliriz.

Örneğin şu metni düşünelim:

java kod yazmak cok eglenceli java ogrenmek cok faydali

Bu metindeki kelimelerin sayısı şöyle olur:

KelimeTekrar
java2
cok2
yazmak1
eglenceli1
ogrenmek1
faydali1

Buradan en sık geçen kelimeyi kolayca bulabiliriz.


Mantığını Anlayalım: Adım Adım Ne Yapacağız?

Kodu yazmaya başlamadan önce, günlük hayattan bir örnekle işin mantığını kavrayalım. Diyelim ki önünüzde içi meyve dolu kocaman bir sepet var ve en çok hangi meyveden olduğunu bulmak istiyorsunuz. Ne yaparsınız?

  1. Sepetteki meyveleri tek tek elinize alırsınız.
  2. Boş bir kağıda meyvenin adını yazıp yanına bir çizik atarsınız (Elma: I, Armut: I).
  3. Aynı meyveden bir tane daha gelirse, yanına bir çizik daha atarsınız (Elma: II).
  4. Sepet bittiğinde kağıda bakar ve en çok çiziği olan meyveyi şampiyon ilan edersiniz.

İşte Java’da yazacağımız program tam olarak bu mantıkla çalışacak! Şimdi bu adımları programlama diline nasıl çevireceğimize bakalım.

1. Adım: Metni Temizlemek ve Hazırlamak

Bilgisayarlar bizim gibi okuma yapmazlar. Bizim için “Merhaba,” kelimesindeki virgül önemsizdir ama bilgisayar için “Merhaba” ve “Merhaba,” iki tamamen farklı kelimedir. Ayrıca büyük-küçük harf farkı da vardır (“Java” ve “java” farklı sayılır). Bu yüzden önce bütün harfleri küçültecek ve noktalama işaretlerini silip atacağız.

2. Adım: Cümleyi Kelimelere Parçalamak

Elimizde dümdüz, temizlenmiş uzun bir yazı var. Şimdi bu yazıyı boşluklardan keserek kelimeleri birbirinden ayırmamız gerekiyor. Böylece elimizde sadece kelimelerden oluşan bir liste olacak.

3. Adım: Kelimeleri Saymak ve Depolamak

İşte meyve sepeti örneğindeki “kağıda çizik atma” kısmı burası. Java’da bu iş için HashMap adını verdiğimiz harika bir yapı kullanıyoruz. HashMap, verileri “Anahtar ve Değer” (Key-Value) şeklinde tutar. Bizim anahtarımız kelimenin kendisi, değerimiz ise o kelimenin kaç kere geçtiği olacak.

4. Adım: Şampiyonu Belirlemek

Son adımda, tuttuğumuz bu çetele listesine (HashMap’e) bakacağız. Sayıları baştan aşağı kontrol edip, en yüksek sayıya sahip olan kelimeyi ekrana yazdıracağız.

En Anlaşılır Haliyle Java Kodumuz

Aşağıdaki kod, yukarıda anlattığımız 4 adımı birebir uygulayan en sade ve net Java kodudur. Kodun içinde kafa karıştırıcı gereksiz hiçbir detay veya karmaşık yapı bulunmamaktadır.

Şimdi bu işlemi yapan bir Java programı yazalım.

Java Kod Örneği

import java.util.HashMap;
import java.util.Map;public class EnCokGecenKelime { public static void main(String[] args) { String metin = "java kod yazmak cok eglenceli java ogrenmek cok faydali"; String[] kelimeler = metin.split(" "); HashMap<String, Integer> kelimeSayisi = new HashMap<>(); for (String kelime : kelimeler) {
kelime = kelime.toLowerCase(); if (kelimeSayisi.containsKey(kelime)) {
kelimeSayisi.put(kelime, kelimeSayisi.get(kelime) + 1);
} else {
kelimeSayisi.put(kelime, 1);
}
} String enCokKelime = "";
int max = 0; for (Map.Entry<String, Integer> entry : kelimeSayisi.entrySet()) { if (entry.getValue() > max) {
max = entry.getValue();
enCokKelime = entry.getKey();
} } System.out.println("En cok gecen kelime: " + enCokKelime);
System.out.println("Tekrar sayisi: " + max);
}
}

Kodun Açıklaması

Şimdi yazdığımız Java kodunun nasıl çalıştığını inceleyelim.

1. Metni Tanımlama

String metin = "java kod yazmak cok eglenceli java ogrenmek cok faydali";

Bu satırda analiz edeceğimiz metni tanımlıyoruz.


2. Metni Kelimelere Ayırma

String[] kelimeler = metin.split(" ");

split() metodu metni boşluklara göre ayırarak kelimeleri bir diziye yerleştirir.


3. HashMap Oluşturma

HashMap<String, Integer> kelimeSayisi = new HashMap<>();

Burada:

  • anahtar (key) → kelime
  • değer (value) → tekrar sayısı

olarak kullanılacaktır.

Java HashMap hakkında daha fazla bilgi için resmi dokümantasyonu inceleyebilirsiniz:
Java SE Documentation


4. Kelimeleri Sayma

for (String kelime : kelimeler)

Bu döngü ile her kelimeyi kontrol ediyoruz.

Eğer kelime daha önce eklenmişse sayısını artırıyoruz.

kelimeSayisi.put(kelime, kelimeSayisi.get(kelime) + 1);

5. En Büyük Değeri Bulma

Java ile Metinde En Çok Geçen Kelimeyi Bulma

Son aşamada HashMap içindeki en büyük değeri buluyoruz.

if (entry.getValue() > max)

Bu sayede en sık kullanılan kelimeyi tespit edebiliriz.


Algoritmanın Zaman Karmaşıklığı

Bu algoritmanın zaman karmaşıklığı:

O(n)

Çünkü:

  • metindeki her kelime sadece bir kez işlenir.

Bu nedenle büyük metinlerde bile oldukça hızlı çalışır.


Geliştirilebilecek Özellikler

Bu program daha da geliştirilebilir.

Örneğin:

1️⃣ Noktalama İşaretlerini Temizleme

Metindeki:

  • nokta
  • virgül
  • ünlem

gibi karakterleri temizlemek gerekebilir.


2️⃣ Büyük Küçük Harf Duyarlılığı

“Java” ve “java” kelimelerini aynı saymak için:

kelime = kelime.toLowerCase();

kullanıyoruz.


3️⃣ Stop Words Filtreleme

Bazı kelimeler analizde anlamlı değildir.

Örneğin:

  • ve
  • ile
  • için
  • ama

Bu kelimeleri filtreleyebilirsiniz.


Gerçek Hayatta Kullanım Örnekleri

Bu algoritma birçok uygulamada kullanılabilir.

Log Analizi

Sunucu loglarında en çok geçen hatayı bulmak için.

Sosyal Medya Analizi

Bir gönderide en çok kullanılan kelimeyi tespit etmek için.

Arama Motorları

Anahtar kelime yoğunluğu analizinde.

Bu nedenle bu algoritma veri analizi ve doğal dil işleme alanlarında temel bir yöntemdir.


Alternatif Yöntem: Stream API

Java 8 ve sonrası için Stream API kullanarak da benzer bir çözüm yazılabilir. Ancak HashMap yöntemi genellikle daha anlaşılırdır.


Sonuç Olarak

Bu yazıda Java ile bir metinde en çok geçen kelimeyi bulma algoritmasını detaylı şekilde sizler için ele aldık.

Özetlersek:

  • metni kelimelere ayırdık
  • HashMap ile tekrar sayılarını tuttuk
  • en yüksek değeri bulduk

Bu yöntem sayesinde büyük metinlerde bile çok hızlı analiz yapabilirsiniz.

Java öğrenen öğrenciler için bu tür algoritmalar hem veri yapıları mantığını anlamak hem de problem çözme becerilerini geliştirmek açısından oldukça faydalıdır. Daha fazla Java dokümantasyonu ve sınıf bilgisi için Oracle resmi Java referansını da inceleyebilirsiniz.


Sık Sorulan Sorular

Java’da kelime sayma işlemi nasıl yapılır?

Metin split() metodu ile kelimelere ayrılır ve HashMap kullanılarak her kelimenin tekrar sayısı tutulur.


Bu algoritma büyük metinlerde çalışır mı?

Evet. Zaman karmaşıklığı O(n) olduğu için oldukça verimlidir.


Bu yöntem Python veya C++’ta uygulanabilir mi?

Evet. Benzer mantıkla Python’da dictionary, C++’ta ise map veri yapısı kullanılarak uygulanabilir.

Java ile Dizilerde (Array) Eleman Frekansı Bulma: Algoritma ve Çözümü için tıklayın !

Daha fazla bilgi için sitemizi ziyaret etmeyi unutmayın !


Yorum bırakın

Scroll to Top