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
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