파이썬 워드클라우드, 이쁘게 그리는 방법은?!

2021. 9. 7. 09:49

빅데이터가 많은 사람들에게 관심을 받기 시작할 때 많이 볼 수 있었던 것 중에 하나로 워드 클라우드가 있다. 워드 클라우드는 단어별 빈도수를 기준으로 한 단순한 시각화에 불과하지만, 그림이 이쁘게 나오기 때문에 많은 사람들이 좋아하는 듯 하다. 이렇 듯 이쁘게 그리는 게 생명인 워드 클라우드이지만, 파이썬의 워드클라우드 관련 패키지인 pytagcloud로는 이쁘게 그리기가 쉽지 않다. 오늘은 워드 클라우드를 파이썬에서 이쁘게 그리는 방법에 대해서 알아보도록 하겠다.

 

 

파이썬 워드클라우드

 

 

누군가도 이런 고민이 있었는지 워드클라우드를 이쁘게 그릴 수 있는 stylecloud라는 패키지를 개발했다. pip install 명령으로 쉽게 stylecloud를 설치할 수 있다.

> pip install stylecloud

 

그리는 방법은 어렵지 않다. get_stylecloud라는 함수를 호출하면 된다. 워드클라우드를 넣을 데이터는 텍스트 파일이나 딕셔너러 자료형으로 넣어주면 된다. 연준 통화정책 보고서의 내용을 복붙해서 워드클라우드를 그려보았다.
( 참조: https://www.federalreserve.gov/monetarypolicy/2019-07-mpr-summary.htm )

 

stylecloud.gen_stylecloud(file_path="test.txt",
                          icon_name="fas fa-dog",
                          palette="colorbrewer.diverging.Spectral_11",
                          background_color='black',
                          gradient="horizontal",
                          output_name="test.png")

 

파이썬 워드클라우드 1

 

 

필자의 블로그의 내용도 워드 클라우드로 그려 보았는데, 한글이 깨져서 나온다. 외국에서 개발한 패키지라 한글 처리가 잘 되지 않는다. 하지만 폰트를 지정할 수 있기 때문에, 한글 폰트를 지정하면 한글로도 어렵지 않게 그릴 수 있다. 배달의 민족에서 한글 폰트를 받아서, 그려보았다.

 

 

블로그 워드클라우드

 

 

형태소를 분리하지 않았기 때문에 띄어쓰기를 기준으로 워드 클라우드가 그려졌다. 군데군데 중복되는 단어들이 있는 것을 알 수 있다. 이전에 konlpy로 형태소를 분리하고 워드클라우드를 그리는 것을 포스팅한 적이 있는데, 동일하게 형태소를 분리하고 워드클라우드를 그리는 것이 좋겠다.

 

형태소를 분리한 데이터를 넣을 때는 딕셔너리 자료형을 이용해야 한다. 아래와 같은 형태로 넣어두면 되겠다.

text= {"E":5, "b":10}

stylecloud.gen_stylecloud(text=text, output_name="ttt.png")

 

스타일 클라우드를 이용하면 이렇게 단 몇 줄의 코드로 이쁜 워드클라우드를 그릴 수 있다. 파이썬의 효율성을 잘 보여주는 패키지인 듯 하다. 몇 가지 입력파라미터를 이용하면 원하는 모습으로 출력이 가능하다. 끝으로 중요한 입력파라미터를 몇 개 정리해 보았다.

- file_path: 입력할 데이터를 텍스트 문서로 지정합니다.
text: 입력할 데이터를 딕셔너리 자료형으로 지정합니다.
font_path: 워드클라우드를 그릴 path를 지정합니다.
size: 사이즈를 지정, (1024, 512)과 같은 형식으로 입력합니다.
background_color: 배경색을 지정한다. 색이름을 입력하면 된다. ( 예) white )
icon_name: 어떤 모양으로 그릴 지 입력합니다. fab fa-twitter(트워터 모양), fas fa-dog(강아지), fas fa-flag(깃발), fas fa-fish(물고기) 등이 있다. 띄어쓰기 앞은 폰트를 의미하고, 뒤에는 모양을 의미한다. 그릴 수 있는 모양은 가지수가 좀 많은데, stylecolud패키지가 설치된 폴더에서 static폴더 밑에 fontawesome.min.css파일을 확인하면 알 수 있다.
font_path: 폰트를 지정한다.
output_name: 결과를 파일로 저장한다.

 

 

파이썬을 이용해서 워드클라우드를 그리려는 분들에게 도움이 됐기를 바란다.

댓글()