Stressed Out!
V tomto cvičení upravíš seznam negativních slov tak, aby lépe odpovídal konkrétnímu textu, a pak porovnáš výsledky základního a vlastního skóre polarity().
Populární píseň od Twenty One Pilots se jmenuje "Stressed Out". Když si text prohlédneš, zjistíš, že jde o nostalgii za dětstvím. Většina lidí by řekla, že polarita je negativní – text opakovaně zmiňuje stres, obavy a přetvářku.
Porovnáme text písně pomocí výchozího slovníku subjektivity a také vlastního.
Nejdřív je potřeba ověřit, že slovník subjektivity key.pol hledaný výraz ještě neobsahuje. Jeden ze způsobů, jak to zkontrolovat, je funkce grep(), která vrátí řádky odpovídající zadanému vzoru. Příklad použití při indexování:
data_frame[grep("search_pattern", data_frame$column), ]
Jakmile se přesvědčíš, že slang nebo nové slovo ve slovníku key.pol zatím není, přidáš ho. Níže uvedený kód využívá sentiment_frame() k vytvoření nového slovníku. Funkce sentiment_frame() přijme původní vektor pozitivních slov positive.words a původní negative.words rozšířená o slangová slova "smh" a "kappa", která jsou považována za negativní. Kladné a záporné váhy lze nastavit ručně, ale výchozí hodnoty jsou 1 a -1, takže níže nejsou uvedeny.
custom_pol <- sentiment_frame(positive.words, c(negative.words, "hate", "pain"))
Teď můžeš aplikovat polaritu – bude vycházet z vlastního slovníku subjektivity!
Toto cvičení je součástí kurzu
Sentiment Analysis in R
Pokyny k cvičení
Proměnná stressed_out obsahuje text písně "Stressed Out" od Twenty One Pilots.
- Použij
polarity()nastressed_outa zjisti výchozí skóre. - Prohledej
key.pola najdi slova obsahující "stress". Použijgrep()k indexování datového rámce podle sloupcex. - Vytvoř
custom_poljako nový datový rámec pro analýzu sentimentu.- Zavolej
sentiment_frame()a předejpositive.wordsjako první argument bez přidávání nových výrazů. - Dále použij
c()k spojenínegative.wordss novými výrazy "stressed" a "turn back".
- Zavolej
- Znovu aplikuj
polarity()nastressed_outs dodatečným parametrempolarity.frame = custom_pola porovnej, jak nová slova změní skóre tak, aby lépe odráželo skutečné vyznění písně.
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
# stressed_out has been pre-defined
head(stressed_out)
# Basic lexicon score
___(___)
# Check the subjectivity lexicon
___[___("stress", x)]
# New lexicon
custom_pol <- ___(___, c(negative.words, "___", "___"))
# Compare new score
___(___, polarity.frame = ___)