Kom igångKom igång gratis

Jämför staplade stapeldiagram

Ett annat sätt att analysera din text är att undersöka hur stor del av ett eller flera dokument som består av positiva respektive negativa ord. En restaurangrecension kan till exempel innehålla positiva inslag som "maten var god", men sedan fortsätta med "restaurangen var smutsig, personalen var ohövlig och parkeringen var förfärlig." Det kan därför vara värdefullt att förstå hur stor andel av ett dokument som ägnas åt positivt respektive negativt språk. I det här exemplet skulle den negativa andelen vara högre än den positiva.

En metod för att göra detta är att räkna (count()) de positiva och negativa orden och sedan dividera med antalet identifierade subjektivitetsord. I restaurangexemplet räknas "god" som 1 positivt ord, medan "smutsig", "ohövlig" och "förfärlig" räknas som 3 negativa termer. En enkel beräkning ger att recensionen är 25% positiv och 75% negativ, eftersom det finns 4 subjektivitetsord totalt.

Börja med att utföra inner_join() på ett samlat tidy-dataframe som innehåller 4 böcker: Agamemnon, Oz, Huck Finn och Moby Dick. Precis som i föregående övning använder du filter() och grepl().

För att använda count() behöver du gruppera data efter bok och sedan sentiment. Alla positiva ord för Agamemnon måste till exempel grupperas och räknas separat, så att positiva ord från olika böcker inte blandas. Som tur är kan du skicka flera variabler direkt till count().

Den här övningen är en del av kursen

Sentimentanalys i R

Visa kurs

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

# Review tail of all_books
tail(all_books)

# Count by book & sentiment
books_sent_count <- all_books %>%
  # Inner join to nrc lexicon
  ___(___, by = c("term" = "word")) %>% 
  # Keep only positive or negative
  ___(__("___", sentiment)) %>% 
  # Count by book and by sentiment
  ___(___, ___)
  
# Review entire object
books_sent_count
Redigera och kör kod