Kelimelerden fazlası: tokenizasyon (2)
tidytext paketi, dplyr ve sparklyr gibi "tidyverse" paketlerini kullanarak metin verilerini analiz etmene olanak tanır. Sentiment analizi bu dersin kapsamı dışında; daha fazlası için Sentiment Analysis kursuna göz atabilirsin. Bu egzersiz, bunu Spark üzerinde nasıl yapabileceğine hızlı bir giriş sağlamayı amaçlıyor.
Sentiment analizi temelde her kelimeye bir puan ya da duygu atamana izin verir. Örneğin, AFINN sözlüğünde "outstanding" kelimesinin puanı +5'tir; çünkü neredeyse her zaman olumlu bir bağlamda kullanılır. "grace" hafif olumlu bir kelimedir ve puanı +1'dir. "fraud" genellikle olumsuz bir bağlamda kullanılır ve puanı -4'tür. AFINN puanları veri kümesi get_sentiments("afinn") ile döndürülür. Kolaylık olması için, açılmış (unnested) kelime verileri ve sentiment sözlüğü Spark'a kopyalanmıştır.
Genellikle, birden fazla veri grubunun sentiment'ini karşılaştırmak istersin. Bunu yapmak için kod kalıbı aşağıdaki gibidir.
text_data %>%
inner_join(sentiments, by = "word") %>%
group_by(some_group) %>%
summarize(positivity = sum(score))
Bir inner join, ilk tablodaki tüm değerleri alır ve ikinci tabloda eşleşme arar. Eşleşme bulursa, ikinci tablodan verileri ekler. Left join'den farklı olarak, eşleşme bulamadığı satırları düşürür. İlke, bu diyagramda gösterilmiştir.

Left join'ler gibi, inner join'ler de bir tür mutating join'dir; çünkü ilk tabloya sütunlar eklerler. Inner join'ler için hangi fonksiyonu kullanacağını ve nasıl kullanacağını tahmin etmeye çalış. (İpucu: kullanımı left_join(), anti_join() ve semi_join() ile gerçekten çok benzer!)
Bu egzersiz, kursun bir parçasıdır
R ile sparklyr kullanarak Spark’a Giriş
Egzersiz talimatları
Senin için spark_conn olarak bir Spark bağlantısı oluşturuldu. Başlık kelimelerine ait tibbles ve Spark'ta saklanan sentiment sözlüğü sırasıyla title_text_tbl ve afinn_sentiments_tbl olarak önceden tanımlandı.
title_text_tbl'densentimental_artistsadlı bir değişken oluştur.inner_join()ileafinn_sentiments_tbl'yi"word"üzerindentitle_text_tblile birleştir.artist_name'e göre gruplandır.scorealanının toplamına eşit olacak şekildepositivityadlı bir değişken oluşturmak için özetle.
- En olumsuz şarkı başlıklarına sahip ilk 5 sanatçıyı bul.
sentimental_artists'ı artan positivity'ye göre sırala.- İlk 5 sonucu almak için
slice_maxkullan.
- En olumlu şarkı başlıklarına sahip ilk 5 sanatçıyı bul.
sentimental_artists'ı azalan positivity'ye göre sırala.- İlk 5 sonucu al.
Uygulamalı etkileşimli egzersiz
Bu egzersizi bu örnek kodu tamamlayarak deneyin.
# title_text_tbl, afinn_sentiments_tbl have been pre-defined
title_text_tbl
afinn_sentiments_tbl
sentimental_artists <- title_text_tbl %>%
# Inner join with sentiments on word field
___ %>%
# Group by artist
___ %>%
# Summarize to get positivity
___
sentimental_artists %>%
# Arrange by ascending positivity
___ %>%
# Get top 5
___
sentimental_artists %>%
# Arrange by descending positivity
___ %>%
# Get top 5
___