R Programlamada Twitter İşlemleri - 2. Ders


Merhaba R severler,

R programlama içerisinde twiter üzerinden veri çekme ve analiz yapma dersimizin ikinci kısmıyla devam ediyorum. Geçen dersimizde twitter üzerinden giriş nasıl yapılacağına dair bir makale hazırlamıştım. (http://scansu.net/Icerik/R-Programlamada-Twitter-islemleri---1.-Ders/1041 )  Bu dersimizde daha reel sonuç döndürecek olan bir kaç işlem yapacağız. Bu işlemlere geçmeden önce veri analizinin yapılacağı kelime grubunu iyi belirlememiz veya kendi hesabımızdan veri analizi yapacaksak twitter dan “csv” dosyasını elde etmemiz gereklidir.

1- Kelime Grubu Araması yapılacaksa;

-          Öncelikle giriş işlemini gerçekleştiriyoruz (setup_twitter_oauth)

-          Daha sonra arama yapacağımız kelimeyi belirliyip aramayı gerçekleştiriyoruz

a=searchTwitteR("#Atatürk",n=10)

-          Arama sonucunu bir data frame şekline getiriyoruz

df <- do.call("rbind", lapply(a, as.data.frame))

elimizde artık kullanabileceğimiz bir data frame mevcut.

2- Twitter dan csv dosyası oluşturma

-          Öncelikle twitter ayarlarından “Hesap” kısmına tıklıyoruz. Sayfanın en altında “içerik”  kısmına geliyoruz ve “Arşivini iste” butonuna tıklıyoruz.

-          Arşiv listesi belli bir zaman sonra email adresine gönderilecektir.

-          Mail adresinden indireceğiniz .rar dosyası içerisinde twitter.csv dosyası şimdiye kadar yaptığımız paylaşımları göstermektedir.

-          İndirilen twitter.csv dosyasını “c:” sürücüsüne kaydedip komut satırına

tweets <- read.csv("C://tweets.csv", stringsAsFactors = FALSE)

komutu uygulanarak veri çekilebilir.

-          Çekilen bu veri yine data frame olarak karşımıza çıkacaktır.

Yukarıdaki her iki seçenekten herhangi birisi kullanılarak veri çekme işlemi gerçekleştirildikten sonra ilk adımda ihtiyacımız olan bazı kütüphaneleri indirme işlemine geçebiliriz.

library(tm)

library(stringr)

library(wordcloud)

NOT : Twitter verisi çekerken dikkat edilmesi gerekn şey paketlerin henüz Türkçe desteği olmamasından  dolayı aramayı ingilizce yapmanın daha sağlıklı olacaktır.

Bu işlemler için bir diğer önemli kısım ise verilerin temizlenmesi işlemidir ki bu işlem için “tm” paketini kullanmaktayız.

Öncelikle elimizdeki veriden “@denm, @hachtack” gibi ifadeleri kaldıracağız. Aşağıdaki komutu uyguluyoruz.

nohandles <- str_replace_all(tweets$text, "@\\w+", "")

yukarıdaki komutta tweet isimli değişkende bulunan bütün textlerdeki “@” işaretini barındıran kelimeleri kaldırıyoruz.

Şimdiki adımda ise kitaplık oluşturacağız.

wordCorpus <- Corpus(VectorSource(nohandles))

yukarıdaki komutta vektör kaynağı olarak “nohandles” isimli değişkeni kullanıyoruz.

wordCorpus <- tm_map(wordCorpus, removePunctuation)

“removePunctuation” komutuyla  noktalama işaretlerini kaldırıyoruz.

wordCorpus <- tm_map(wordCorpus, content_transformer(tolower))

yukarıdaki komutta ( “content_transformer(tolower))” ) ise bütün harfleri küçük harfe çeviriyoruz.

wordCorpus <- tm_map(wordCorpus, removeWords, stopwords("english"))

wordCorpus <- tm_map(wordCorpus, removeWords, c("amp", "2yo", "3yo", "4yo"))

yukarıdaki komutta ise anlamsız kelimeleri tweetler içerisinden kaldırıyoruz ki grafik oluşturulduğunda dönecek sonuçlar bir anlam ifade edebilsin.

wordCorpus <- tm_map(wordCorpus, stripWhitespace)

son olarak yukarıdaki komutla boşlukları kaldırıyoruz. Bütün bu veri temizleme işlemlerinden sonra kelime bulutunu artık oluşturabiliriz.

pal <- brewer.pal(9,"YlGnBu")

pal <- pal[-(1:4)]

set.seed(123)

yukarıdaki komutta mavi renklere ait tonlamaların kullanılacağını söylemekteyiz. Kelimenin kullanım sıklığına göre bu renk açık tan koyu maviye doğru değişecektir.

Son olarak aşağıdaki komut uygulanarak kelime bulutu oluşturulur

wordcloud(words = wordCorpus, scale=c(5,0.1), max.words=100, random.order=FALSE,           rot.per=0.35, use.r.layout=FALSE, colors=pal)

Konuyla ilgili soru ve önerileriniz için facebook veya twitter sayfalarımızı kullanabilirsiniz.

Yazar Kimdir?

Sıtkı Cansu, 19 Ekim 1985 yilinda Konya-Beyşehir'de dogmustur.İlk, orta ve liseyi Beyşehir'de bitirmis olup Konya-Ereğli Selçuk MYO Bilgisayar programcılığı ve Mugla Sıtkı Koçman Üniversitesi İstatistik bölümünden mezun olmustur. Çesitli yerlerde web tasarımcı ve veri tabani yöneticisi olarak çalışan yazar, son üç senedir ingilizce öğretmenliği yapmaktadir. Şu anda yüksek lisansını tamamlamak üzere Mugla Üniversitesinde öğrenim görmektedir.