Utwórz porządny tibble z tekstem!
Skoro zapoznałeś się już z zasadami tidy data, ten kod pomoże ci zorganizować dane w tibble, dzięki czemu będziesz mógł pracować w środowisku tidyverse!
Wcześniej nauczyłeś się, że zastosowanie tidy() na obiekcie TermDocumentMatrix() przekształca TDM do postaci tibble. W tym ćwiczeniu stworzysz dane słowne bezpośrednio z kolumny recenzji o nazwie comments.
Na początku użyj funkcji unnest_tokens(), aby zamienić tekst na małe litery i podzielić recenzje na pojedyncze słowa (tokeny).
Czasem przydaje się zachowanie oryginalnej kolejności słów w każdej grupie korpusu. Możesz to zrobić za pomocą funkcji mutate(). Wewnątrz mutate() użyj seq_along(), aby utworzyć sekwencję liczb od 1 do długości obiektu. Dzięki temu zachowasz kolejność słów taką, jak w oryginalnym tekście.
W pakiecie tm do usuwania słów stopu używa się funkcji removeWords(). W tidyverse najpierw musisz załadować leksykon słów stopu, a następnie zastosować anti_join() między ramką danych tidy text a listą słów stopu.
To ćwiczenie jest częścią kursu
Analiza sentymentu w R
Instrukcje do ćwiczenia
- Utwórz
tidy_reviews, przekazując potokiem (%>%) oryginalny obiekt z recenzjamibos_reviewsdo funkcjiunnest_tokens(). Przekaż nową nazwę kolumny,word, i wskaż kolumnęcomments. Pamiętaj, że w tidyverse nie potrzebujesz$ani cudzysłowów. - Utwórz nową zmienną w stylu tidy! Nadpisz
tidy_reviews, przekazująctidy_reviewspotokiem dogroup_byz kolumnąid. Następnie znów użyj%>%i przekaż wynik do funkcjimutate(). Wewnątrzmutateutwórz nową zmiennąoriginal_word_orderrównąseq_along(word). - Wydrukuj tibble
tidy_reviews. - Załaduj gotowy leksykon słów stopu „SMART" do sesji R za pomocą
data("stop_words"). - Nadpisz
tidy_reviews, przekazując oryginalnytidy_reviewspotokiem (%>%) do funkcjianti_join(). Wewnątrzanti_join()przekaż gotowy leksykonstop_words.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# Vector to tibble
tidy_reviews <- bos_reviews %>%
___(___, ___)
# Group by and mutate
tidy_reviews <- tidy_reviews %>%
___(___) %>%
___(original_word_order = ___(___))
# Quick review
___
# Load stopwords
___
# Perform anti-join
tidy_reviews_without_stopwords <- tidy_reviews %>%
___(___)