3 Temmuz 2014 Perşembe

Tokenizer (Parçalayıcı) Nedir?

Bilgisayar bilimlerinde sıklıkla kullanılan veri tiplerinden birisi de dizgilerdir. Bu veri tipinde herhangi bir bilgi (Cümlenin öğeleri, Tarih bilgileri, Adres bilgileri, noktalama işaretleri vs.) bulunabilir. Dizgi içerisinden işimize yarayacak veriyi elde etmek için o dizgi içerisinden istenilen parçaların çıkarılması gerekir. Bu işlem için dizginin parçalanması gerektiğinde yapılan işleme parçalama (Tokenize) ismi verilir. Tokenizer genel anlamda bir sınırlayıcı (delimeter) ile ayrılmış verileri ayırmak için kullanılır.
Örneğin veri setimizin bulunduğu dosyadan bir kaç örnek ele alalım:

Konuşmadın , kızmadın , hiçbir şey yapmadın .
Bir terslik vardı .
Kaçmaktı en iyisi .
Evet , kaçmak istiyordum .
En çabuk nasıl gidebilirdim ?
Nasıl hızla uzaklaşabilirdim ?

Yukarıdaki dosyayı okuyarak sırasıyla verileri işlememiz gerekirse yapılacak işlem dosyadan satır satır verileri okumak ve boşluk karakterinden okunan dizgileri bölmek gerekir. Elbette ki Programın tek yapması gereken şey boşluklara göre dizgileri parçalarına ayırmak değildir. Programın ne amaçla kullanılacağına bağlı olarak fonksiyonları farklılık gösterse de bir tokenizer genel olarak bazı önemli karakteristikleri içerir. Bu karakteristikleri sıralamak gerekirse:

Dizgilerdeki ihtiyacımız olmayan gereksiz veriler göz ardı edilebilir. Örneğin: Bazı noktalama işaretleri ve yalnızca iki ya da üç harften oluşan edat, bağlaç veya kısaltma bilgileri vs. Programa hangi bilgileri kullanıp, hangilerini kullanmayacağı gerekli kodlamalarla öğretilir.
Dizgilerde bazı noktalama işaretlerinin birden çok görevi olabilir. Tokenizerin yapması gereken parçalama işlemi yaparken noktalama işaretinin o bölgedeki görevine göre parçalamayı gerçekleştirebilmektir. Örneğin: Nokta işareti cümle sonunda olabilir ya da bir tarih bilgisi içerisinde bulunabilir. Bu durumda cümle sonundaki nokta göz ardı edilebilse de tarih bilgisi, içerisindeki noktalara karışılmadan, bir bütün halinde alınmalıdır.
Dizgiler içerisinde bulunan sayısal değerlere bakılıp, programımız için önemli bir parça olup olmadığına karar verilmesi gerekir. Örneğin: Ali 1. oldu cümlesindeki “1.” parçasının program açısından bir işlevselliği yoktur, fakat “Tarih 04.05.2013 Cumartesi .” cümlesindeki sayılar bir tarih belirttiği ve bir parça olarak kabul edildiği için önemli olabilir.

Belirtilen karakteristikler ve varsa ek karakteristikler belirlenerek oluşturulmak istenen Parçalayıcı bir programlama dili aracılığıyla makine öğrenmesi ya da kural tabanlı öğrenme yapılarak oluşturulur.

Share

& Comment

0 yorum:

Yorum Gönder

 

Copyright © 2015 Papiculo !™ is a registered trademark.

Designed by Templateism. Hosted on Blogger Platform.