Arkadaşlar bu konu hakkında yalnızca Türkçe veya bir/birden fazla dili kapsayacak şekilde yapılacak bir çalışma için program mantığını kavrama açısından birkaç örnekleme verebilirim.
Türkçe yapılacak çalışma Türkçenin eklemeli bir yapısı olduğundan farklı bir çalışma metoduyla işlemesi gerekiyor fakat genel manada bir örümcek gerekiyor... Örümceğin olacağı zaten çok bariz fakat ne yapacak bu örümcek?
1- Split ile tüm kelimeleri bölecek. (Yazmaya gerek yoktu sanırım ama yine de yazıyım)
2- Bütün ek kelimeler ve, ya da, gibi, ancak... silecek.
3- Kalan kelimeleri sıralandırarak yazacak.
4- Her kelimenin kendinden önceki ve sonraki yazılanlara göre farklı farklı veri bilgileri olacak ve database buna göre inşa edilecek.
Bu ilk 4 madde sanıyorum semantik için ana unsurlar zaten bundan sonrası semantiği ne kadar kuvvetli yapabileceğimiz ile ilgili. (Bundan sonrasında yapılacakları ben kendi fikrimce belirtiyim isteyen olursa kendi fikriyle farklı bir şekilde uygulayabilir.)
5- Kelimenin crawl edilecek makaledeki öncesinde ve sonrasında geçen 100 kelime işaretlenecek. O kelimenin 1 yakınındaki kelime 100 puan (solundaki ve sağındaki) 2 yakınındaki kelime 99 puan... Bu şekilde devam edecek. (Semantik motorunun düzeneği gereki bu rakamları değiştirebilirsiniz.)
6- Crawl edilecek her makale ile motor sonuçları doğruya daha yakın sonuçları ele alacak.
7- İşin can yakan kısmı ise burası sanırım. Aynı olayı (split ile kelimeleri tek tek kesme olayını) çift çift, 3'lü 3'lü 4'lü 4'lü... yaparak birkaç kelimeli arama sonuçlarını ele alabilecek bir motor elde edebiliriz fakat bu olay database'i birkaç kat fazla dolduracak. Bu arada sadece 2'li 2'li kesmeyi gerçek anlamda bir düşünürseniz kaç kat fazla bir database ele alacağınızı aşağı yukaru hesap edersiniz sanıyorum...