Re: [Linux-sohbet] metinde hangi kelime kac kere kullanilmis

---------

New Message Reply About this list Date view Thread view Subject view Author view Attachment view

From: Kenan Dogan (kndogan@yahoo.com)
Date: Tue 28 Feb 2006 - 19:00:36 EET


Ali Dereli wrote:

> Merhaba;
>
> elimde uzunca bir metin var. Bu metinde kac farkli kelime kullanilmis bulmak
> istiyorum.
>
> Nasil yapariz??
> vi editorunde bu tarz bi ozellik varmidir?
> yada bu tarz bi program varmidir?
>
> Saygilar.

Merhaba,

Rastlanti bu ya; ben de gece gec saatlerde bununla ugrastim :)

Size karsilasacaginiz sorunlari siralayayim; eger betik (script) yazma
birikiminiz varsa, kendiniz yapabilirsiniz. Yok eger bu durumda degilseniz
veya acil cozum gerekiyorsa, kendi uyguladigim cozumu de gonderebilirim.
Secim sizin.

(Belki daha kolay ve kestirme cozum onerileri de gelebilir, bunu goz ardi
etmemekte de yarar var.)

1. Elinizdeki metini noktalama isaretlerinden arindirmaniz gerekiyor. Yoksa
   sozcuk sayisi oldugundan fazla gorunur. Cunku, sozcuklere bitisik noktalama
   isaretleri, onlarin sanki ayri bir sozcukmus gibi sayilmalarina yol acar.
   Ornek :
   cunku ile cunku, farkli sozcuk gibi algilanir.
   tarih ile tarih: farkli sozcuk gibi algilanir.

2. Buyuk harf / kucuk harf ayrimini ortadan kaldirmaniz gerekiyor. Nedeni yine
   ayni: Bunlarin ayri sozcuklermis gibi algilanmasini onlemek.
   Ornek (sizin iletinizde de var) :
   "Bu" ile "bu" farkli sozcuk gibi algilanir.

3. Bu islemlerden sonra, metinde birden fazla gecen sozcukleri teke indirgemek
   gerekir. Bence bunun en kestirme yolu soyle :
   3.a. Once her sozcuk bir satir haline getirilir, metin bu yeni duzeniyle ayri
        bir dosya olarak kaydedilir.
        (Bu isi kucucuk bir betik kolaylikla yapabiliyor.)
   3.b. Bu yeni metine Linux'un "sort" komutu uygulanir. Yine ayrica
        kaydedilir.
   3.c. Bu son metine de Linux'un "uniq" komutu uygulanir.
        Ayrica kaydedilir.
   Not-1: uniq'in anlamli sonuc verebilmesi icin once sort gerekli.
   Not-2: Aslinda sort ve uniq'i "|" (pipe) kullanarak tek seferde de
           uygulayabilirsiniz.

4. Son olarak Linux'un "wc" (word count) komutunu uygularsaniz, sonuc hazir :)
   Not-3: Aradaki asamalari metin olarak elde tutmak istemezseniz, bu kez;
   sort | uniq | wc gibi, 3 islemi tek komut satirinda da yapabilirsiniz.

Son not ve ozet :

Aciklamanin uzunlugu yaniltmasin; aslinda islem asamalari az sayida ve basit
sayilir:
* Noktalama isaretlerinden arindirmak
* Buyuk / kucuk harf ayrimini ortadan kaldirmak
* Sozcuklerin her birini bir satir haline getirmek
* sort | uniq | wc komutu ile sonucu almak.

Sunu da vurgulamakta yarar var: Koku ayni olan, ama taki almis sozcukleri teke
indirgeme sansiniz bu yontemle soz konusu degil.
Ornek:
gel, gelsin, gelmistim... masa, masayi, masanin... bunlarin hepsi AYRI
sozcukler olarak sayilacaklar. Bunlari teke indirgemek herhalde
"sozluk veritabani" ve baska islem teknikleri de gerektirecektir :)

Kolay gelsin.

                
---------------------------------
Yahoo! Mail
Bring photos to life! New PhotoMail makes sharing a breeze.

_______________________________________________
Linux-sohbet mailing list
Linux-sohbet@liste.linux.org.tr
http://liste.linux.org.tr/mailman/listinfo/linux-sohbet


New Message Reply About this list Date view Thread view Subject view Author view Attachment view

---------

Bu arsiv hypermail 2.1.2 tarafindan uretilmistir.