이번에는 워드 클라우드를 만들어 보는 예제입니다.
기본 데이터는 위키피디아의 클라우드 컴퓨팅에 대한 내용을 사용했습니다.
관련링크 : https://ko.wikipedia.org/wiki/클라우드_컴퓨팅
위 링크에서 텍스트 부분만 긁어서 기본 데이터 txt 파일을 만든 뒤에
C:\rwork라는 폴더에 cloudcomputing.txt라는 이름으로 저장합니다.
여기까지 준비가 되었으면 예제를 실습할 준비가 완료되었습니다.
▶ 작업 디렉토리 지정 / 패키지 설치 / library 로딩
> setwd("c:\\rwork") #작업 디렉토리 지정
> install.packages("KoNLP") #KoNLP 패키지 설치
> install.packages("wordcloud") #wordcloud 패키지 설치
> library(KoNLP) #KoNLP 패키지 로딩
> library(wordcloud) #wordcloud 패키지 로딩
> useSejongDic() #한글 사전 사용
▶ 텍스트파일 읽기 / 명사만 저장 / 데이터 확인
> data1 <- readLines("cloudcomputing.txt") #텍스트파일을 읽어서 data1 변수에 저장
> data1 #data1에 저장된 내용 확인
> data2 <- sapply(data1,extractNoun,USE.NAMES = F) # data1에서 명사만 data2에 저장
> data2 #data2에 저장된 내용 확인
data1, data2의 내용은 어떻게 문서를 긁어왔느냐에 따라서 제가 작업한 내용과 조금 다를 수도 있습니다.
정확한 작업을 위해서 중간중간 데이터를 확인해 주시기 바랍니다.
아래는 작업과 관련한 R Studio 캡처 화면입니다.
Environment 창에 변수 할당 내역이 표시되고 하단 Files 창에 보시면 현재 작업 폴더와 폴더 내의 파일들을 확인할 수 있습니다.
▶ 두글자 이상 단어 필터링 / 숫자, 영문, 괄호 제거
> data3 <- unlist(data2) #두글자 이상 필터링을 위해 unlist작업하여 저장
> data3 <- Filter(function(x) {nchar(x) >= 2}, data3) # 두 글자 이상 단어만 저장
> data3 #data2에 저장된 내용 확인, 변경된 걸 확인하실 수 있을 겁니다.
> data3 <- gsub("\\d+", "", data3) #숫자 제외, 정규식
> data3 <- gsub("\\(", "", data3) # (괄호 제외
> data3 <- gsub("\\)", "", data3) # )괄호 제외
> data3 <- gsub("[A-Za-z]", "", data3) # 영문 제외, 정규식
gsub이라는 함수는 특정 문자열을 찾아서 치환합니다.(이건 예제이기 때문에 단어부분 제거는 생략했는데 실제로 데이터 분석을 하신다면 데이터를 확인하면서 제외할 부분을 더 작업해 주셔야 합니다.)
숫자와 영문을 찾아서 제거하는 데에는 정규식이 사용되었습니다.
정규식에 대해서는 간단한 내용만 다시 다뤄보겠습니다.
▶ 파일로 분석결과 보내기 / 공백 제거 / 단어별 빈도 확인
> write(unlist(data3), "cloudcomputing2.txt") #data3를 txt파일로 저장
> data4 <- read.table("cloudcomputing2.txt") #read.table로 읽으면서 공백 제거
> wordcount <- table(data4) # 단어별 count
> wordcount # 단어별 count 확인
공백을 제거하는 방법으로는 txt 파일로 그때까지의 분석 결과를 저장한 후에 read.table로 읽어들이면서 공백을 제거하는 방법을 사용했습니다.
data4의 경우 공백이 제거된 데이터이고 이 상태에서 단어별 빈도인 wordcount를 파악합니다.
▶ 컬러 설정 / 워드 클라우드 출력
> library(RColorBrewer) #컬러 출력 라이브러리 로딩
> palete <- brewer.pal(9, "Set1") # 글자 색깔 지정
> wordcloud(names(wordcount), freq=wordcount, scale=c(5,1),rot.per = 0.1,
+ min.freq=1,random.order=F, color=T, colors=palete)
wordcount 분석 결과를 바탕으로 실제 출력을 하는 부분입니다.
출력 부분에서는 여러가지 변수 부분을 변경하면서 실제 결과가 어떻게 나오는지 확인해 보세요.
▶ 아래는 출력 부분 캡처
몇 가지 잘못된 부분 보이시죠?(%와, 제, 상의 등)
그래서 중간중간 변수명+엔터로 작업내용을 잘 확인해 주셔야 합니다.
》 다음글 예고 : R 기초문법
'프로그래밍 > 데이터분석' 카테고리의 다른 글
특정단어 언급한 트위터 데이터 가져오기 (0) | 2017.06.25 |
---|---|
R Studio를 통해 트위터 데이터 가져오기(2) (2) | 2017.04.10 |
R Studio를 통해 트위터 데이터 가져오기(1) (0) | 2017.04.09 |
SNS 여론 추이 분석 서비스 - 소셜메트릭스(SOCIAL metrics) (0) | 2015.12.08 |
R Studio 설치하기 (0) | 2015.09.07 |