파이썬 시각화 - 워드클라우드(WordCloud)
Konlpy로 명사의 빈도수를 구한다음 이를 보기 쉽게 시각화하는 방법중 하나로 워드클라우드가 있습니다. 빈도수가 많은 단어는 크게 적은 단어는 작제 표현되기 때문에 한눈에 정보를 파악하기 쉬운 시각화 방법중에 하나입니다.
라이브러리
아래 워드클라우드 라이브러리를 사용합니다. 설치 후 사용할 수 있습니다.
worldcould
pip install wordcloud
사용법
텍스트
간단하게 워드클라이드를 테스트해보겠습니다.
워드 클라우드 객체를 하나 생성하는데 이때 한글을 사용하려면 폰트를 반드시 지정해주도록 합니다. 영문은 폰트지정을 하지 않아도 정상 출력됩니다.
다음은 워드클라우드 객체에 generate를 사용하여 텍스트 자체를 전달한뒤 to_file을 사용하여 그림파일로 생성하면 아래와 같은 결과를 확인 할 수 있습니다.
from wordcloud import WordCloud
wc = WordCloud(font_path='C:\\Windows\\Fonts\\HMKMRHD.TTF',\
background_color='white',)
wc.generate("동해물과 백두산이 마르고 닳도록 "
"하느님이 보우하사 우리나라 만세 "
"무궁화 삼천리 화려강산 대한사람 "
"대한으로 길이 보전하세")
wc.to_file("wc.png")
빈도수
다음은 빈도수에 따른 워드 클라우드 생성법입니다. 빈도수에 대한 데이터는 아래와 같은 형식으로 일반적으로 Counter의 most_common을 사용하면 나오는 출력 형태 입니다.
워드클라우드 객체의 geneate_from_frquencies를 사용하여 아래와 같이 데이터를 전달해 주면 원하는 결과를 얻을 수 있습니다.
wc = WordCloud(font_path='C:\\Windows\\Fonts\\HMKMRHD.TTF',\
background_color='white',)
wc.generate_from_frequencies(dict(cDataList))
wc.to_file("wc_freq.png")
[('스토리', 296), ('티스토리', 294), ('로그', 203), ('올림픽', 159), ('여자', 159),
('경기', 159), ('여자배구', 158), ('배구', 158), ('경기일정', 158), ('일정', 158),
('결승', 158), ('검색', 99), ('정보', 87), ('확인', 83), ('이미지', 83), ('화면', 82),
('메뉴', 82), ('통계', 80), ('인생', 80), ('스포츠', 80), ('치기', 79), ('치기검색로그인', 79)
('홈화면', 79), ('프로필', 79), ('관찰', 79), ('방명록', 79), ('글쓰기', 79), ('티스토리앱', 79),
('년차', 79), ('스포츠정보', 79), ('네이버', 48), ('다음', 46), ('워드', 26), ('프레스', 23),
('구글', 22), ('방법', 22), ('워드프레스', 22), ('사이트', 19), ('운영', 18), ('사용', 16),
('애드', 15), ('센스', 14), ('서비스', 14), ('애드센스', 13),
('광고', 11), ('관련', 11), ('가지', 10), ('카카오', 10), ('작성', 10), ('카페', 10)]
워드 클라우드 모양
워드 클라우드 기능중 하나인 mask를 사용하면 아래와 같이 모양을 만들수 있습니다. 이때 mask가 될 이미지는 흰색이 아닌부분에 글자가 들어가고 흰색 부분이 빈공간으로 할당되게 됩니다. 해당 기능을 사용하면 예쁜 워드 클라우드를 만들 수 있습니다.
from PIL import Image
from wordcloud import WordCloud
myMask = np.array(Image.open('heart.png'))
wc = WordCloud(font_path='C:\\Windows\\Fonts\\HMKMRHD.TTF',
background_color='white',
mask=myMask)
wc.generate_from_frequencies(dict(cDataList))
wc.to_file("wc_heart.png")
'개발 > python' 카테고리의 다른 글
오라클 클라우드 사용 (0) | 2022.10.03 |
---|---|
파이썬 패키지 재설치 쉽게 (0) | 2022.09.17 |
파이썬 - 카카오 API(활용) (0) | 2021.09.19 |
파이썬 - 카카오 API(가입) (0) | 2021.09.19 |
파이썬 KoNLPy 설치법 (0) | 2021.09.12 |
댓글