개발/웹 스크래핑
[Web Scraping 기초] 워드클라우드(Wordcloud) 만들기
devculture309
2023. 4. 21. 14:43
반응형
워드클라우드
- 파이썬을 활용해 텍스트 구름을 그릴 수 있는 텍스트 클라우드 라이브러리
- 한글을 사용 시 한국어 형태소 분석기 라이브러리인 konlpy를 별도로 설치해줘야 한다
1) wordcloud 및 konlpy 설치
- pip install을 통해 간단하게 설치할 수 있다 (cmd창에 아래 코드 입력, Jupyter Notebook에선 맨 앞에 % 붙임)
pip install wordcloud
pip install konlpy
2) wordcloud 만들기
- WordCloud를 만드는 방법은 다음과 같습니다.
1. KoNLPy 라이브러리로 한국어 문장을 전처리
2. Counter를 이용해 빈도수 측정
3. WordCloud를 이용해 시각화
- 애국가를 활용하여 워드클라우드 만들기
① 필요한 라이브러리 import
# 시각화에 쓰이는 라이브러리
import matplotlib.pyplot as plt
from wordcloud import WordCloud
# 횟수를 기반으로 딕셔너리 생성
from collections import Counter
# 문장에서 명사를 추출하는 형태소 분석 라이브러리
from konlpy.tag import Hannanum
② 형태소 분석기를 활용하여 명사 추출
national_anthem = """
동해물과 백두산이 마르고 닳도록
하느님이 보우하사 우리나라 만세
무궁화 삼천리 화려 강산
대한 사람 대한으로 길이 보전하세
남산 위에 저 소나무 철갑을 두른 듯
바람 서리 불변함은 우리 기상일세
무궁화 삼천리 화려 강산
대한 사람 대한으로 길이 보전하세
가을 하늘 공활한데 높고 구름 없이
밝은 달은 우리 가슴 일편단심일세
무궁화 삼천리 화려 강산
대한 사람 대한으로 길이 보전하세
이 기상과 이 맘으로 충성을 다하여
괴로우나 즐거우나 나라 사랑하세
무궁화 삼천리 화려 강산
대한 사람 대한으로 길이 보전하세
"""
hannanum = Hannanum()
nouns = hannanum.nouns(national_anthem)
words = [noun for noun in nouns if len(noun) > 1]
words[:10]
③ Counter를 이용하여 각 단어의 개수 count
counter = Counter(words)
④ 텍스트 구름 만들기
wordcloud = WordCloud(font_path = r"C:\Windows\Fonts\a고딕13.ttf")
img = wordcloud.generate_from_frequencies(counter)
plt.imshow(img)
※ 한글 깨짐 해결하기
- 한글로 wordcloud를 만들경우 한글 관련 폰트가 없어 위 그림처럼 깨진 결과물이 나온다
- 해결방법이 여러 가지 있지만 그중 하나는 WordCloud() 메소드 안에 한글 관련 폰트가 저장되어 있는 경로를
다음과 같이 넣어주면 되는 것이다
wordcloud = WordCloud(font_path = r"C:\Windows\Fonts\a고딕13.ttf")
반응형