빅데이터가 많은 사람들에게 관심을 받기 시작할 때 많이 볼 수 있었던 것 중에 하나로 워드 클라우드가 있습니다. 워드 클라우드는 단어별 빈도수를 기준으로 한 단순한 시각화에 불과하지만, 그림이 이쁘게 나오기 때문에 많은 사람들이 좋아합니다. 이쁘게 그리는 게 생명인 워드 클라우드이지만, 파이썬 워드 클라우드 패키지인 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")

 

 

워드클라우드-결과
파이썬-워드-클라우드

 

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

 

파이썬-워드클라우드-한글
워드-클라우드


형태소를 분리하지 않았기 때문에 띄어쓰기를 기준으로 워드 클라우드가 그려졌습니다. 군데군데 중복되는 단어들이 있는 것을 볼 수 있는데요. 이전에 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: 결과를 파일로 저장합니다

  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기