IniziaInizia gratis

Confronta e metti a contrasto un grafico a barre impilate

Un altro modo di segmentare il testo è capire quanto del/dei documento/i è composto da parole positive o negative. Per esempio, una recensione di un ristorante può includere aspetti positivi come "the food was good" ma poi continuare con "the restaurant was dirty, the staff was rude and parking was awful." Di conseguenza, potresti voler capire quanta parte di un documento è dedicata a linguaggio positivo vs negativo. In questo esempio, la percentuale di negativo sarebbe più alta rispetto al positivo.

Un metodo per farlo è count() delle parole positive e negative, poi dividere per il numero di parole di soggettività identificate. Nell’esempio della recensione del ristorante, "good" conterebbe come 1 positiva e "dirty", "rude" e "awful" come 3 termini negativi. Un semplice calcolo ti porterebbe a concludere che la recensione è positiva al 25% e negativa al 75%, dato che ci sono 4 termini di soggettività.

Inizia eseguendo l’inner_join() su un data frame tidy unificato contenente 4 libri: Agamemnon, Oz, Huck Finn e Moby Dick. Proprio come nell’esercizio precedente userai filter() e grepl().

Per eseguire count() devi raggruppare i dati per libro e poi per sentiment. Per esempio, tutte le parole positive per Agamemnon devono essere raggruppate e poi conteggiate, in modo che le parole positive di tutti i libri non si mescolino. Per fortuna, puoi passare più variabili direttamente a count().

Questo esercizio fa parte del corso

Sentiment Analysis in R

Visualizza il corso

Esercizio pratico interattivo

Prova a risolvere questo esercizio completando il codice di esempio.

# 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
Modifica ed esegui il codice