Tidy Text 티블 만들기!
tidy 원칙을 학습한 내용을 바탕으로, 이 코드는 데이터를 티블(tibble)로 정리하여 tidyverse 안에서 작업할 수 있도록 도와줍니다!
앞서 TermDocumentMatrix() 객체에 tidy()를 적용하면 TDM을 티블로 변환할 수 있다는 것을 배웠습니다. 이번 연습 문제에서는 comments라는 리뷰 열에서 직접 단어 데이터를 생성합니다.
먼저 unnest_tokens()를 사용해 텍스트를 소문자로 변환하고 리뷰를 단어 단위로 토큰화합니다.
코퍼스의 각 그룹 내에서 원래 단어 순서를 보존하는 것이 유용할 때가 있습니다. 이를 위해 mutate()를 사용합니다. mutate() 안에서 seq_along()을 이용해 1부터 객체의 길이까지 숫자 시퀀스를 생성하면, 원문에 작성된 단어 순서를 그대로 보존할 수 있습니다.
tm 패키지에서는 removeWords()로 불용어를 제거했습니다. tidyverse에서는 먼저 불용어 사전을 불러온 후, tidy 텍스트 데이터 프레임과 불용어 사전 간에 anti_join()을 적용합니다.
이 연습은 강의의 일부입니다
R을 활용한 감성 분석
연습 안내
- 원본 리뷰 객체
bos_reviews를unnest_tokens()함수에 파이프(%>%)로 연결하여tidy_reviews를 생성하세요. 새 열 이름으로word를 전달하고comments열을 지정하세요. tidyverse에서는$나 따옴표가 필요하지 않습니다. - tidy 방식으로 새 변수를 만들어 보세요!
tidy_reviews를group_by에 파이프로 연결하고id열을 지정한 후,mutate()에 다시%>%로 연결하여tidy_reviews를 재작성하세요.mutate()안에서seq_along(word)와 같은 새 변수original_word_order를 생성하세요. - 티블
tidy_reviews를 출력하세요. data("stop_words")를 사용해 미리 준비된 "SMART" 불용어 사전을 R 세션에 불러오세요.- 원본
tidy_reviews를%>%로anti_join()에 연결하여tidy_reviews를 덮어쓰세요.anti_join()안에 미리 정의된stop_words사전을 전달하세요.
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
# 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 %>%
___(___)