(참고: str_replace_all()에 사용된 기호 \\W는 특수문자를 의미하는 '정규 표현식'. 정규 표현식을 이용하면 문장의 내용 중 이메일 주소, 전화 번호처럼 특정한 규칙으로 되어 있는 부분을 추출 가능)
■ 가장 많이 사용된 단어 알아보기
(1) 명사 추출하기
- KoNLP의 extractNoun()를 이용하면 문장에서 명사 추출 가능
- 명사를 보면 문장이 무엇에 대한 내용인지 파악 가능
extractNoun("대한민국의 영토는 한반도와 그 부속도서로 한다")
## [1] "대한민국" "영토" "한반도" "부속도서" "한"
(2) 빈도표 만들기
- 빈도표는 테이블(table) 형태이므로 다루기 쉽도록 데이터 프레임으로 변환하고 변수명을 수정
# 가사에서 명사 추출
nouns <- extractNoun(txt)
# 추출한 명사 list를 문자열 벡터로 변환, 단어별 빈도표 생성
wordcount <- table(unlist(nouns))
# 데이터 프레임으로 변환
df_word <- as.data.frame(wordcount, stringsAsFactors = F)
# 변수명 수정
df_word <- rename(df_word, word = Var1, freq = Freq)
(참고: extractNoun()은 출력 결과를 리스트 형태로 반환. table(unlist(nouns))는 리스트로 되어 있는 nouns를 빈도 테이블로 변환하는 기능을 함.)
(3) 자주 사용된 단어 빈도표 만들기
- 한 글자로 된 단어는 의미가 없는 경우가 많기 때문에 nchar()를 이용해 두 글자 이상으로 된 단어만 추출
df_word <- filter(df_word, nchar(word) >= 2)
(4) 상위 20개 단어 추출
- 빈도 순으로 정렬한 후 상위 20개 단어 추출
top_20 <- df_word %>%
arrange(desc(freq)) %>%
head(20)
top_20
## word freq
## 1 you 89
## 2 my 86
## 3 YAH 80
## 4 on 76
## 5 하나 75
.
.
.
- 텍스트가 힙합 가사이기 때문에 you, my, YAH 같은 영단어가 많이 사용됐다는 것을 알 수 있음
■ 워드 클라우드 만들기
워드 클라우드(Word cloud)란?
- 단어의 빈도를 구름 모양으로 표현한 그래프
- 단어의 빈도에 따라 글자의 크기와 색깔이 다르게 표현되기 때문에 어떤 단어가 얼마나 많이 사용됐는지 한 눈에 파악 가능
(1) 패키지 준비하기
- wordcloud 패키지 이용
- RColorBrewer 패키지 이용 (글자 색깔을 표현하는 데 사용) cf. RColorBrewer 패키지는 R에 내장되어 있으니 별도로 설치하지 않아도 됨
(2) 단어 색상 목록 만들기
- RColorBrewer 패키지의 brewer.pal()을 이용해 단어의 색깔을 지정할 때 사용할 색상 코드(Hex Color Code) 목록 생성
# Dark2 색상 목록에서 8개 색상 추출
pal <- brewer.pal(8, "Dark2")
(3) 난수 고정하기
- wordcloud()는 함수를 실행할 때마다 난수를 이용해 매번 다른 모양의 워드 클라우드를 생성함. 항상 동일한 워드 클라우드가 생성되도록 wordcloud()를 실행하기 전에 set.seed()로 난수를 고정
set.seed(1234)
(4) 워드 클라우드 만들기
- df_word 이용해 워드 클라우드 생성 (df_word는 단어와 단어가 사용된 빈도, 두 변수로 구성된 데이터 프레임)
- 출력된 워드 클라우드는 많이 사용된 단어일수록 글자가 크고 가운데에 배치
- 덜 사용된 단어일수록 글자가 작고 바깥쪽에 배치되는 형태로 구성
(5) 단어 색상 바꾸기
pal <- brewer.pal(9, "Blues")[5:9] # 색상 목록 생성
set.seed(1234) # 난수 고정
- 파란색 계열의 색상 목록을 만들어 빈도가 높을수록 진한 파란색으로 표현됨
+ 추가
★ 패키지를 로드했는데 에러 메시지가 출력된다면?
- 'Error : .onLoad failed in loadNamespace() for 'rJava'' 라는 에러 메시지가 출력됐다면 자바가 설치된 폴더의 경로를 설정하는 코드를 실행한 후 다시 패키지를 로드하세요. 설치 경로는 자바의 버전이나 OS에 따라 다를 수 있으니 'C:/Program Files/Java/' 에서 확인한 후 자신의 환경에 맞게 설정하세요.
# java 폴더 경로 설정
Sys.setenv(JAVA_HOME="C:/Program Files/Java/jre1.8.0_111/")