शुरू करेंमुफ़्त में शुरू करें

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 के विपरीत, यह वे पंक्तियाँ हटा देता है जिनका मिलान नहीं मिलता। सिद्धांत इस डायग्राम में दिखाया गया है।

An inner join, explained using table of colors.

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
  ___
कोड संपादित करें और चलाएँ