본문 바로가기

데이터분석 저장소/R 저장소

워드클라우드

WordCloud

WordCloud

Woonn

2020-05-07


0. 워드클라우드란?

자료의 빈도를 시각적으로 나타내는 시각화 방법중 하나로 키워드, 개념 등을 직관적으로 파악할 수 있다는 것이 가장 큰 장점입니다. 보통 문서나 수집한 비정형 데이터의 특징을 도출하기 위해 사용합니다.


2. 워드클라우드


2.1 데이터 준비

## [1] "지난 29일 서울 용산구 용산전자상가에 위치한 전자랜드 상가 내부가 손님들의 발길이 뜸한 가운데 한산한 모습을 보이고 있다. 이우중 기자 “당장 밖을 보세요, 사람이 있나. 지나가는 사람이 있어야 (물건을) 살 사람도 있죠 .” \n \n 지난 29일 찾은 서울 용산구 용산전자상가는 휑하다 못해 적막감마저 들었다. 주말이라 일부 상가 건물이 문을 닫는다는 .."
## [2] "서울 강남구 삼성역 일대가 대기업 계열 호텔의 격전지로 떠오르고 있다. 지에스(GS)그룹, 에이치디씨(HDC)그룹에 이어 삼성그룹까지 가세하면서 비즈니스 고객을 사로잡기 위한 경쟁이 치열해질 것으로 보인다.\n\n호텔신라는 4월1일부터 삼성역 인근에 비즈니스호텔인 ‘신라스테이 삼성’의 영업을 개시한다고 31일 밝혔다. 지하 3층~지상 21층 건물에 총 30.."
## [3] "영국에서 입국한 2명이 광주광역시에서 신종 코로나바이러스 감염증(코로나19) 확진 판정을 받았다. 2명의 추가 확진자들은 전용 공항버스와 KTX를 이용해 광주로 이동했다. \n \n 31일 광주시에 따르면 지난 29일 영국에서 입국한 2명이 코로나19 진단검사에서 '양성' 판정을 받았다. 광주 21번째 확진자 A씨(43 여)와 22번째 확진자 B씨(20 여.."               
## [4] "외교부가 1989년도 생산된 외교 문서의 기밀을 해제하면서 그해 세간을 떠들썩하게 했던 임수경 무단 방북 사건 관련 문서는 비공개해 논란이 일고 있다. \n \n 31일 외교부는 총 1577권(23만 6900여 쪽) 분량의 외교 문서의 기밀을 해제했다. 그런데 그해 언론의 이목이 쏠렸던 임수경씨 방북 사건 관련 문서는 정작 극히 일부만 포함됐다. \n \n 임.."          
## [5] "오늘 코스피 시장에서 외국인이 많이 순매도한 종목은 삼성전자우(005935), KODEX 200, SK텔레콤(017670), 삼성전자(005930), S-Oil(010950)등이다. \n \n(금액: 억원)순위종목명금액주가 등락률연관 섹터1삼성전자우(005935)297.33-0.87%반도체와 반도체 장비2KODEX 200262.89+1.77%[코스피 상승에.."                                                          
## [6] "오늘 코스닥 시장에서 외국인이 많이 순매도한 종목은 씨젠(096530), 아난티(025980), 고영(098460), 케이엠더블유(032500), 대아티아이(045390)등이다. \n \n(금액: 억원)순위종목명금액주가 등락률연관 섹터1씨젠(096530)192.86-8.18%[유전체검사]2아난티(025980)67.93+29.95%[금강산 관광]3고영(098.."


2.2 명사추출

extraNoun으로 명사를 추출합니다. sapply()함수를 활용하며, sapply는 기본적으로 sapply(data, function)의 구조를 갖습니다. 또 칼럼명은 필요없으니 USE.NAMES = F를 추가합니다.


sapply 함수는 기본적으로 list형태로 반환합니다.

## [1] "list"


이에 unlist()를 사용해서 벡터로 변환해줍니다.

## [1] "character"


해당 단어들의 빈도수를 나타내기 위해 table 형태로 바꿔줍니다.

## data_unlist
##            '2020년판      '2020도쿄올림픽 '5080시니어케어보험' 
##                    1                    1                    1 
##                'KT&G  'KTX속초역(가칭)'도                  'L7 
##                    1                    1                    1


해당 기간동안 뽑아낸 기사는 5547건으로 큰 데이터는 아닙니다. 하지만 일반적으로 워드클라우드에 사용하는 텍스트는 상당히 많아서 모두 집어넣고 돌리면 컴퓨터가 멈춰버릴 겁니다. 그래서 내림차순으로 정렬하고 상위 200개 단어만 뽑아서 사용하겠습니다.

## data_unlist
##               한               등             신종         바이러스 
##             4133             2297             1778             1658 
##               것             관광               명           코로나 
##             1634             1602             1511             1487 
##               해               일             정부               년 
##             1349             1346             1293             1214 
##               수               시               원               이 
##             1128             1112             1112             1063 
##               적               들             확산             중국 
##              963              956              913              908 
##                2             경제               월               중 
##              880              833              813              769 
##               부             지역                1                4 
##              758              725              724              710 
##                3             입국             제주               만 
##              698              697              697              682 
##             사업               코               전             시장 
##              682              625              619              611 
##             이날           대통령             국내         코로나19 
##              608              603              588              585 
##               대           관광객               억               개 
##              560              559              556              544 
##                5             추진             여행             북한 
##              530              524              521              515 
##             지원             하기             세계             관련 
##              515              505              503              500 
##             미국             들이             서울             올해 
##              489              475              461              460 
##               말                6             사태           감염증 
##              456              452              446              444 
##               10             방문               본           중국인 
##              439              432              426              422 
##             코스               번             폐렴           지난해 
##              420              417              417              414 
##               12             문재             오전             오후 
##              409              403              398              398 
## 감염증(코로나19)             경기               미             문화 
##              394              392              380              361 
##             환자             기업               위             외국 
##              361              354              353              349 
##               △             개별               내             대책 
##              348              348              346              346 
##                9             남북               분               11 
##              336              334              333              331 
##             감염             발표               곳             종목 
##              330              329              328              325 
##             발생             대응             도시             테마 
##              324              322              321              321 
##               문               장             한국               20 
##              319              318              315              311 
##             상황             우려             자료                7 
##              308              302              302              297 
##             대표             조치             확인               19 
##              297              293              291              289 
##             대구               주           가운데               스 
##              288              288              287              285 
##             우한             회의             시작             운영 
##              284              284              277              277 
##               23                8             방역               자 
##              276              272              272              270 
##           외국계               17             중단             우리 
##              268              265              265              262 
##             장관             부산             확진               도 
##              260              259              259              258 
##               차               30         확진자가               세 
##              255              251              251              248 
##             국제             대상             이번               달 
##              245              244              242              241 
##             국민             기록               15             확대 
##              239              239              237              236 
##               18             산업             외교             이후 
##              231              231              231              231 
##               때               ”               두           지난달 
##              230              229              228              228 
##               16             국가               21             선정 
##              225              223              222              222 
##             축제             전국             금지             해당 
##              220              219              216              216 
##             격리             전망             협력             계획 
##              214              213              213              211 
##             최대               성             때문               14 
##              211              208              205              204 
##             판정               27             기획             국회 
##              204              202              201              200 
##               28             이상               24             조성 
##              199              199              197              196 
##               뒤             마련             지정               나 
##              195              195              195              194 
##             특별               닥             대북             보도 
##              194              193              192              192 
##             사람             안전               산             영향 
##              192              192              190              190 
##           마스크               조      감염증(우한               동 
##              189              189              188              188 
##           한국인             상위             추가             해리 
##              188              187              185              185 
##             규모             대사               데               피 
##              183              183              182              182 
##               25             시간               화               13 
##              180              180              179              177


wordcloud() 에는 데이터와 빈도수가 파라미터로 들어갑니다. names()를 이용하면 table의 제목을 벡터형식으로 뽑아낼 수 있는데 이를 data로 넣고 table 내용물은 그대로 빈도수(freq)에 넣습니다.


아직 완벽하진 않지만, 워드 클라우드 형태가 보입니다.


3. 등록


3.1 신조어 추가


텍스트 데이터의 경우, 신조어가 하루가 다르게 만들어지고 있으며 이것이 결과물을 해석하는데 중요한 척도가 될 수 있습니다. 관광기사의 경우, 혼여족, 욜로(YOLO), 숙박앱 등의 신조어가 포함됩니다. 이처럼 사전에 없는 단어들을 파악하지 못한다면, 해당 텍스트마이닝은 반쪽짜리가 될 것입니다.

## 1 words were added to dic_user.txt.


3.2 불용어 처리


또 일반적인 단어는 2글자 이상인 경우가 많으며 잘못 분리되서 나온 데, 등, 도 등의 의존명사가 있기 때문에 최소 글자수를 2글자 이상으로 설정해 줍니다.


잘못 정제된 단어도 있습니다. 해당 문서의 경우 대통이라는 단어가 등장합니다. 이는 대통령 이라는 단어에서 잘못 정제되었을 가능성이 높습니다. 또 문재, 광화라는 단어도 나타나는데 이는 문재인에서 문재 + 인 으로, 광화문에서 광화 + 문으로 나뉜 결과입니다. 그리고 한자나 특수문자 등도 분석에 방해가 됩니다. 따라서 잘못 정제된 단어를 gsub을 통해 정확한 단어로 변환합니다. gsub("수정할 단어", "수정 후 단어", data)의 형태를 갖습니다.


str_replace_all을 사용할 수도 있습니다. 정규식을 활용하여 특수문자, 자.모음 등의 의미없는 글자를 삭제해 줍니다. str_raplace_all(data, pattern = "수정할 단어", replacement = "수정 후 단어")의 형태를 갖습니다.


데이터 정제 과정이 끝났으면 처리한 데이터를 다시 워드 클라우드에 필요한 형태로 만들어 줍니다.

## data_unlist
##                                으로        C      CES 
##    11684      992       83        2        1        1
## data_unlist
##                    코로나         신종     바이러스         관광         정부 
##        11684         2075         1780         1658         1602         1293 
##                      확산         중국         경제       제주도         지역 
##          992          913          909          833          750          725 
##         입국         사업         시장     대통령령         국내       확진자 
##          697          682          611          603          588          588 
##       관광객         추진         여행         북한         지원         세계 
##          560          524          522          516          515          503 
##         관련         미국         서울         올해         사태       감염증 
##          500          491          461          460          446          444 
##         방문       중국인         코스 감염증코로나         폐렴       지난해 
##          432          422          420          418          417          414 
##       문재인         오전         오후         경기         환자         문화 
##          403          398          398          392          369          361 
##         기업         외국         개별         대책         남북         감염 
##          354          349          348          347          334          330 
##         발표         종목         발생         대응         도시         테마 
##          329          325          324          322          321          321 
##         한국         상황         우려         자료         대표         조치 
##          315          308          302          302          297          293 
##         확인         대구       가운데         우한         회의         시작 
##          291          288          287          286          284          277 
##         운영         방역       외국계         중단         우리         확진 
##          277          272          268          265          262          262 
##         장관         부산         국제         대상         국민         기록 
##          260          259          245          244          239          239 
##         확대         산업         외교         이후       지난달         국가 
##          236          231          231          231          228          225 
##         선정         축제         전국         금지         해당         격리 
##          222          220          219          216          216          214 
##         전망         협력         계획         최대         판정         기획 
##          213          213          212          211          204          201 
##         국회         이상         조성         마련         지정         특별 
##          200          199          196          195          195          194 
##         사람         대북         보도         안전         영향       마스크 
##          193          192          192          192          190          189 
##   감염증우한       한국인         상위         추가         해리         규모 
##          188          188          187          185          185          183 
##         대사         시간         개발         뉴스         영화         예정 
##          183          180          177          175          175          175 
##         진행         여성         하게         거래         재정         정책 
##          173          172          172          171          170          169 
##         업계         강화         대비         필요         주요         행사 
##          167          164          164          164          162          162 
##       활성화         시민         문제         분야         평화         방안 
##          162          161          160          158          158          156 
##         개최         실제       국무부         취소         통일         해외 
##          154          154          153          152          151          151 
##       공매도         관계         제재       서비스         공사       관광지 
##          150          150          150          148          147          147 
##         개선         사회         내용       외국인         제한         포함 
##          146          146          145          145          145          145 
##         경북       크루즈         수치         금강         기준         설명 
##          144          144          143          140          140          140 
##         업무         오늘         개사       가능성         본부       증권사 
##          140          140          139          138          136          136 
##         순수         입장         투입       추정치         추출         긴급 
##          135          135          135          134          134          133 
##       부총리         소비         항공         검토         의원         결과 
##          133          133          133          132          131          130 
##         연합         호텔   문화체육관         발언         접촉         여파 
##          130          130          129          129          129          128 
##         유치         주한         광부         마을         센터         단체 
##          128          128          127          127          127          126 
##       관계자       어려움         주민         경우       청와대         결정 
##          124          124          124          123          123          122 
##     기자회견         육성 
##          122          122


4. 출력


RColorBrewer에서 사용할 수 있는 색상이 표시됩니다. 전체 색상을 보고 싶으면 다음을 실행합니다.


set별 이름과 색상이 보이는데, 여기서 사용하고 싶은 set을 선택합니다.


폰트는 a한글사랑L 폰트를 사용해 보겠습니다.


5. 결과


위 과정을 종합해 워드클라우드를 출력해보겠습니다.


간단하게 출력해 보았습니다. 검색어인 관광보다도 코로나신종, 바이러스 등이 더 많은 비중을 차지하고 있는 것을 볼 수 있습니다. 코로나19는 이제 전 지구적인 이슈로, 여러 분야에 영향을 미쳤으며 관광 분야에도 큰 영향을 미쳤음을 직관적으로 알 수 있습니다. 보다 의미있고 보기좋은 워드클라우드를 만들기 위해서는 위의 전처리 작업을 확실히 수행해줘야 합니다. 본인이 수집한 데이터에 알맞는 전처리를 통해 보기 좋은 워드클라우드를 만들도록 합니다.