More than words: tokenization (2)
tidytext पैकेज आपको dplyr और sparklyr जैसे "tidyverse" पैकेजों के साथ टेक्स्ट डेटा का विश्लेषण करने देता है। सेंटिमेंट एनालिसिस इस कोर्स के दायरे से बाहर है; आप इसके बारे में और Sentiment Analysis में देख सकते हैं। यह अभ्यास आपको Spark पर इसे करने का एक छोटा-सा अनुभव देने के लिए बनाया गया है।
सेंटिमेंट एनालिसिस मूल रूप से हर शब्द को एक स्कोर या भावना सौंपने देता है। उदाहरण के लिए, AFINN लेक्सिकॉन में "outstanding" शब्द का स्कोर +5 है, क्योंकि यह लगभग हमेशा सकारात्मक संदर्भ में उपयोग होता है। "grace" थोड़ा सकारात्मक शब्द है, और इसका स्कोर +1 है। "fraud" आमतौर पर नकारात्मक संदर्भ में आता है, और इसका स्कोर -4 है। AFINN स्कोर वाला डेटासेट get_sentiments("afinn") से मिलता है। आपकी सुविधा के लिए, unnested शब्द-डेटा और सेंटिमेंट लेक्सिकॉन को Spark में कॉपी कर दिया गया है।
आम तौर पर, आप कई समूहों के डेटा के सेंटिमेंट की तुलना करना चाहेंगे। ऐसा करने के लिए कोड पैटर्न इस प्रकार है।
text_data %>%
inner_join(sentiments, by = "word") %>%
group_by(some_group) %>%
summarize(positivity = sum(score))
एक inner join पहली टेबल के सभी मान लेता है और दूसरी टेबल में मिलान ढूँढता है। अगर मिलान मिलता है, तो दूसरी टेबल का डेटा जोड़ देता है। left join के विपरीत, यह वे पंक्तियाँ हटा देता है जिनका मिलान नहीं मिलता। सिद्धांत इस डायग्राम में दिखाया गया है।

left joins की तरह, inner joins भी mutating joins का प्रकार हैं, क्योंकि वे पहली टेबल में कॉलम जोड़ते हैं। देखें कि क्या आप अंदाजा लगा सकते हैं कि inner joins के लिए कौन-सा फंक्शन इस्तेमाल करना है, और कैसे करना है। (संकेत: इसका उपयोग left_join(), anti_join(), और semi_join() से काफ़ी मिलता-जुलता है!)
यह अभ्यास पाठ्यक्रम का हिस्सा है
R में sparklyr के साथ Spark परिचय
अभ्यास निर्देश
आपके लिए spark_conn नाम से एक Spark कनेक्शन बना दिया गया है। टाइटल शब्दों और सेंटिमेंट लेक्सिकॉन से जुड़ी tibbles, जो Spark में स्टोर हैं, क्रमशः title_text_tbl और afinn_sentiments_tbl के रूप में पहले से परिभाषित हैं।
title_text_tblसेsentimental_artistsनाम का एक वैरिएबल बनाइए।inner_join()का उपयोग करकेafinn_sentiments_tblकोtitle_text_tblके साथ"word"पर join कीजिए।artist_nameपर group कीजिए।- summarize करके
positivityनाम का वैरिएबल बनाइए, जोscoreफील्ड के sum के बराबर हो।
- सबसे नकारात्मक गीत शीर्षकों वाले टॉप 5 कलाकार ढूँढिए।
sentimental_artistsको positivity के बढ़ते क्रम में arrange कीजिए।- टॉप 5 परिणाम पाने के लिए
slice_maxका उपयोग कीजिए।
- सबसे सकारात्मक गीत शीर्षकों वाले टॉप 5 कलाकार ढूँढिए।
sentimental_artistsको positivity के घटते क्रम में arrange कीजिए।- टॉप 5 परिणाम पाइए।
इंटरैक्टिव व्यावहारिक अभ्यास
इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।
# 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
___