भावनात्मक आत्मविश्लेषण
इस अभ्यास में आप केवल positive और negative भाषा पर subsetting से आगे जाएँगे। इसके बजाय, आप Plutchik के emotional wheel की 8 भावनाओं में से प्रत्येक के आधार पर टेक्स्ट को subset करके एक विज़ुअल बनाएँगे। इस तरीके से, सिर्फ positive या negative की जगह किसी विशिष्ट भावना से मैप करके आपको शब्द-प्रयोग में अधिक स्पष्टता मिलेगी।
tidytext की subjectivity lexicon "nrc" का उपयोग करते हुए, आप अपने टेक्स्ट के साथ inner_join() करेंगे। "nrc" lexicon में 8 भावनाएँ होती हैं, साथ ही positive और negative term classes भी। इसलिए inner_join() के बाद आपको positive और negative शब्दों को हटाना होगा। ऐसा करने का एक तरीका negation ! और grepl() के साथ है।
"Global Regular Expression Print Logical" फंक्शन grepl() प्रत्येक पंक्ति में दिए गए string pattern के मिलने पर True या False लौटाता है। इस अभ्यास में आप | ऑपरेटर का उपयोग करते हुए positive या negative के लिए खोजेंगे, जो "or" को दर्शाता है, जैसा नीचे दिखाया गया है। अक्सर यह सीधी रेखा की (|) कुंजी कीबोर्ड पर Enter कुंजी के ऊपर होती है। चूँकि ! negation grepl() से पहले है, इसलिए T या F उलट जाता है और "positive|negative" को रखने के बजाय हटा दिया जाता है।
Object <- tibble %>%
filter(!grepl("positive|negative", column_name))
इसके बाद आप पहचाने गए शब्दों पर count() लगाएँगे और डेटा फ्रेम को व्यवस्थित करने के लिए pivot_wider() का उपयोग करेंगे।
comparison.cloud() को इनपुट में row names चाहिए होते हैं, इसलिए आपको इसे base-R data.frame में बदलना होगा, जहाँ data.frame() को row.names आर्गुमेंट के साथ कॉल करेंगे।
यह अभ्यास पाठ्यक्रम का हिस्सा है
R में Sentiment Analysis
इंटरैक्टिव व्यावहारिक अभ्यास
इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।
moby_tidy <- moby %>%
# Inner join to nrc lexicon
___(___, by = c("term" = "word")) %>%
# Drop positive or negative
___(!___("___", sentiment)) %>%
# Count by sentiment and term
___(___, ___) %>%
# Pivot sentiment, using n for values
___(names_from = ___, values_from = ___, values_fill = ___) %>%
# Convert to data.frame, making term the row names
data.frame(row.names = "___")
# Examine
head(moby_tidy)