Kom igångKom igång gratis

Emotionell introspektion

I den här övningen går du bortom att dela upp text i positiva och negativa ord. Istället delar du upp texten efter var och en av de 8 emotionerna i Plutchiks känslohjul för att skapa en visualisering. Med det här tillvägagångssättet får du tydligare inblick i ordanvändningen genom att mappa till en specifik emotion, snarare än att bara klassificera som positiv eller negativ.

Med hjälp av tidytext-lexikonet "nrc" utför du en inner_join() med din text. Lexikonet "nrc" innehåller de 8 emotionerna plus termklasserna positiv och negativ. Du behöver alltså ta bort de positiva och negativa orden efter att du har utfört din inner_join(). Ett sätt att göra det är med negationen ! och grepl().

Funktionen grepl() returnerar True eller False beroende på om ett strängmönster identifieras i varje rad. I den här övningen söker du efter positiv ELLER negativ med hjälp av operatorn |, som representerar "eller" enligt exemplet nedan. Det lodräta strecket sitter oftast ovanför Enter-tangenten på tangentbordet. Eftersom negationen ! föregår grepl() vänds T och F om, så att "positive|negative" tas bort i stället för att behållas.

Object <- tibble %>%
  filter(!grepl("positive|negative", column_name))

Därefter använder du count() på de identifierade orden tillsammans med pivot_wider() för att organisera dataramen.

comparison.cloud() kräver att indata har radnamn, så du behöver konvertera den till en bas-R data.frame genom att anropa data.frame() med argumentet row.names.

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.

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)
Redigera och kör kod