30 Mayıs 2017 Salı

Designing an Information Retrieval System for Learning Experiences in the Virtual Environments - Section 3 - INDEXING THE SCREEN TEXTS WITH DESKTOP SEARCH ENGINE

Sanal Ortamlardaki Öğrenme Deneyimleri İçin Bir Enformasyon Erişim Sistemi Tasarımı  - Bölüm 3

EKRAN METİNLERİNİ MASAÜSTÜ ARAMA MOTORU İLE İNDEKSLEME


2000’lerde çok sayıda ticari ve açık kaynak kodlu masaüstü arama motoru geliştirilmiştir. Microsoft Windows işletim sistemine ait Windows Search (Protalinski, 2010), Copernic Desktop Search (Copernic, 2016), Apple OS X ve iOS işletim sistemlerine ait Spotlight (Wikipedia, 2016c) ve kurumlar için X1 Search (X1, 2016) yaygın olarak kullanılan ticari masaüstü arama motorlarıdır. Açık kaynak kodlu arama motorlarına ise DocFetcher (DocFetcher, 2016), Nutch (Kare ve diğ., 2004), Terrier Search Engine (Ounis ve diğ., 2006) örnek verilebilir. Açık kaynak kodlu masaüstü arama motorlarının çoğu Apache vakfının Lucene Projesi ile geliştirilmiştir (Apache, 2016a). Java tabanlı bu arama motoru kitaplığına .Net üzerinden erişmek amacıyla C# ile geliştirilmiş Lucene.Net paketi bulunmakla birlikte bu çalışma en son 2012 yılında .Net 3.5 için uyarlanmıştır (Apache, 2016b). 

Yapılan bir aramada Mehdi Gholam tarafından geliştirilen ve CodeProject tarafından CPOL lisansıyla dağıtılan hOOt arama motorunun daha az yer kapladığı (sadece 98 KB büyüklüğünde bir DLL'den oluşmaktadır), kullanımının basit olduğu ve daha güncel tutulduğu görülmüştür (Gholam, 2013). Mehdi Gholam tarafından verilen istatistiklerde hOOt paketinin masaüstü dosyalarını indeksleme ve anahtar sözcüklerle erişme işlevlerini Lucene.Net ile karşılaştırılabilir hızlarda yerine getirdiği görüldüğü için projede hOOt masaüstü arama motorunun 2.2.1 sürümünün kullanılmasına karar verilmiştir. Mehdi Gholam'a göre tam metin arama, seçilen metin blokları içerisinde verilen sözcükleri arama sürecidir ve bu sürecin iki yönü bulunmaktadır: a) Varlık: Aranan sözcüklerin çok sayıda metin bloklarının hangilerinde var olduğunun belirlenmesi; b) Uygunluk: Verilen sözcükleri içeren metin bloklarının en ilgili olanının en önde olduğu bir sıralama sistemi ile sıralanmasıdır. hOOT paketinin son sürümü sadece "varlık" sürecini içermekte, "uygunluk" sürecini barındırmamaktadır. Bu çalışmada "uygunluk" öncelikli bir gereksinim değildir. Tam tersine, aranan sözcükleri içeren "en uygun" belgelere değil, tüm belgelere erişilmesi önemlidir. 


Anahtar Sözcüklerle Ekran Metinlerine Erişme 


Bireyin bilgisayarlarından M-Levels1 ile yakalanan ekran görüntüleri ve ekran metinleri bir bulut hizmeti (örnek uygulamada bu amaçla Microsoft OneDrive hizmeti kullanılmıştır) üzerinden aktarılarak bir çalışma bilgisayarında "/LifeLogging" isimli bir klasörde bir araya getirilmektedir (Mutlu, 2016a). Mehdi Gholam'ın hOOt'u kullanan örnek uygulaması olan SampleApp ile bu klasör indekslendiğinde klasörde bulunan bütün ".txt" dosyalarındaki sözcükler çıkartılarak bu indekse eklenmektedir. Daha sonra aynı uygulamada anahtar sözcükler ile bu indeks üzerinde arama yapılarak, sözcük ya da sözcük gruplarını içeren tüm metin ekranı dosyalarının listesi elde edilebilmektedir. 

Bu süreci ve daha sonraki aşamaları içerecek olan ve M-Levels2 üst başlığına sahip “Temporal Desktop Search for ScreenShots” yazılımı geliştirilmiştir (Mutlu, 2016b). Bu amaçla Windows Forms sunum altyapısı kullanılarak yazılmış olan SampleApp uygulaması bu çalışmada geliştirilecek sistemin gereklerine göre WPF ortamında yeniden düzenlenerek, geçmiş ekran metinlerine erişme sürecinin ilk dört aşaması oluşturulmuştur. M-Levels2 yazılımının Mehdi Gholam'ın çalışmasına bağlı kalarak oluşturulan ilk dört adımına ait ekran görünümü Şekil 2'de verilmiştir.


Şekil 2: M-Levels2 Uygulamasında İlk Dört Aşama

Bu aşamaların ilki, oluşturulacak olan indeksin kaydedileceği klasörün belirlenmesi; ikinci aşama, indekslenecek olan dosyaların bulunduğu klasörün belirlenmesi; üçüncü aşama indeksleme işleminin başlatılması, indekslenen dosya ve sözcük sayısının görüntülenmesi ve indeksin kaydedilmesi aşamasıdır. Dördüncü aşamada ise aynı indeks yüklenerek, üzerinde arama yapmak amacıyla kullanılabilir. Şekil 2'deki örnekte kullanıcı ekran görüntülerinden elde edilen metin dosyalarından oluşan yaşam günlüğü dosyaları üzerinde "Anadolu Üniversitesi Eskişehir" sözcüklerinin geçtiği ekranları aramış ve 265 görüntü bulmuştur. 


Bir Konuyla Geçmişte Hangi Sıklıkta Çalışıldığının Belirlenmesi 


M-Levels2 uygulamasının beşinci aşamasında listesi elde edilen metin dosyalarının cihaz ismi ve tarih etiketiyle oluşturulan isimlerinden yararlanılarak, dosyalar cihaz ve zaman boyutunda süzülebilmektedir. Kullanıcı, yazılımın beşinci aşamasında ekran görüntülerinin elde edildiği cihazların listesinden odaklanmak istediği cihazları seçebilir (Şekil 3). Böylece geçmiş deneyimi anımsamak amacıyla ev, iş yeri ya da hareketli anları birer bağlam olarak kullanabilir.


Şekil 3: M-Levels2 Uygulamasında Ekran Görüntülerinin Yakalandığı Cihazların Listesi


Arama motorlarının sonuçlarını görselleştirmeye yönelik bir çalışmada List View, Tree View, Map View, Bubble View, Tile View and Cloud View görüntüleme tekniklerine yer verilmiştir (Foo ve Hendry, 2007). Zamansal sonuçların görüntülenmesi ise mutlaka bir zaman ekseninin kullanımını gerektirecektir. Internet Archive hizmeti verilen bir web sitesinin yıllara göre yakalama dağılımı ve her yıl için de yıllık bir takvim sunmaktadır (Archive, 2016). Kullanıcı web sitesinin yıllık takvim üzerinde seçmiş olduğu bir güne ait geçmiş kopyasına erişmektedir. Google Trends hizmeti ise verilen bir anahtar sözcüğün hacim değerini bir zaman ekseni üzerinde çizgi grafiği biçiminde görüntülemektedir (Google, 2016). 

Bu yaklaşımla, verilen sözcük ya da sözcük gruplarını içeren metin dosyalarının yıl, ay ve gün bazındaki sıklıkları WPF Toolkit Data Visualization Controls (Shimmy, 2012) yardımıyla görselleştirilerek Şekil 4'deki etkileşimli grafik elde edilmiştir. M-Levels2 yazılımının 6. Aşamasında yer alan bu grafikte kullanıcı bir konuyla hangi yıl kaç kez ilgilendiğini görebilmektedir. Bir yıl seçildiğinde, o yıla ait aylar boyunca söz konusu konuyla kaç kez ilgilenildiği görüntülenmektedir. Bir ay seçildiğinde ise o aya ait günler boyunca o konuyla kaç kez ilgilenildiği görüntülenir. Buradaki "kaç kez" ifadesine karşı gelen büyüklük, söz konusu konuyu ifade eden sözcük ya da sözcük grubunu içeren ve her biri 30 saniyelik zaman aralığına ait olan ekran görüntüsü sayısıdır.


Şekil 4: Verilen Konunun Geçmişte Üzerinde Çalışılma Sıklığı

Kullanıcı daha sonra belirli bir güne odaklandığında ve o güne ait ekran görüntülerine erişmek istediğinde MLevels2 yazılımının yedinci aşamasındaki grafikte önce bir saat seçmesi ve ardından o saatin dakikalarındaki dağılıma ait çubuklara tıklaması yeterli olmaktadır. Böylece seçilen bir dakika boyunca yakalanmış olan 1 ile 2 arası değişen sayıda ekran görüntüsünden birincisine erişerek görüntüleyebilir (Şekil 5).


Şekil 5. Girilen Anahtar Sözcüğü İçeren Ekran Görüntülerinin Görüntülenmesi 

Ekran görüntülerini yakalayan M-Levels1 uygulaması mümkün olduğunca yüksek kalitede "jpeg" formatında görüntü yakalamaktadır. Farklı bilgisayarlardaki değişik çözünürlükteki ekranlardan yakalanan ekran görüntülerinin boyları farklı olacaktır. Bu nedenle kullanıcıya ek olarak M-Levels2 uygulamasında görüntünün üzerine tıklayarak gerçek boyutunda görüntüleme olanağı sağlanmıştır.

[*] Bu bölümün yazılmasında “Mutlu, M.E. (2016). Sanal Ortamlardaki Öğrenme Deneyimleri İçin Bir Enformasyon Erişim Sistemi Tasarımı, 7. Uluslararası Eğitimde Yeni Eğilimler Kongresi – ICONTE 2016, 13-15 Mayıs 2016 , Antalya“ kaynağından yararlanılmıştır.

(Not: Yararlanılan kaynaklar yazı dizisinin sonunda topluca verilecektir.)