Sözlük Yazma..

Başlatan Hittman, 21 Kasım 2016, 01:10:58

Hittman

 Merhabalar,
Sevgili dostlar ben basit bir sözlük yazmayı planlıyorum. Daha sonra üzerinde biraz değişiklik yaparak farklı bir uygulama oluşturacağım. Her neyse şimdi bu konuda benim aklıma takılan bazı sorular oldu bu konuda siz değerli hocalarımın bilgisine ve tecrübelerine başvurmak istedim. Diyelim ki bu sözlüğü bir programlama diliyle yazmaya başladık. Ama kelimeleri nerede tutacağız? İlk aklıma gelen dizi oluşturmak ve onun içerisinde tutmak oldu fakat bu çokta sağlıklı bir çözüm gibi gelmedi bana çünkü bir kelimenin birden fazla anlamı olabilir. İkinci bir sorun ise sözlüğe sonradan yeni bir kelime  eklersek problemler oluşabilir. Benim yapmak istediğimse daha kullanışlı ve kullanıcı istediği zaman kelime ekleyebilecek bir tasarım oluşturmak.
Şimdi bu konuda nasıl bir yol izlemeliyim? Kelimeleri nerede toplayabilirim ve nasıl eşleştirebilirim? Kodları Java ile yazmayı planlıyorum. Fikir verebilirseniz çok sevinirim. Şimdiden teşekkürler...

muhittin_kaplan

#1
Veritabaninda tutacaksin kelimeleri. iliskisel yapilacak. Access, sqlserver,mysql gibi bir veritabani sistemine baglanti kurup ekle cikart duzenle islemleri olacak.
Sorgulama icinde biraz sql dilini bilmek gerekir.

Hittman

Hocam öncelikle cevaplarınız için çok teşekkür ederim. Veritabanı programlama ve kullanma hakkında fazla bilgim yok. Öğrenmek için nereden başlamalıyım? Önerebileceğiniz bir kaynak var mıdır?

muhittin_kaplan

microsoft access le başlayabilirsin.
tablo nedir, sorgu (views) nedir, PrimaryKey nedir, ilişki nedir  birçok şeyi öğrenirsin.
sonrasında bu bilgilerle birçok veritabanında işlem yapabilisin
(server sistemlerde sqlserver ve mysql gibi stored procudure ler felanda var ama şu an konumuz dışında.)

muhittin_kaplan

örnek vereyim, sözlükte olmazsa olmaz
(ilk yıllarımda bir çeşit envanter programı yapmaya çalışmış, dediğiniz gibi bir array da tutmaya sonrasında text dosyada denemiştim. başharfi Z ile başlayanları istediğimde iç içe for larla işi bitirmeye çalışmıştım.klavyeden bir harfe bastığımda yarım saat bekliyordum)

buda sql sorgu cümlesi başharfi m olanları anında getirir.
select * from KelimelerTablosu where Kelime Like 'm*' 

Hittman

#5
Hocam ilginiz için çok teşekkür ederim. Vermiş olduğunuz bilgiler ışığında araştırmalara başladım bile. İnşallah çok zorlanmadan halledebilirim :) Bu arada javada çok basit bir consol uygulaması yazdım sözlük için ilk adım olarak. Onuda paylaşayım belki birilerinin işine yarar ya da en azından fikir verir.






ferdem

#6
Java da bir txt dosyasına bilgi yazıp dosyadan bilgi okuyabilir misiniz? Bunu çalışma amaçlı yapıp daha sonra bir database üzerinde,  Access gibi, veri okuyup veri yazma işlemlerini öğrendiğinizde önemli gelişme kaydetmiş olursunuz.

engerex

Eğer bir dosyada kendinize özel bir formatta tutmak istiyorsanız şöyle yapabikirsiniz:
Her satır bir kelimeyi temsil eder. Özel ayraçlar kullanırsınız.
İlk / karakterine kadar olan türkçe sonrası ise ingilizce karşılığı, anlamı, okunuşu vs.. içerir.
1. 2. mcz. gibi başlayanlar anlamı ifade eder. [pencıl] gibi tırnak arasındaki cümle okunuş.

Örnek bir satır
Kalem/1. pen 2. item 3. pencil [pencıl] mcz. deneme
ilk kelimeleri açılışta bir listede tutarsın. Karşılaştırma yapacağın zaman bu listeden kontrol edersin.
Ekranda görüleceği zaman kelimeden sonraki veriyi düzgün bir formatta görüntülersin.

Optimizasyonlarla hız sağlayacak işlemler yaparsın.

Bu şekilde javalı telefonlar zamanı pascal ile bir kaç bin kelimelik türkçe sözlük yazmıştım. zamanını siyah beyazlı bir telefonunda arama 6 saniye kadar sürüyordu. Şimdiki cihazlarda hız problemi yaşamaman lazım.

Hittman

Cevap verme nezaketinde bulunduğunuz için gerçekten çok teşekkür ederim. Vermiş olduğunuz bilgiler işime yaradı. Bugün mysql ile tanıştım tablo oluşturup veri sorgulama gibi basit şeyleri öğrendim ve vermiş olduğunuz fikirlerle proje kafamda daha iyi şekillendi. Bu sözlük programını özellikle benim gibi yds ye hazırlanan arkadaşlar için oluşturacağım ve bittiğinde Picproje ailesiyle paylaşacağım. Mesela programda rastgele kelime sorma özelliği olacak ve biz onu tahmin etmeye çalışacağız. Bu tarz bir iki fikir daha edindim. Ama öncelik tabi ki normal sözlük programını yazmak olacak. Yine ara ara sizlere danışacağım buradan. Herkese tekrardan teşekkür ederim. Selametle... 

Hittman

Merhabalar değerli hocalarım, birkaç hafta önce yapmayı planladığım sözlüğü biraz ilerlettim. Tabi bu benim için kolay olmadı :) Önce oturup sıfırdan mysql i öğrendim zaten javada da çok yeniyim ama onuda yeni öğrendim diye bilirim ve nihayetinde sözlüğün temelini attım çok şükür. Söz verdiğim gibi sizlerle de paylaşmak istedim. Şimdilik çok az kelime olduğu için programı henüz paylaşamıyorum ama proje bittikten sonra buradan yayınlayacağım sözlüğü. Bu sıralar yoğun olduğum için çok uğraşamıyorum. Fakat en kısa sürede tamamlamaya çalışacağım. Çalışmalarımın resimleri aşağıda.