R Notları: Zamana Göre Tweet Çekmek

R Programlama Dilini öğrenmeye çalışan biri olarak, kimi zaman hızlıca ilerlemenin kolay olmadığını söylemem gerekir. Spesifik aramalarda tıkanmalar yol açan dilimizden kaynaklı içerik yetersizlikleriyle sıkça karşılaşılabiliyor. Bu sorunu aşmak için ise yabancı kaynakları bol bol karıştırmak gerekiyor. Buradan yola çıkarak deneyimlerimden oluşan, belirli zorlukları aşarken kullandığım kodları ve bulduğum çözümleri paylaşmanın yararlı olacağını düşündüm. Bu süreçte mümkün olduğunca basit düzeyden başlayıp kademe ile yükselen bir plan çerçevesinde ilerleme niyetindeyim.

Şuan halihazırda yürüttüğüm bir çalışma için “metrobüs” kelimesinin Twitter’da nasıl paylaşıldığı ve bu kelimeye eşlik eden diğer kelimelerin neler olduğunu ve bu kelimelerin sayılarını görmek istedim. Bu sebeple öncelikle aşağıdaki kütüphaneleri kurmam ve çalıştırmam gerekti:

install.packages("twitteR")
library("twitteR")
install.packages("ROAuth")
library("ROAuth")
install.packages("tm")
library("tm")
install.packages("RCurl")
library("RCurl")
install.packages("rtweet")
library("rtweet")

Daha sonra Twitter’dan API aracılığıyla edindiğim şifreleri sisteme girdim (Bu arada ilk defa deneyenler için: Twitter’ın Developer hesabına girip soruları yanıtladığınız zaman bu şifrelere erişebiliyorsunuz):

options(RCurlOptions = list(cainfo = system.file("CurlSSL", "cacert.pem", package = "RCurl")))

api_key <- "B....................."
api_secret <- "..........X4Z7ZLMhML.........."
access_token <- "437058054-...................."
access_token_secret <- "4uwgn25D0..............."

setup_twitter_oauth(api_key, api_secret, access_token, access_token_secret)

Ardından kısaca bir kontrol amaçlı bağlantının kurulup kurulmadığını sınadım:

updateStatus("Bu paylaşım deneme amaçlı yapılmıştır")

Bağlantının sağlandığını teyit ettikten sonra kullanacağım “rtweet” katalogundan bulduğum çeşitli düzenlemeleri etkinleştirdim:

path_to_token <- file.path(path.expand("~"), ".twitter_token.rds")

get_token()
create_token()

saveRDS(token, path_to_token)
env_var <- paste0("TWITTER_PAT=", path_to_token)
cat(env_var, file = file.path(path.expand("~"), ".Renviron"), 
  fill = TRUE, append = TRUE)

readRenviron("~/.Renviron")

vignette("auth", package = "rtweet")

Bu düzenlemeleri sağladıktan sonra sistemim tweet çekmeye müsait duruma geldi. Bu işlemlerin ardından geçmişe dönük arama yapılıp yapılmayacağını aramaya başladım. Daha sonra “rtweet” kütüphanesi geliştiricisinin Twitter’ın yalnızca 10 gün geriye dönük paylaşımları kullanıma sunduğunu belirttiği açıklamayla karşılaştım. Aşağıdaki komutla ve tarihleri değiştirerek bugünden itibaren geriye dönük verinin çekilmesini sağlamaya çalıştım:

metrobüs <- search_tweets(
    q = "metrobüs", n = 18000, include_rts = FALSE, 
    since = "2020-03-10", until = "2020-03-23")

Bu komutları kullandığımda maksimum geriye dönük 9 günlük paylaşım verisine erişebildim. (Bu arada tweet sayısını sınırlandırmak isteyenler “n” değişkeninden ayarlama yapabilir. Ben maksimum veriye ulaşmak adına bu sayıyı kullandım. Ayrıca metinlere değil kullanıcılara odaklanan çalışmalarda include_rts komutu silinebilir)

Son olarak bir sorun ve çözümle yazıyı bitireceğim. R’da edindiğiniz verileri dışarı aktarma sorunları yaşayanlar için aşağıdaki kütüphane ve komutlar faydalı olacaktır:

install.packages("rio")
library("rio")

export(metrobüs, "metrobüs.xlsx")

Veri setini dışarı aktarırken uzantıyı csv, html, xlsx, docx olarak belirleyebilirsiniz. Bu arada bazen işletim sistemi farklılığı sorunlar yaratabiliyor. Windows’ta bu komut çalışmanızı doğrudan klasörünüze çıkarırken Mac’te sorun yaşanıyor. Bu sorunu çözmek için ise karşılığında aynı isimli bir boş dosya atamanız gerekiyor. Böylece o dosyayı seçer ve içine yazmasını sağlayabilirsiniz.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir