Yandex’in sorgu işleme düzeni

Yandex, kullanıcılardan gelen sorguları nasıl anlar?

Bir sorunun anlamını kavramak için insanın onun üzerinde düşünmesi gerekirken arama motorunun, sorgunun dilbilimsel analizini yapması gerekir. Sorgunun dilbilimsel analizi sonucunda, aramanın yapılacağı sözcük ve sözcük formlarının saptanmasıyla arama işlemi ancak başlayabilir. Örneğin, [ankaradaki eczaneler] sorgusunu yanıtlamak için sadece bu kelime kombinasyonunu içeren belgeleri bulmak yetmez; ayrıca, “Ankara eczanelerinin adresleri”, “Ankara’da eczaneler”, “Ankara’daki eczaneler” vb. gibi kelime kombinasyonlarını içeren belgelerin de ilgili arama sonuçları listesine eklenmesi gerekecektir. Sorgunun yapıldığı dilin tespitinin ardından, sorgunun her kelimesinin morfolojik analizini tek tek yapan sistem, her kelimenin arama için gerekli tüm ekli şekillerini ve eşanlamlı sözcüklerini seçer, gerekli olmayan tüm bilgileri ise devre dışı bırakır.
Sorgu dilinin tespiti ve eşanlamlıların seçimi vb. dahil olmak üzere sözcüksel analizin tamamı normalde çeyrek saniyeden az bir süre içinde tamamlanır.

Sorgu dilinin tespiti

Sistem, gelen sorgunun analizine, sorgu dilinin tespitiyle başlar. Örneğin İtalyanca’dan İngilizce’ye gelen ve İngilizce’de makarnadan yapılan yemeklerin tamamı anlamında olan “pasta” sözcüğünün Türkçe anlamı, pastaneden aldığımız tatlı türleridir. Dolayısıyla metinlerde rastladığımız bir “pasta”nın tam olarak ne anlamına geldiğini anlamamız için metnin hangi dilde yazıldığını anlamamız gerekir. Benzer şekilde, arama motorunun da sorguyu gönderen kullanıcının bilgisayarıyla hangi dilde haberleştiğini tespit etmesi gerekir.
Bu amaçla sistem, sorgunun hangi alfabeyle yazıldığını ve içinde belirli dillere özgü harf kombinasyonları ve/veya anahtar kelimeler olup olmadığı gibi diğer bir çok özelliği inceler. Sonuçta Yandex, [pasta tarifleri] sorgusuna cevaben kullanıcıya çeşitli pasta pişirme tariflerini sunarken, [bolonez pasta] şeklinde yapılan bir sorguyu ise İtalyan mutfağından bu meşhur yemeğin pişirme tarifleriyle yanıtlar.
Türk alfabesinde, standart Latin alfabesinde bulunmayan özel işaretli harfler varken kullanıcılar sorguları çeşitli sebeplerden dolayı zaman zaman Türk harflerini hiç kullanmadan, sadece “standart” Latin harflerini (ç/c, ı/i, ü/u, ğ/g, ö/o, ş/s) kullanarak yazarlar. Böyle durumları göz önünde bulunduran Yandex, bir örnek olarak sorgularda karşılaşabildiğimiz “Istanbul” kelimesinin aslında “İstanbul”la aynı şey olduğunu anlama yetisine sahiptir. Ayrıca “öldü” ve “oldu” sözcüklerinde olduğu gibi harflerin değişmesiyle anlamın da değiştiği durumlar için Yandex her iki seçenek için yanıtlar sunmayı önerecektir.
Dil tespitinde ayrıca kullanıcının coğrafi konumu (yani içinde bulunduğu coğrafi bölge) ve arayüz diline de dikkat edilir. Yani sorguyu gönderen bir kullanıcı Türkiye’de bulunuyor ve kullandığı arayüz Türkçe ise, gönderdiği sorgunun da Türkçe olma ihtimali oldukça yüksektir.

Morfolojik analiz

Dil tespitini tamamlayınca Yandex morfolojik analize başlar. Morfolojik analiz, kelimelerin çeşitli ekleri taşıyan formlarının da aramaya eklenmesine ve böylelikle aynı anlamı taşıyan fakat cümle yapısı açısından birbirinden farklı ifadeler içeren dosyaların arama sonuçlarına dahil edilmesine olanak sağlar. Morfolojik analiz sırasında sorgudaki her sözcüğün tüm ekli şekillerinden oluşan birer listesi hazırlanır. Bu işlemin sonucunda örneğin [mangalda balık pişirme] sorgusunu alan Yandex, arama sonuçları listesine bu kelime kombinasyonunun yanı sıra “mangalda balık nasıl pişirilir” gibi benzer anlamlı diğer kombinasyonları da içeren bütün dosyaları ekler.

Sorgunun genişletilmesi

Arama işlemi sadece sorguda varolan sözcüklerle sınırlı olduğunda, tüm eşanlamlı kelimeler analiz dışında kaldığından, yanıt için uygun olabilecek belgelerin çoğu, arama kapsamının dışında kalır. Olabilecek her türlü seçeneğin analiz kapsamı içine alınması için Yandex, sorgudaki kelimelerin her biri için münkün olduğu kadar bütün eş ve benzer anlamlı kelimeleri içeren birer listesini hazırlar. Benzer şekilde, “III. Mehmet”, “Üçüncü Mehmet”, “3. Mehmet”, “Mehmed-i Sâlis” ve “Mehmedi Salis” örneklerinde olduğu gibi rakamların ve “laboratuar”la “laboratuvar” gibi kelimelerin farklı yazılış biçimleri ve yazım hatalarını da anlayan Yandex, yazım hatalarını düzeltip hepsine eş ve/veya benzer anlamlı karşılıkları tespit ederek analiz işlemine ekler.
Sonucunda, bir örnek olarak “yaşam” sözcüğünü içeren bir sorguya yanıtlar arayan Yandex ilgili analiz işlemine ayrıca “hayat” ve “ömür” sözcüklerini ekler; işlenecek sorguda [TDK] kısaltması bulunuyorsa arama sonuçları listesinde hem “TDK”yı hem de “Türk Dil Kurumu”nu içeren seçenekler yer alır; [kablosuz adaptör] sorgusuna bir yanıt olarak hem “wireless adaptör” hem de İngilizce “wireless adapter”a uygun yanıtlar yer alır. Benzer şekilde [laptop fiyatları ankara] sorgusuna bulunan yanıtlar arasında ayrıca “dizüstü” ve “notebook”lar için de yanıtlar bulunur. Eklenecek sözcüklerin seçimi, belirli sözcüğün web sitelerinde (hem kullanıcıların sorgularında, hem de web sitelerindeki tüm metinlerde) sorgudaki diğer sözcüklerle beraber ne kadar sık rastlandığına göre yapılır. Gereken anlamdaş veya aynı kökü içeren kelimeler, bir kısmı Yandex tarafından özel amaçlar için hazırlanmak üzere, çeşitli sözlük ve veritabanlarından alınır. Örneğin, İslam üzerine özel olarak hazırlanan bir veritabanı sayesinde, kullanıcıdan [Kur’an-ı Kerim, 15. sure] şeklinde bir sorgu geldiğinde sözkonusu surenin Hicr suresi olduğunu hemen tespit eder.

Öğe ve kalıp ifadelerin tespiti

Gelen sorguları analiz eden Yandex, o sorgularda anılan insan veya kuruluşların ya da yerleşim yerlerinin isimleri vb. gibi çeşitli öğeleri tespit etmeye çalışır. Örneğin bir sorguda yer alan “Deniz Demirci” ifadesinin bir insan ismi olduğunu tespit eden sistem, artık “derya”, “okyanus”, denizcilik veya demircilikle alakalı belgeleri ilgili arama sonuçları listesine eklemeyecektir. Benzer şekilde, [optik İstinye park] gibi bir sorgudaki “İstinye park”ın bir yer ismi olduğu tespit edildiğinde Yandex, ilgili arama sonuçları listesini hazırlarken “İstinye” ve “park” veya “parkı” kelimelerinin yanyana bulunduğu belgeleri listenin başına koyar. Bu tür kalıp ifadeler ve nesnelerin tespitini kolaylaştırmak için Yandex, yer veya kuruluş isimleri, ad ve soyadlar gibi çeşitli spesifik konulara adanmış sözlükler ve rehber veritabanlarını hazırlar ve yeni gelen her sorgudaki bütün kelimeleri bunların içeriğiyle karşılaştırır.

Hatalar üzerinde çalışma

Yandex, her gelen sorguda yazım hatası olup olmadığını kontrol eder. Varolan istatistiklere göre kullanıcıların Yandex’e gönderdiği sorguların yaklaşık olarak yüzde 12’si, sıradan klavye yazımı hataları ve bazen yanlış klavye düzenlerinin kullanılmasından kaynaklanan yanlış harflerin kullanımı dahil olmak üzere çeşitli hatalar içermektedir. Sorguların doğru yanıtlanmasını kolaylaştırmak amacıyla Yandex, “ekskavatör” gibi hataların sık yapıldığı (ya da tatmin edici yanıtların bulunamadığı) kelimeleri içeren sorguları, yanlış yazılışlarda otomatik düzeltmeler yaparak ve doğal olarak, düzeltmelerin yapıldığını bildiren bir uyarıyı arama sonuçları listesinin başına ekleyerek yanıtlar.
Sorgunun yazılışında yazım hatası olup olmadığının tespitinin zor olduğu durumlarda (ki ikisi de kullanılmakta olan biri “Baytar” ve diğeri “Beytar” olmak üzere iki soyadı böyle bir durumun bir örneği sayılabilir) Yandex, ya alınan sorguya yanıt sunmasıyla beraber kullanıcıya kendisinin seçtiği yazılışın doğruluğundan tam olarak emin olup olmadığını ve sorgunun düzeltilmiş haline göre yanıtları da görmek isteyip istemediğini sorar ya da sözkonusu yazılışların her ikisiyle de ilgili yanıtları aynı sayfada sunar.
Dil tespiti ve yazım hatalarının düzeltilmesinin ardından morfolojik analizin yapılması, sorgunun genişletilmesi, öğe ve kalıp ifadelerin tespitiyle oluşan sorgunun dilbilimsel analiziyle başlayan ve ilgili yanıtların bulunmasıyla sonuçlanan sorgu işleme süreci, bir saniyeden az bir süre içinde tamamlanır.