Büyük veri analizi yöntemleri ve yazılım teknolojileriyle metin madenciliği
Text mining using big data analysis methods and tools
Yazar: EVREN PALA
Danışman: DOÇ. DR. GÜRAY YILMAZ
Hava Harp Okulu Komutanlığı / Havacılık ve Uzay Teknolojileri Enstitüsü / Bilgisayar Mühendisliği Ana Bilim Dalı / Siber Güvenlik Bilim Dalı
Derece: Yüksek Lisans, 2016
Konu: Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve Kontrol = Computer Engineering and Computer Science and Control
Dizin: Veri madenciliği = Data mining ; Yazılım dağıtım sistemleri = Software distribution systems

Özet:
Üretilen veri miktarının çok yüksek boyutlarda olduğu günümüzde, ham verilerin işlenerek bunlardan anlam çıkarılması oldukça önemli ve giderek yaygınlaşan bir iştir. Bu verilerin önemli bir kısmı, serbest halde yazılmış metinlerdir. Çeşitli ağlarda ve internet üzerinde üretilen metin içeriklerinin öğrenme algoritmaları kullanılarak otomatize bir şekilde tasnif edilmesinin önemli faydalarından biri de siber güvenlik kapsamında farkındalık kazandırmasıdır. Metin madenciliği olarak adlandırılan bu alanda yapılan geliştirme çalışmaları devam etmektedir.
Veri madenciliğinde, üzerinde çalışılan veri türünün kendine has özellikleri, veri setlerinin nasıl temizleneceği, matematiksel olarak nasıl ifade edileceği, ne tür algoritmalarla işleneceği, bu algoritmalarda kullanılacak yakınlık / uzaklık ölçülerinin nasıl belirleneceği gibi konular önemli rol oynamaktadır. Metin dokümanları, serbest halde üretilmiş, yazıldıkları dilin kuralları dışında bir şekle veya şablona tabi olmayan veri tipleridir. Dolayısıyla, veri madenciliği yöntemleri ile işlenmesi konusunda bir takım meseleleri öne çıkarmaktadır. Öncelikle, öğrenme algoritmalarının çalışması için veri örneklerinin yapısal bir halde, belirli sayıda bir özellik kümesi (feature set) ile boyutları sınırlandırılmış bir formda bulunması gerekmektedir. Metin dokümanlarının nümerik vektörlere dönüştürülmesinde her bir kelime ayrı birer özellik olduğu için yüksek boyut sayısı hem bellek kullanımı açısından, hem de veri işleme maliyeti açısından önemli bir problemdir. Dokümanların boyut sayısı belirli vektörel bir forma dönüştürlülürken nasıl bir yöntem kullanılacağı önemli bir sorundur. İkinci olarak, metin veri kümelerinde, biribiriyle aynı kategorideki veri örneklerinden oluşan öbekler, genellikle diğerlerinden kolay ayırt edilebilir kompakt yapılar sergilememekte, iç içe geçmiş gruplar gözlemlenmektedir. Basit öbekleme (clustering) algoritmalarının, iyileştirici süreçler olmaksızın metin dokümanlarını yüksek isabette öbeklere ayırması oldukça zordur. Veri setlerinde iç içe geçmiş grupları birbirinden ayırmak için alternatif yaklaşımlar gerekmektedir.
Bu çalışmada, bahsedilen sorunlara bazı öneriler getirilerek metin verileri üzerinde kategorizasyon / öbekleme uygulamalarının isabet oranı iyileştirilmeye çalışılmıştır. Öncelikle, metin dokümanlarını vektörel forma getirme sürecinde metin içinde geçen kelimelerin doğrudan kullanılmasına alternatif bir yaklaşım olarak, bazı referans dokümanların kullanılması salık verilmiş ve uygulanmıştır. Bu yönteme göre, dokümanlar vektöre  dönüştürülürken  vektörün her bir nümerik girdisi, söz konusu dokümanın, referans olarak kullanılan her bir dokümana olan yakınlık değeri ile ifade edilmektedir. İkinci olarak, iç içe  geçmiş grupları birbirinden ayırmak konusunda spektral öbekleme yöntemleri ele alınmıştır. Bu yöntem, veri üzerinde herhangi bir istatistiksel model varsayımı yapıp modele ait parametreleri optimize etmek yerine, veri örneklerinin birbiri ile nasıl bağlar kuruduğunu temel alır. Spektral öbekleme algoritması, aynı kategorideki verilerden oluşan  öbeklerin kompakt şekiller oluşturmadığı fakat bağlı bileşenler (connected components) formunda bulunduğu durumlarda oldukça başarılı bir algoritmadır. Bir diğer mesele olan uzaklık / yakınlık ölçüsü hususunda ise, metin verilerinde oldukça yaygın kullanılan kosinüs uzaklığı kullanılmıştır.
Bu tez kapsamında, metin madenciliğinde dokümanların vektörizasyonunda referans dokümanların kullanımı ve spektral öbekleme algoritmasının etkileri incelenmiş, öbekleme sonuçlarının isabet oranına  olumlu katkıları olduğu gözlemlenmiştir. Çalışma, iki ayrı uygulamadan oluşmaktadır. İlk olarak, Twitter kullanıcıları tarafından yazılan türkçe tweetler, Vikipedi'deki Türkçe parçalar referans olarak kullanılarak ifade edilmiş ve bu yöntemle, kullanıcıların kendi Twitter hesaplarında gördükleri tweetler, kendileri ile daha alakalı olanlar üstte olacak şekilde yeniden sıralanmıştır. İkinci uygulamada ise İngilizce haber gruplarından oluşan 20-newsgroups veri seti, verinin içindeki merkezi elemanlar referans olarak kullanılarak vektörel forma dönüştürülmüş  ve spektral öbekleme algoritması kullanılarak kategorize edilmiştir. Dokümanlar ayrıca referans dokümanlar kullanılmaksızın spektral öbekleme ve k-means algoritmaları ile öbeklenmiş ve sonuçlar karşılaştırılmıştır. 
Uygulamalar, büyük ölçekli veri setleri üzerinde de hizmet verebilecek şekilde dağıtık veri işleme ve saklama araçları kullanılarak geliştirilmiştir. Vikipedi makaleleri Apache Solr üzerinde saklanarak tweetler ile arama sorguları gönderildiğinde skorlu bir şekilde sonuç seti dönmesi sağlanmıştır. Öte yandan, 20-newsgroups veri seti üzerinde yapılan çalışmalarda ise Apache Hadoop tarafından sağlanan dağıtık dosya sistemi kullanılmıştır. Öbekleme algoritmaları ise Apache Mahout kullanılarak dağıtık mantıkla çalıştırılmıştır.

Abstract:
In today's world, making meaningful inferences from raw data is an important task and getting more widespread gradually as huge amount of data is being produced continuously. Text documents written in free format constitutes an important part of data being produced. One of the benefits of categorizing text documents using learning algorithms is creation of awareness. This is an important acqusition in terms of cyber security. There are ongoing studies to improve text mining.
In data mining, there are some issues to consider such as characteristics of data domain, how to clean dataset, how to convert data instances into vector form, which algorithm to use, which distance/similarity measure to use and so on. Text documents are data types written in free format and they are regulated only by grammar rules of the language they written. Because of this fact, processing text data with data mining methods has some difficulties. First of all, data instances must be in a structural form and have finite number of features in order to be processed by learning algorithms. When converting text documents into vectors, each distinct term in text collection takes part as a feature. Therefore, document vectors have large feature size, which causes complexity in terms of both space and time. The technique of converting text documents into vectors is an important issue. Secondly, document clusters does not always exist in form of easily separable compact structures. Different clusters may seem nested structures in text data collections. In such cases, ordinary clustering algorithms can hardly find clusters with high accuracy. They usually need additional processes to handle such datasets. Alternative approaches are needed to achieve high accuracy when clustering text datasets with nested groups.
In this study, it is aimed to improve text document clustering results by introducing some solutions to problems addressed. To begin with, as an alternative method to term based vectorization, using some reference documents is suggested for converting text documents into vectors. According to this method, each feature of a document vector is determined by its similarity to each reference document. Another suggestion is about algorithm. Spectral clustering algorithm is proposed to use when clustering datasets with nested clusters. This algorithm considers similarities/distances between instances of dataset instead of assuming a specific statistical model and optimizing parameters of that model. Algorithm performs well when clusters exist in form of connected components but not necessarily linearly separable compact structures. Another issue in text mining is to decide which distance measure to use. Cosine distance is picked as its usefulness in text data.
In scope of this thesis study, effects of reference documents and spectral clustering algorithm on text mining is examined. It is observed that these methods enhance clustering accuracy. Two applications are developed in order to demonstrate effects. First one includes analysis of Turkish tweets using articles in Wikipedia as reference document set. In application, tweets are represented with respect to their similarities to Wikipedia articles and user timeline is reorganized according to relevancy of tweets to the user. In second application, 20-newsgroups data set is clustered using spectral clustering. Reference documents in this application are picked from central elements in dataset. Dataset is also clustered using k-means and spectral clustering algorithm with and without using reference documents. Then, results are compared.
Distributed storage and processing tools are used in applications in order to respond big data sets. Wikipedia articles are indexed on Apache Solr. By this way, scored document set result is provided for sarch queries consisting of tweets. On the other hand, Apache Hadoop's distributed file system is used in application running on 20-newsgroups dataset. Apache mahout is used for machine learning library. By this way, clustering algorithms are executed as MapReduce jobs on Hadoop.