본문 바로가기
Coding/데이터 시각화

[Python & Matplotlib] 명사 추출 후 그래프로 시각화하는 방법 !!

by 포스트it 2024. 11. 27.
반응형

결과화면


[Python & Matplotlib] 명사 추출 후 그래프로 시각화하는 방법 !!

한국어 형태소 분석을 위해 KoNLPy 라이브러리를 사용하고, 시각화를 위해 matplotlib를 사용한 예제입니다 ㅎ

 

1. 필요한 라이브러리 설치

pip install konlpy matplotlib

 

2. 예제 코드

아래 코드 실행시키면 위에 결과화면 처럼 나오게 됩니다 :)

from konlpy.tag import Okt
from collections import Counter
import matplotlib.pyplot as plt
from matplotlib import font_manager, rc

# 한글 폰트 설정 (예: 맑은 고딕)
font_path = "C:/Windows/Fonts/malgun.ttf"  # 폰트 경로는 시스템에 맞게 변경해주세요.
font_name = font_manager.FontProperties(fname=font_path).get_name()
rc('font', family=font_name)

# 분석할 텍스트
text = """
코드 설명
폰트 설정: matplotlib에서 한글이 깨지지 않도록 시스템에 설치된 한글 폰트를 설정합니다.
텍스트 입력: 분석하고 싶은 한국어 텍스트를 text 변수에 입력합니다.
명사 추출: Okt 형태소 분석기를 사용하여 텍스트에서 명사만 추출합니다.
빈도 계산: Counter를 사용하여 명사의 빈도수를 계산합니다.
데이터 준비: 가장 빈도 높은 10개의 명사와 그 빈도수를 리스트로 분리합니다.
그래프 시각화: 막대 그래프로 명사의 빈도수를 시각화합니다.
실행 결과
코드를 실행하면 입력한 텍스트에서 가장 많이 등장한 명사 10개의 빈도수를 막대 그래프로 볼 수 있습니다.
"""

# 형태소 분석기 초기화
okt = Okt()

# 텍스트에서 명사 추출
nouns = okt.nouns(text)

# 명사 빈도 계산
count = Counter(nouns)

# 가장 빈도 높은 10개의 명사 추출
most_common = count.most_common(10)

# 데이터 분리
words = [word for word, _ in most_common]
freqs = [freq for _, freq in most_common]

# 그래프 그리기
plt.figure(figsize=(10, 6))
plt.bar(words, freqs, color='skyblue')
plt.xlabel('명사')
plt.ylabel('빈도수')
plt.title('명사 빈도 시각화')
plt.xticks(rotation=45)
plt.show()

 

728x90
반응형

댓글