library(learnr)
library(tidyverse)
library(tidytext)
library(biztextp)
library(wordcloud)

knitr::opts_chunk$set(echo = FALSE)

텍스트에 줄 번호 매기기

biztextp 패키지의 road 데이터를 이용하여 다음 문제를 풀어보시오. road 데이터는 Robert Frost의 The Road Not Taken(내가 가보지 못한 길)이라는 시이다.

road
  1. row_number() 함수는 행의 번호를 만드는 함수이다. 다음 명령을 수정하여 road 데이터에 linenumber라는 열 이름으로 줄 번호를 부여해 보시오. :
road %>% mutate(... = ...)
road %>% mutate(linenumber = row_number())
  1. 다음 명령을 수정하여 road 데이터에 연(verse) 별로 줄번 호를 부여해 보시오. 즉, verse가 같은 번호인 줄이 1번부터 차례로 줄번호가 매겨지면 된다. 줄 번호는 vlinenumber라는 열 이름을 부여하시오.:
road %>% 
  group_by(...) %>%
  mutate(... = ...)
road %>% 
  group_by(verse) %>%
  mutate(vlinenumber = row_number())
  1. road 데이터의 verse 별 행 수를 세어 출력해 보시오.
road %>% count(...)
road %>% count(verse)

unnest_tokens()로 단어 추출 연습 문제

biztextp 패키지의 road 데이터를 이용하여 다음 문제를 풀어보시오.

  1. 다음 명령을 수정하여 road 데이터의 text 열을 단어로 토큰화하시오. 토큰화된 결과는 word라는 열 이름을 부여하시오. 토큰화한 결과를 tidy_road라는 변수에 할당하시오.:
tidy_raod <- road %>% unnest_tokens(output = ..., input = , token = "words")
tidy_road
tidy_road <- road %>% unnest_tokens(output = word, input = text, token = "words")
tidy_road
tidy_road <- road %>% unnest_tokens(output = word, input = text, token = "words")
  1. 다음 명령을 수정하여 토큰화한 결과인 tidy_road를 이용하여 각 연(verse)의 단어 수를 출력해 보시오.:
tidy_road %>% count(...)
tidy_road %>% count(verse)
  1. 다음 명령을 수정하여 토큰화한 결과인 tidy_road를 이용하여 단어의 빈도표를 출력해 보시오. 단, 가장 빈도수가 높은 단어가 위에 나오도록 하시오.:
tidy_road %>% count(..., sort = ...)
tidy_road %>% count(word, sort = TRUE)
  1. 다음 명령을 수정하여 tidy_road를 이용하여 빈도수가 3 이상인 단어들에 대해서만 빈도표를 출력해 보시오.:
tidy_road %>% count(...) %>%
  filter(... >= ...) 
tidy_road %>% count(word) %>%
  filter(n >= 3) 
  1. 다음 명령을 수정하여 tidy_road를 이용하여 빈도수가 3 이상인 단어들에 대해서 단어의 빈도에 대한 막대그래프로 그려보시오.:
tidy_road %>% count(...) %>%
  filter(... >= ...) %>%
  ggplot() + geom_col(aes(..., ...))
tidy_road %>% count(word) %>%
  filter(n >= 3) %>%
  ggplot() + geom_col(aes(word, n))

불용어 제거 연습 문제

앞 단계 연습 문제의 결과인 tidy_road를 이용하여 다음 문제를 풀어보시오. tidytext 패키지의 stop_words 데이터는 불용어 사전이다.

stop_words
  1. stop_wrods의 모든 단어를 사용하여 tidy_road의 불용어를 제거해 보시오. 제거한 결과는 이후 작업에 사용하기 위해 tidy_road에 다시 재할당하시오.
tidy_road <- tidy_road %>% anti_join(...)
tidy_road
tidy_road <- tidy_road %>% anti_join(stop_words)
tidy_road
tidy_road <- road %>% 
  unnest_tokens(output = word, input = text, token = "words") %>% 
  anti_join(stop_words)
  1. 다음 명령을 수정하여 불용어를 제거한 결과인 tidy_road를 이용하여 단어의 빈도수를 출력해 보시오. 단, 가장 빈도수가 높은 단어가 위에 나오도록 하시오.:
tidy_road %>% count(..., sort = ...)
tidy_road %>% count(word, sort = TRUE)

워드 클라우드 연습 문제

wordcloud 패키지를 이용하여 워드 클라우드를 그려본다.

  1. 다음 명령을 수정하여 불용어를 제거한 결과인 tidy_road를 이용하여 워드 클라우드를 그려보시오. 단, 단어 빈도가 1 이상인 단어는 모두 그리시오. :
tidy_road %>% count(...)
  with(wordcloud(..., ..., min.freq = ...))
tidy_road %>% count(word) %>%
  with(wordcloud(word, n, min.freq = 1))
  1. 앞의 워드클라우드에 brewer.pal() 함수를 사용하여 "Dark2" 팔레트를 사용하여 3가지 색상으로 단어를 그려 보시오.(현재 단어 빈도가 1과 2인 단어밖에 없어서 두 가지 색상만 나올 것이다.):
tidy_road %>% count(...)
  with(wordcloud(..., ..., min.freq = ..., colors = brewer.pal(..., ...)))
tidy_road %>% count(word) %>%
  with(wordcloud(word, n, min.freq = 1, colors = brewer.pal(3, "Dark2")))


kilhwan/biztextp documentation built on May 24, 2023, 3:35 p.m.