Eyl 05 2007

‘Haber Casusu’ Kişisel Arama Motoru

Yayınlayan: admin Kategori: Yazılım, Bilişim

search engine
Bu yazımda size kendi geliştirdiğim bir yazılımı tanıtmaya çalışacağım: “Haber Casusu Kişisel Arama Motoru”.

Haber Casusu programı, kullanıcının kendi tanımladığı web siteleri üzerinde, yine kendi tanımladığı sözcükler çerçevesinde indeksleme ve arama yapmasını sağlayan bir kişisel arama motoru yazılımıdır. Dilenen web sitesini anında indeksleme özelliğiyle, kullanıcının kritik haber ve gelişmelerden anında haberdar olmasını sağlar.

Program, haber programı hazırlayan gazeteler, haber ajansları ve bunların istihbarat birimleri ile bilimsel veya sosyal bir konu üzerinde araştırma yapan bilim insanları tarafından kullanılmak üzere geliştirilmiştir.

Yazılım iki temel modülden oluşmaktadır. Örümcek isimli birinci modül indeksleme ve kataloglama modülüdür. İkinci modül ise arama işlevini gerçekleştirir.

İndeksleme modülünün çalıştırılmasıyla örümcek programı, listesinde tanımlı web sitelerini sırasıyla dolaşarak indeksler ve kataloglar. Katalogun oluşturulmasının ardından artık arama yapmak mümkündür.

Taranması istenen siteler ve kataloglanması istenen sözcükler kullanıcı tarafından tanımlanabilir. Üstelik bu listeye yabancı dildeki web sitelerini eklense dahi, sözcük kısıtlamasından dolayı, yalnızca ilgi alanına giren web sayfaları kataloglanacak ve gereksiz yer işgali olmayacaktır.

Okumaya Devam Et »

İlk Yorumu Sen Yap

Tem 04 2007

Web Based Recruiting Software, Call Center Software, Medical Billing Software. All Possible Now…

Yayınlayan: admin Kategori: Yazılım

Recruiting Software

In today’s level of programming technology, there are many tools of programming. Although I have experience in most of the programming languages such as Delphi, Java, C, for the last years I have been using Visual Studio .NET environment. The reason I managed using this environment has been mainly web site development issues.

A web-based program or a web site with special database adapters including XML database and services such as Web Services created in .NET environment gives you the ability of dynamically designing the user interface, the HTML tags and VB or C# code. Thus you can easily create many sophisticated web-based software, such as recruiting software, call center software, accounting software, help desk software, or medical billing software.

Okumaya Devam Et »

İlk Yorumu Sen Yap

Nis 24 2007

Bir Çeviri Programı Yazmak

Yayınlayan: admin Kategori: Yazılım

Çeviri ProgramıGünümüzde Türkçe’ den İngilizce ve diğer dillere, yine bu dillerden Türkçe’ ye çeviri yapan gerçek anlamda bir program henüz yok. Gerçi İngilizce’ den Türkçe’ ye nispeten başarılı bir iki program mevcut; özellikle İngilizce’ yi hiç bilmeyen kullanıcılar için bazı alanlarda kullanışlı olabiliyorlar. Ancak gerçek anlamda bir çeviri yapmaktan çok öteler. Hele Türkçe’ den İngilizce’ ye çeviri yapan tek bir program bile mevcut değil - sözcüklerin karşılığını vererek çeviri yaptığını iddia edenleri saymıyorum tabi.

Şahsen çok uzun süredir güzel bir çeviri programı nasıl yapılır, bu konu üzerinde kafa yoruyorum. Öyle bir çeviri programı ki, profesyonel bir çevirmen kadar başarılı ve doyurucu çeviri yapabilsin. Bu yazımda sizinle bugüne kadar edindiğim birikimi paylaşmak istiyorum:

Dilbilim yani linguistik kitaplarını incelerseniz, kullandığımız dilin genel olarak iki ana bölüme ayrıldığını görürsünüz: Sentaks (sözdizim) ve semantics (anlamdizim). Sözdizim, cümle içindeki her bir sözcüğün yeri ve rolünü gramer açıdan ele alan bilimdir. Sentaks ise o sözcüğün anlam açısından niteliğini inceler. Geliştireceğimiz çeviri programı da bu iki aşamayı içinde barındırmalı. Tabi sözdizim bölümü halledilmeden anlamdizim aşamasına geçilemez. Ancak yalnızca sözdizim aşamasında bili oldukça yetenekli bir çeviri programı geliştirmemiz mümkün olacaktır.

Sözdizim aşamasının en temeli ise cümle ayracı yani bir parser programdan geçmektedir. Ayraç modülü, cümleyi özne, nesne, yüklem gibi rollerine ayırırken, her bir rolü de kendi içinde isim tamlaması, sıfat tamlaması, zarf gibi yapılara ayırmayı başarır. Bu özellik bize cümle üzerinde dilediğimiz oranda hakimiyet verir. Örnek olarak:

“The sad man walks slowly on the bridge now” cümlesini ele alalım. Bu cümleyi ayraçladığımızda aşağıdaki yapıyı elde ederiz:

- <English>
English Sentences
- <Sentence>
Main Clause
- <Noun_Phrase Head=”man” Role=”Subject”>
the sad man
<Determiner>the</Determiner>
- <Adjectival_Phrase>
sad man
<Adjective>sad</Adjective>
<Noun>man</Noun>
</Adjectival_Phrase>
</Noun_Phrase>
- <Verb_Phrase Head=”walk” Role=”Action”>
walks slowly
<Verb suffix=”s” tense=”Present Simple”>walk</Verb>
<Adverb>slowly</Adverb>
</Verb_Phrase>
- <Prepositional_Phrase Head=”bridge” Role=”Location”>
on the bridge
<Preposition>on</Preposition>
- <Noun_Phrase>
the bridge
<Determiner>the</Determiner>
<Noun>bridge</Noun>
</Noun_Phrase>
</Prepositional_Phrase>
<Adverb>now</Adverb>
</Sentence>
</English>

Visual Studio .NET C# dilini kullanarak geliştirdiğim bu modülü yazarken gördüğünüz gibi XML tabanlı bir yapı seçtim. XML oldukça esnek bir yapısal bir nitelik taşımakta. Tabi ayraç programımızın temel mantığı geriyeçağrışımlı (recursive) yordamlardan oluşuyor. Dolayısıyla bir cümle ne kadar karışık, içiçe ve uzun olursa olsun, programımız o cümleyi başarılı bir şekilde ayraçlayacaktır. İngilizce Ayraç modülünü büyük oranda bitirmiş durumdayım ancak henüz hala bir prototip aşamasında. Özellikle tüm zaman kiplerinin (tense), bileşik cümlelerin ve kalıpların ele alınması uzun bir süreci kapsamakta.

Tabi bu modülün yanında bir de Türkçe ayraç modülümüz var sırada. Her ne kadar iki dil birbirinden çok farklı yapıda gibi görünse de, XML çanta sistemini kullanarak, aynı mantıkla Türkçe ayraç modülü geliştirmemiz mümkündür (bu aşamaya maalesef henüz ulaşamadım, ama aynı kaynak kodunu bir miktar özelleştirerek sonuca ulaşabileceğimi düşünüyorum).

Aynı mantıkla örülü iki ayraç sistemimiz olduktan sonra, çanta mantığını kullanarak (örneğin sıfat tamlama çantası içinde yer alan bir isim tamlama çantası gibi) iki dil arasında karşılıklı dönüşüm dolayısıyla çeviri yapmamız mümkün olacaktır.

Burada en önemli nokta, çanta mantığının bize bütüncül bir yaklaşım sunması ve bir sözcüğün tamlama, rol veya cümle içindeki konumuna göre anlamının değişebilmesi. Dolayısıyla mecaz dahil istediğimiz sözcük veya kalıbın çevirisini tam olarak elde etmemiz - üstelik sözdizim düzeyinde - mümkün olacaktır. Bu aşamadan sonra gelecek anlamdizim aşaması ise gerçek anlamda Yapay Zeka sistemlerinin geliştirilmesinin önünü açacaktır.

Böylesi bir projeyi doğal olarak tek başıma bitirmem neredeyse imkansız. Yine de geliştirdiğim bu yaklaşımın başarılı olduğuna ve olacağına, sonuçta da çeviri programcılığında - özellikle profesyonel bir çeviri bürosu ile beraberce projelendirildiği takdirde - çığır açacağına inanıyorum.

İlk Yorumu Sen Yap

Nis 16 2007

Yazılım ve Yaşam

Yayınlayan: admin Kategori: Yazılım

assembly.jpg Bir bilgisayar programı yapmak, düşünce dinamiklerini ayrıştırmak, düzenlemek ve yeniden bütünleştirmek demektir. Bir anlamda bu, evrenin işleyiş mekanizmasının soyutluğunu somuta taşımadır. Bir anlamda olmayan bir varlığa yaşam üflemektir. Gerçek Yaratıcının kişioğluna sunduğu en büyük lütuf ve verginin kendini göstermesidir: yaratıcılığın.

Madde ve ruh gibi iki boyutludur bu dünyada; donanım ve yazılım. Zaten küçükte yansıyan büyüktekinin izdüşümünden farklı olamaz ki. Donanım somuttur, beş duyu ile algılanabilir; yazılım ise soyuttur, kavramsaldır. Donanımı eskiyen bir yazılımı başka bir donanıma yüklemek mümkündür, çünkü yazılım zamansızdır ve eskimez. İnsan ruhunun zamansız olması ve asla ölmemesi gibi.

Yazılımın da kendi içinde iki boyutu vardır. Biri algoritma denen saf mantıktır. Bu o yazılımın matematiksel boyutudur. Donanımdan veya herhangi bir programlama dilinden bağımsızdır. Diğeri ise bu yazılımın uygulama boyutudur. Donanıma, işletim sistemine ve platforma bağımlıdır. Kişioğlunun da en öz bir bilinci vardır, somut yaşamdan tamamen bağımsız olan. Bu onun özde barındırdığı zamansız ilahi özün isimleşmesidir. Bir de bu kaynaktan beslenen ama yaşam denen ve beyinle yönetilen uygulama platformuna yönelik olan bir yüzü vardır. Okumaya Devam Et »

İlk Yorumu Sen Yap

eXTReMe Tracker