Özet

Merhaba, ben Eren İLERİ . Bilecik Şeyh Edebali Üniversitesi Yönetim Bilişim Sistemleri bölümünde son sınıf öğrencisiyim. Günümüzde sosyal medya, sürekli değişen trendlerin ve akımların odağı haline geldi. Bu dinamik ortamda, “Emoji Yeme Akımı” gibi yenilikçi ve eğlenceli trendler hızla popülerlik kazanıyor. Bu projede, YouTube üzerindeki sıradan bir emoji yeme videosunun insanlarda hangi emojileri ve yemek yeme türlerini çağrıştırdığını inceleyeceğiz.Yardımlarından dolayı Osman Enes ÜNAL’a teşekkür ederim.

1.Kullanılan Kütüphaneler

Kullanacağım kütüphaneler aşağıda açıklamaları ile sıralanmıştır.

Kütüphane İsimleri Kullanım Amaçları
tuber YouTube API’si ile etkileşim kurmak için kullanılır. Video ve yorum gibi verileri çekebilirsiniz.
httpuv HTTP ve WebSocket protokolleri üzerinden asenkron web uygulamaları oluşturmak için kullanılır.
httr HTTP istekleri yapmak ve API’lerle etkileşimde bulunmak için kullanılır.
dplyr Veri manipülasyonu ve analizi için kullanılır. Veri çerçeveleri üzerinde çeşitli işlemler yapmanıza olanak tanır.
stringr Metin işlemleri ve manipülasyonu için kullanılır. Stringler üzerinde arama, değiştirme gibi işlemleri kolaylaştırır.
tm Metin madenciliği için kullanılır. Metin verilerini işlemek ve analiz etmek için gerekli araçları sağlar.
ggplot2 Veri görselleştirme için kullanılır. Karmaşık grafikler oluşturmanıza olanak tanır ve ‘Grammar of Graphics’ felsefesine dayanır.
knitr R Markdown dosyalarını işlemek ve dinamik raporlar oluşturmak için kullanılır. Kod, sonuçlar ve yorumları bir araya getirerek dokümanlar hazırlamanıza yardımcı olur
stringi Metin işleme ve manipülasyonu için güçlü fonksiyonlar sunar. Unicode tabanlı işlemleri destekler ve performans açısından optimize edilmiştir.

2. Yotube API Google Cloud

Google Cloud üzerinden aldığımız geliştirici hesabı ile sizlerde Google hesabı alabilirsiniz.

client_id<-"-----------------------Your_Client_id------------------------------" #Client Id
clientsecret<-"------------Your_client_secret----------------" #Client Secret 
yt_oauth(client_id,clientsecret,token =" ") #Youtube Oauth 

2.1. Youtube Video Kazımı

Yorumlarını kazmak istediğimiz videonun uzantısını bu şekilde yazıyoruz.

Video_yorum<-get_all_comments(video_id = "lBbEBRBtKGY") 

2.2. Kazılan Verilerin Kayıtı

Youtube videosu üzerinden kazmış olduğumuz yorumları bilgisayarımıza ‘.csv’ formatı ile kaydediyoruz ve kayıt altına alıyoruz.Bu şekilde her seferinde yorum çekme ile uğraşmıyoruz.

Write.csv(Video_yorum, file = "yorumlar.csv")

2.3. Kayıt Edilen Verilerin Çekimi

Kayıt ettiğimiz yorumları bilgisayarımızdan çekiyoruz.

Video_yorum<- read.csv(file.choose(), header = T , sep = ",")

3. YouTube Yorumlarındaki Emoji Kullanım Analizi

library(stringi)
## Warning: package 'stringi' was built under R version 4.2.3
library(dplyr)
## Warning: package 'dplyr' was built under R version 4.2.3
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
# Video_yorum$textOriginal vektöründeki tüm emojileri çıkarır
emojiler <- stri_extract_all_regex(Video_yorum$textOriginal, "\\p{So}")

# Çıkarılan emojilerin her birinin kaç kez tekrar ettiğini hesaplar
emoji_tablosu <- table(unlist(emojiler))

# Emoji ve tekrar sayısını içeren bir veri çerçevesi oluşturur
emoji_df <- data.frame(emoji = names(emoji_tablosu),
                       tekrar_sayisi = as.numeric(emoji_tablosu)) %>%
  # Tekrar sayısına göre azalan sırada düzenler
  arrange(desc(tekrar_sayisi)) %>%
  # En sık tekrar eden ilk 22 emojiyi seçer
  slice_head(n = 22)

3.1. Verilerin Görselleştirilmesi

Bu R kodu, emoji_df veri setindeki emojilerin kullanım sıklığını renkli bir pasta grafiği olarak gösterir. Her dilim, bir emojiyi temsil eder ve boyutu o emojinin tekrar sayısına göre belirlenir. Renkler, rainbow fonksiyonu ile otomatik olarak atanır ve grafik, “Emoji Kullanım Yüzdelikleri” başlığı ile birlikte temiz bir görünüme sahip olacak şekilde theme_void() ile düzenlenir. Pasta grafiğinde gördüğümüz kadarıyla insanların en çok verdikleri tepkilerden ilk üçü kalp, bal ve buz küpü.

library(ggplot2)
## Warning: package 'ggplot2' was built under R version 4.2.3
ggplot(emoji_df, aes(x = "", y = tekrar_sayisi, fill = emoji)) + # Veri setini ve estetikleri ayarla
  geom_bar(width = 1, stat = "identity") + # Her emoji için barlar oluştur
  coord_polar("y", start = 0) + # Grafiği polar (daire) koordinatlara dönüştür
  scale_fill_manual(values = rainbow(nrow(emoji_df))) + # Renkleri manuel olarak ayarla
  labs(title = "Emoji Kullanım Yükleri", # Başlık ve eksen etiketlerini ekle
       x = "",
       y = "") +
  theme_void() # Temayı sadeleştir

Bu kod ile insanların göndermiş oldukları emoji sayılarının büyüklüğünü göstermektedir. Bu tabloya gönderilmiş olan emojilerin tekar sayıları şu şekilde;

  1. ❤ : 4324
  2. 🍯 : 3125
  3. 🧊 : 2845
library(ggplot2)
ggplot(emoji_df, aes(x = emoji, y = tekrar_sayisi, color = emoji)) +
  geom_point() +
  scale_color_manual(values = rainbow(nrow(emoji_df))) +
  labs(title = "Emoji Tekrar Sayıları",
       x = "Emoji",
       y = "Tekrar Sayısı") +
  theme_minimal() +
  theme(axis.text.x = element_text(angle = 45, hjust = 1))