Emoji Analizi Nedir?

knitr::include_graphics ("C:\\Users\\HP 450 G6\\Desktop\\emoji_gorsel.jpg")

Japonca’da resim anlamındaki ‘e’ (絵) harfi ile karakter, harf anlamlarında olan ‘moji’ (文字) kelimesinin birleşiminden emoji kavramı oluşmuştur. Emoji, duyguları ifade etmeye kolaylık sağlayan yüz şekilleri ile bazı kavramları veya durumları anlatmada kullanılan doğa, hayvan, yiyecek-içecek, hava durumu, bina, spor, bayrak gibi küçük resimler (görsel simgeler) olarak tanımlanmaktadır.

Emoji Analizi İçin Gerekli Paketler

- emojifont() paketi yüklenir. Paketi aktif hale getirmek için kütüphaneden çağırılır. install.packages(“emojifont”)

library(emojifont)
## Warning: package 'emojifont' was built under R version 4.2.3

Emoji Karakterleri

Emojiyi kullanmak için karşılık gelen unicode’u kullanmamız gerekir. Emoji unicode’u ‘search_emoji()’ foksiyonu ile bulunabilir. search_emoji() fonksiyonunu 2 şekilde kullanabiliriz. Örnek üzerinden anlayalım.

İlk örneğimizde ‘search_emoji(’heart’)’ aratıldığında kalp ifadesi barındıran kelimeler gelir. Yani içinde heart barındıran tüm emojilerin ismi çıkar.

search_emoji('heart')
##  [1] "heart_eyes"                    "kissing_heart"                
##  [3] "heart_eyes_cat"                "couple_with_heart_woman_man"  
##  [5] "couple_with_heart"             "couple_with_heart_woman_woman"
##  [7] "couple_with_heart_man_man"     "heart"                        
##  [9] "yellow_heart"                  "green_heart"                  
## [11] "blue_heart"                    "purple_heart"                 
## [13] "black_heart"                   "broken_heart"                 
## [15] "heavy_heart_exclamation"       "two_hearts"                   
## [17] "revolving_hearts"              "heartbeat"                    
## [19] "heartpulse"                    "sparkling_heart"              
## [21] "gift_heart"                    "heart_decoration"             
## [23] "hearts"
emoji(search_emoji('heart'))
##  [1] "😍"    "😘"    "😻"    "💑"    "💑"    "👩‍❤️‍👩" "👨‍❤️‍👨" "❤️"     "💛"   
## [10] "💚"    "💙"    "💜"    "🖤"    "💔"    "❣️"     "💕"    "💞"    "💓"   
## [19] "💗"    "💖"    "💝"    "💟"    "♥️"

İkinci örnekte ise ‘emoji(search_emoji(’heart’))’ fonksiyonu, emoji olarak heart barındıran emojileri getirir.

Birinci örnekte yazılı halleri, ikinci örnekte emoji halleri çağırılır.

R Grafiklerinde Emojiler

Temel Grafikler

Bir örnek üzerinden uygulama yapalım. Uygulamayı yapacak herkeste sayıların aynı olamabilmesi için ‘set.seed()’ komutu çalıştırılır. Bu sayede aynı rastgele sayı dizisi üretilir. ‘set.seed(123)’ komutundan sonra üretilen sayı dizisi her seferinde aynı sonucu verecektir. x için normal dağılıma sahip 20 sayı üretilir. y için de yine ‘set.seed(321)’ komutu ile başlanır ve normal dağılıma sahip 20 sayı üretilir.

R’de text fonksiyonunda family parametresi, metin etiketlerinde kullanılacak yazı tipi ailesini belirtir. Örneğin, “serif”, “sans” veya “mono” gibi standart yazı tipi ailelerinden birini veya özel olarak yüklenmiş bir yazı tipi ailesini seçebilirsiniz. ‘family=’EmojiOne’’ ifadesi, ‘EmojiOne’ adında bir yazı tipi ailesi kullanılacağını gösterir. Bu, belirtilen yazı tipi ailesinin sisteminizde yüklü ve R tarafından destekleniyor olması gerektiği anlamına gelir.

Eğer ‘EmojiOne’ yazı tipi ailesi sisteminizde yüklü değilse veya R tarafından tanınmıyor ise, text fonksiyonu bu parametreyi göz ardı edebilir veya bir hata mesajı verebilir. R’de kullanılabilir yazı tipi ailelerini görmek için ‘names(pdfFonts())’ komutunu kullanabilirsiniz. Eğer özel bir yazı tipi ailesi kullanmak istiyorsanız, önce ‘extrafont’ paketi gibi araçlarla yazı tipini R’ye yüklemeniz gerekebilir

set.seed(123)
x <- rnorm(20)
class(x)
## [1] "numeric"
set.seed(321)
y <- rnorm(20)
class(y)
## [1] "numeric"
plot(x, y, cex=0)
text(x, y, labels=emoji('smile'), cex=2, col='red', family='EmojiOne')

Yazı Aileleri

names(pdfFonts())
##  [1] "serif"                "sans"                 "mono"                
##  [4] "AvantGarde"           "Bookman"              "Courier"             
##  [7] "Helvetica"            "Helvetica-Narrow"     "NewCenturySchoolbook"
## [10] "Palatino"             "Times"                "URWGothic"           
## [13] "URWBookman"           "NimbusMon"            "NimbusSan"           
## [16] "URWHelvetica"         "NimbusSanCond"        "CenturySch"          
## [19] "URWPalladio"          "NimbusRom"            "URWTimes"            
## [22] "ArialMT"              "Japan1"               "Japan1HeiMin"        
## [25] "Japan1GothicBBB"      "Japan1Ryumin"         "Korea1"              
## [28] "Korea1deb"            "CNS1"                 "GB1"

ggplot2 İle Grafikler

ggplot2 R programlama dilinde veri görselleştirme için kullanılan bir pakettir. Karmaşık grafikleri estetik bir şekilde sunma özelliğine sahiptir.

df <- data.frame(x=x, y=y,
     label = sample(c(emoji('nerd_face'), emoji('pouting_woman')), 20, replace=TRUE),
     type = sample(LETTERS[24:26], 20, replace=TRUE))

library("ggplot2")
## Warning: package 'ggplot2' was built under R version 4.2.3
ggplot(df, aes(x, y, color=type, label=label)) +
    geom_text(family="EmojiOne", size=10)

Bu kodun yaptığı işlemler şunlardır:

1.data.frame: Bir veri çerçevesi (df) oluşturulur. x ve y, muhtemelen daha önce tanımlanmış olan koordinatları temsil eder. label, her bir nokta için bir etiket olarak kullanılacak emojilerden oluşan bir vektör oluşturur. type, renk kodlaması için kullanılacak harflerden oluşan bir vektör oluşturur.

2.sample: c(emoji(‘nerd_face’), emoji(‘pouting_woman’)) ve LETTERS[24:26] ifadeleri, belirtilen elemanlardan rastgele seçim yapmak için kullanılır. replace=TRUE, seçim işleminin tekrarlanabilir olmasını sağlar, yani bir eleman birden fazla kez seçilebilir.

3.library(“ggplot2”): ggplot2 paketini yükler. ggplot: Veri çerçevesini ve estetikleri (aes) tanımlar. x ve y, grafikteki noktaların konumlarını belirler. color=type, her bir type değerine göre farklı renklerde noktalar oluşturur. label=label, her noktaya bir etiket (bu durumda bir emoji) atar.

4.geom_text: Etiketleri (label) metin olarak grafik üzerinde gösterir. family=“EmojiOne” yazı tipi ailesini ve size=10 metin boyutunu belirler.

ggplot() + geom_emoji("alien", color='green') + theme_void()

Burada ggplot() boş bir grafik başlatır. ‘geom_emoji’ ise grafik üzerine emoji ekler. Emoji alien(uzaylı) ve renk green(yeşil) dir. ‘theme_void()’ ifadesi ise, grafikteki tüm eksen etiketlerini ve arka planı kaldırarak sadece emojinin görünmesini sağlar.

Fonksiyonu çalışmayanlar için

Öncelikle remotes paketini yükleyin install.packages(“remotes”)

emoGG paketini GitHub’dan yükleyin remotes::install_github(“dill/emoGG”)

Yükleme işleminden sonra, library(emoGG) komutu ile paketi çağırabilir ve geom_emoji() fonksiyonunu kullanmaya başlayabilirsiniz.

x = seq(0, 2*pi, length=30)
y = sin(x)
ggplot() + geom_emoji('heartpulse', x=y, y=x, size=15)

Bu R kodu, ggplot2 paketini kullanarak bir grafik oluşturur. seq fonksiyonu ile 0’dan (2)‘ye kadar eşit aralıklı 30 sayı üretir ve bu sayılar x vektörüne atanır. y vektörü, x’in sinüs değerlerini içerir, yani y = sin(x) ile hesaplanır. Sonra ggplot() ile boş bir grafik başlatılır ve ’geom_emoji()’ fonksiyonu ile her bir x, y koordinatına bir ‘heartpulse’ emojisi yerleştirilir. size=15 parametresi, emojilerin boyutunu belirler.

Fontawesome

set.seed(2024-03-28)
fa <- fontawesome(c('fa-heart', 'fa-car', 'fa-star', 'fa-cloud', 'fa-music'))
df <- data.frame(x=rnorm(20),
                y=rnorm(20),
                label=sample(fa, 20, replace=T))

ggplot(df, aes(x, y, color=label, label=label)) +
    geom_text(family='fontawesome-webfont', size=6)+
    xlab(NULL)+ylab(NULL) +
    theme(legend.text=element_text(family='fontawesome-webfont'))

Bu R kodu, set.seed fonksiyonu, fontawesome paketi ve ggplot2 paketini kullanarak bir veri görselleştirmesi oluşturur.

ggplot() + geom_fontawesome("fa-umbrella"
                          , color='yellow') + theme_void()

‘Ggplot2’ ile kullanımını kolaylaştırmak için buna karşılık gelen bir ‘geom_fontawesome’ da sağlanmıştır.

Nereden Yüklenir

Şu anda bu paket Emoji Yazı Tipini ve Fontawesome Tipini desteklemektedir.

EmojiOne.ttf https://github.com/13rac1/emojione-color-font adresinden OpenSansEmoji.ttf, https://github.com/MorbZ/OpenSansEmoji adresinden fontawesome-webfont.ttf, https://github.com/FortAwesome/Font-Awesome adresinden yüklenir.

Kaynakça

https://cran.r-project.org/web/packages/emojifont/vignettes/emojifont.html

https://www.youtube.com/watch?v=A-il70GvkkM

https://fontawesome.com/search

https://copilot.microsoft.com/