25.07.2013 Views

Ödev 3 - Karakter Sıklıklarının Bulunması

Ödev 3 - Karakter Sıklıklarının Bulunması

Ödev 3 - Karakter Sıklıklarının Bulunması

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Bil413 - Kriptografi ve Güvenlik Dersi, 3. <strong>Ödev</strong><br />

Türkçe <strong>Karakter</strong>lerin Karşılaşılma <strong>Sıklıklarının</strong> (Frekans) <strong>Bulunması</strong><br />

Burak USGURLU<br />

20394676<br />

burak@gencnet.com<br />

29 Mart 2007, Perşembe<br />

Türkçe alfabede bulunan karakterlerin ne kadar sıklıkla kullanıldığını incelemek için C# dili<br />

kullanılarak bir Windows masaüstü programı yazıldı. Bu program basit olarak girdi ekranına girilen<br />

metni Türkçe karakter özelliklerine sahip çıkarak (I – ı, İ – i dönüşümü gibi), küçük karakterlere<br />

çevirip bunların metinde kaç kez geçtiğini çıktı kısmında yazdırmaktır.<br />

Program işlevini sadece Türkçe metinler değil, İngilizce metinlerde de yerine getirebilmektedir.<br />

Bunu sağlamak amacıyla programda bir seçim kutusu oluşturuldu ve buradan metnin dilinin<br />

seçilebilmesine izin verildi. Programa küçük değişiklikler yapılarak yeni diller eklenebilir.<br />

Ekran Görüntüsü:<br />

Programın İşlevsel Kaynak Kodu:<br />

(Grafik Kullanıcı Arabirimi koduna yer verilmemiştir.)<br />

private void button1_Click(object sender, EventArgs e)<br />

{<br />

Hashtable charFreq = new Hashtable();<br />

//change case to lower<br />

//acording to language<br />

if (this.comboBoxLang.SelectedItem.ToString().Equals("Turkish"))<br />

{<br />

this.textBoxInput.Text = this.textBoxInput.Text.ToLower(new CultureInfo("tr-TR",<br />

false));<br />

}<br />

else<br />

{<br />

this.textBoxInput.Text = this.textBoxInput.Text.ToLower(new CultureInfo("en-US",<br />

false));<br />

1


}<br />

//for each char<br />

for (int i = 0; i < this.textBoxInput.TextLength; i++)<br />

{<br />

//add a count<br />

if (charFreq[this.textBoxInput.Text[i]] != null)<br />

{<br />

charFreq[this.textBoxInput.Text[i]]= (int)charFreq[this.textBoxInput.Text[i]]+1;<br />

}<br />

else<br />

{<br />

charFreq[this.textBoxInput.Text[i]] = 1;<br />

}<br />

}<br />

int totalChar = 0;<br />

//list the results<br />

foreach(Char item in charFreq.Keys)<br />

{<br />

if (Char.IsLetter(item))<br />

{<br />

textBoxResult.Text += item.ToString() + " > " + charFreq[item] + "\r\n";<br />

totalChar+=(int)charFreq[item];<br />

}<br />

}<br />

textBoxResult.Text += "Total > " + totalChar + "\r\n";<br />

}<br />

private void button1_Click_1(object sender, EventArgs e)<br />

{<br />

textBoxResult.Clear();<br />

textBoxInput.Clear();<br />

}<br />

}<br />

Elde Edilen Sonuçlar:<br />

Türkçe karakter kullanım sıklıklarının araştırılması için Türk Dil Kurumunda bulunan “Atatürk ve<br />

TDK” 1 konulu yazı kullanılmıştır. 25195 karakteri incelenen metinde aşağıdaki sonuçlar elde<br />

edilmiştir.<br />

Harf Adet Yüzde Harf Adet Yüzde<br />

Total 25195 100,00 ş 466 1,85<br />

a 2896 11,49 z 395 1,57<br />

e 2376 9,43 g 360 1,43<br />

i 1932 7,67 h 353 1,40<br />

r 1793 7,12 c 286 1,14<br />

l 1763 7,00 v 250 0,99<br />

n 1763 7,00 p 237 0,94<br />

t 1292 5,13 f 222 0,88<br />

k 1079 4,28 ç 204 0,81<br />

ı 1058 4,20 ğ 194 0,77<br />

d 1055 4,19 ö 192 0,76<br />

u 953 3,78 â 80 0,32<br />

m 922 3,66 î 31 0,12<br />

y 773 3,07 û 13 0,05<br />

s 658 2,61 j 5 0,02<br />

ü 577 2,29 w 3 0,01<br />

b 532 2,11 x 1 0,00<br />

o 481 1,91<br />

1 http://www.tdk.gov.tr/TR/BelgeGoster.aspx?F6E10F8892433CFFAAF6AA849816B2EFB856E08843ECBADB<br />

2


İngilizce karakter kullanımı sıklıklarının incelenmesi için Wikipedia’nın “English Language” 2<br />

başlıklı girdisi incelendi. 16498 karakteri incelenen metinde aşağıdaki sonuçlar elde edilmiştir.<br />

2 http://en.wikipedia.org/wiki/English_language<br />

Harf Adet Yüzde Harf Adet Yüzde<br />

Total 16498 100,00 f 348 2,11<br />

e 1937 11,74 m 340 2,06<br />

a 1536 9,31 p 276 1,67<br />

n 1466 8,89 b 234 1,42<br />

i 1378 8,35 w 195 1,18<br />

t 1275 7,73 y 188 1,14<br />

s 1224 7,42 v 153 0,93<br />

o 1124 6,81 k 104 0,63<br />

r 947 5,74 x 28 0,17<br />

l 853 5,17 q 16 0,10<br />

h 715 4,33 j 14 0,08<br />

g 582 3,53 z 12 0,07<br />

d 549 3,33 é 4 0,02<br />

c 539 3,27 ç 1 0,01<br />

u 460 2,79<br />

3

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!