Veri Madenciliği: Web Sitelerinin Keşifsel Veri Analizi Üzerine Bir Vaka Çalışması

Önceki çalışmalarda hem web ortamında hem de bilgisayarda kayıtlı “TXT” formatında kayıtlı metin verisinin kelime bulutunu oluşturmaya yönelik örnekler yapılmış ve bu verilerin hiyerarşik küme analizi yapılmıştır. Şimdi ise yapacağım örnek uygulamada, “HTML” uzantılı  web siteleri, kelime bulutu (word cloud), tanımlayıcı istatistikler ve hiyerarşik küme analizi açısından değerlendirilecektir.  Bu örnek için seçilen web sitesi “http://www.bbc.com/” ve baz alınan tarih 05/08/2018‘dir.

Uygulama adımları bir önceki örnekte açıklansa da yine adımlar detaylı bir şekilde anlatılmaya çalışılacaktır.

İlk olarak analiz için R paketleri kurulup, yüklenecektir.

#Kurulum için
install.packages(c("tm", "SnowballC", "wordcloud", "RColorBrewer", "RCurl", "XML"))

#Yüklemek için
library("tm")
library("SnowballC")
library("wordcloud")
library("RColorBrewer")
library("rvest") #HTML uzantılı web adreslerinden alınan veriyi işlemek için

Paketler yüklendikten sonra kelime bulutu oluşturulacak sitenin adresi yoluyla birlikte tanımlanır. Tanımlanan yoldan sonra, web sitesi, corpus() fonksiyonu ile indekslenerek veri temizleme işlemine geçilir. Daha sonra, kelimeler,  veri çercevesi (data frame)’ne dönüştürülerek sıklıklarına göre büyükten küçüğe doğru sıralanır. Yapılan işlemlere ilişkin kod bloğuna aşağıda yer verilmiştir.

#Veri Yolu
data    <- read_html("http://www.bbc.com/", language="en")
data   <- html_text(data)
###Veri indeksleme, temizleme ve matrise dönüştürme işlemleri
docs<-Corpus(VectorSource(data))
inspect(docs)
toSpace <- content_transformer(function (x , pattern ) gsub(pattern, " ", x))
docs <- tm_map(docs, toSpace, "/")
docs <- tm_map(docs, toSpace, "@")
docs <- tm_map(docs, toSpace, "\\|")
docs <- tm_map(docs, content_transformer(tolower))
docs <- tm_map(docs, removeNumbers)
docs <- tm_map(docs, removeWords, c("the", "for", "of","does","was","bbccook", "window","bbc","dot","com", "static", "bbc","icouk", "that","are","and","has","wwhp","cdata", "var","is","his","her","about", "will", "bbcdotcom", "bbcicouk", "bbcico","uk","typeof"))
docs <- tm_map(docs, removeWords, stopwords("english"))
docs <- tm_map(docs, removePunctuation)
docs <- tm_map(docs, stripWhitespace)
docs <- tm_map(docs, stemDocument)
#Dokuman matriksinin oluşturulması
dtm <- TermDocumentMatrix(docs)
m <- as.matrix(dtm)
#Kelimelerin sıralanarak veri çercevesine dönüştürülmesi
v <- sort(rowSums(m),decreasing=TRUE)
d <- data.frame(word = names(v),freq=v)

Veri temizleme işlemleri yapıldıktan ve veri çercevesi oluşturulduktan sonra aşağıdaki kod bloğuyla kelime bulutu oluşturulur. Kelime bulutu, kelimelerin tekrarlanma sıklığı en az 4 olan maksimum 200 kelime içinde yer alacak şekilde tanımlanmıştır.

set.seed(1234)
wordcloud(words = d$word, freq = d$freq, min.freq = 4,
max.words=200, random.order=FALSE, rot.per=0.35, 
colors=brewer.pal(8, "Dark2"))

Yukarıdaki kod bloğundan sonra 05/08/2018 tarihi itibariyle http://www.bbc.com/ haber sitesinin aşağıdaki kelime bulutu elde edilmiş olur.

Kelime bulutu oluşturulduktan sonra en sık karşılaşılan ilk 10 kelime, kod bloğu ile birlikte aşağıda verilmiştir.

library(gridExtra)
grid.table(head(d, 10))

Buna göre öne çıkan tanımlayıcı (descriptive) istatistik niteliğinde ilk 10 kelime sıklıklarına (frequencies) göre aşağıda verilmiştir.

Yapılan bu çalışmaların, özellikle keşifsel veri analizi (exploratory data analysis) ve nitel araştırma alanına giren içerik analizi (content analysis) noktasında önemli bir katkı sunacağı inancındayım.

Faydalı olması dileğiyle…

Not: Emeğe saygı adına, yapılan çalışmanın başka bir mecrada ya da ortamda paylaşılması halinde alındığı yer adının belirtilmesini rica ederim.

Saygılarımla.

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Google fotoğrafı

Google hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Connecting to %s