텍스트 상태
이며 너무 분산
되어 있어 한눈에 알아보기 힘들다.시각화(Visualization)
을 통해 해결해야 한다. Seaborn
은 파이썬의 데이터 시각화 라이브러리
이다.matplotlib
을 기반으로 하고 있기 때문에 seaborn
을 설치하면 matplotlib
이 같이 설치가 된다.seaborn
은 보통 sns
라는 명칭으로 축약한다.%pip install seaborn
1) 꺾은 선 그래프 (Line Plot)
꺾은 선 그래프
는 .lineplot(x=x축리스트, y=y축리스트)
로 표현 가능하다.plt._lim(최솟값, 최댓값)
이라는 matplotlib
함수를 통해 최소 범위
와 최대 범위
를 지정해 줄 수 있다.plt.figure(figsize =(x, y))
라는 함수로 조정할 수 있다. 일종의 캔버스 크기의 개념으로 미리 그래프를 그리기 전에 선언해 주어야 한다.import seaborn as sns
plt.figure(figsize = (20, 10)) #figure 자체가 일종의 캔버스 크기를 정해 주는 것이기 때문에 그래프를 그리기 전에 선언해 주어야 한다.
sns.lineplot(x=[1, 3, 2, 4], y=[4, 3, 2, 1])
plt.ylim(0, 10)
plt.show()
결과 값
2) 막대 그래프 (Bar Plot)
.barplot(x=x리스트, y=y리스트)
를 통해서 표현 가능하다.title
을 주기 위해서는 matplotlib의 pyplot
을 사용해야 한다. pyplot의 title("주고자 하는 그래프 타이틀")
을 통해 부여할 수 있다.x축 label과 y축 label
역시 pyplot
을 통해 줄 수 있는데 ._label("_label 값")
함수를 사용하면 된다.import seaborn as sns
import matplotlib.pyplot as plt
sns.barplot(x=["Amy","Bob","Cat","Dog"],y=[0.7,0.2,0.1,0.05])
plt.title("ABCD")
plt.xlabel("X Label")
plt.ylabel("Y Label")
plt.show() #show()함수를 사용하지 않으면 그래프가 출력되지 않는다.
결과 값
💻실습 정리-5. 기상청-날씨-정보-시각화
💻실습 정리-6. 특정 웹 페이지 태그 빈도 수 막대 그래프 시각화
Word Cloud
란 자주 등장하는 텍스트를 중요도
나 인기도
를 고려해 표현한 것.Word Cloud
를 만들기 위한 과정 자연어 문장
에서 키워드
를 추출한다.키워드
가 등장한 빈도 수를 측정한다.앞에서 전처리한 정보
와 Word Cloud 라이브러리
를 바탕으로 생성한다.1) wordcloud와 konlpy를 설치
Python
의 텍스트 클라우드 라이브러리
이다.konlpy
는 nlp(자연어 처리) 라이브러리
로 형태소 분석을 해서 원하는 키워드를 뽑아내는 라이브러리.# wordcloud 라이브러리와 konlpy 라이브러리를 설치해 준다
%pip install wordcloud
%pip install konlpy
2) 텍스트 구름 그리기 위해 필요한 라이브러리를 호출
matplotlib.pyplot
과 wordcloud
를 호출해 준다.counter
를 사용하기 위해 collections
을 호출해 준다.konlpy
도 호출해 준다.# 시각화에 쓰이는 라이브러리
import matplotlib.pyplot as plt
from wordcloud import WordCloud
# 횟수를 기반으로 딕셔너리 생성
from collections import Counter
# 문장에서 명사를 추출하는 형태소 분석 라이브러리
from konlpy.tag import Hannanum
3) Hannanum을 통해 명사를 추출
Word Cloud
를 만들 문자열을 변수에 넣어 준다.Hannanum
객체를 생성해 준 뒤, .nouns(명사를 추출할 인자)
함수를 사용하여 문자열의 명사만 추출해 준다.national_anthem = """
동해물과 백두산이 마르고 닳도록
하느님이 보우하사 우리나라 만세
무궁화 삼천리 화려 강산
대한 사람 대한으로 길이 보전하세
남산 위에 저 소나무 철갑을 두른 듯
바람 서리 불변함은 우리 기상일세
무궁화 삼천리 화려 강산
대한 사람 대한으로 길이 보전하세
가을 하늘 공활한데 높고 구름 없이
밝은 달은 우리 가슴 일편단심일세
무궁화 삼천리 화려 강산
대한 사람 대한으로 길이 보전하세
이 기상과 이 맘으로 충성을 다하여
괴로우나 즐거우나 나라 사랑하세
무궁화 삼천리 화려 강산
대한 사람 대한으로 길이 보전하세
"""
hannanum = Hannanum() #객체를 생성
nouns = hannanum.nouns(national_anthem) #nouns(명사추출할인자)
nouns[:10]
#output: ['동해물', '백두산', '하느님', '보우하사', '우리나라', '무궁화', '삼천리', '화', '강산', '사람']
words = [noun for noun in nouns if len(noun) > 1] #추출한 명사에서 길이가 1인 건 제외
words[:10]
#output: ['동해물', '백두산', '하느님', '보우하사', '우리나라', '무궁화', '삼천리', '강산', '사람', '대한']
4) counter를 통해 각 명사의 횟수를 담는 Dictionary 생성
counter = Counter(words)
5) WordCloud를 이용해 텍스트 구름 생성
WordCloud
객체를 생성하는데 이때 font_path
를 통해 한글을 지원하는 폰트의 위치
, background_color
를 통해 배경 색
, width와 height
역시 설정해 줄 수 있다..generate_from_frequencies(counter)
함수를 통해 wordcloud
이미지로 변환해 줄 수 있다. 이 함수는 counter와 같이 key
를 단어
그리고 value
를 빈도 수
로 담는 구조의 인자를 word cloud
로 만들어 주는 함수이다.wordcloud = WordCloud(
font_path = "/Users/Samsung/AppData/Local/Microsoft/Windows/Fonts/BMEULJIROTTF.ttf",
background_color="white",
width=1000,
height=1000
) #wordcloud 객체를 생성한 후
img = wordcloud.generate_from_frequencies(counter) #counter 같은 구조를 바탕으로 wordcloud를 만든다
plt.imshow(img)
결과 값
💻실습 정리-7. 특정 웹 페이지 태그를 워드 클라우드로 시각화
1. jupyter notebook 혹은 lab 실행 시 Chrome으로 실행
cmd
창에서jupyter notebook
혹은jupyter lab
을 실행 시 기본적으로Microsoft Edge
로 실행이 되는데 계속 새 창이 뜨고 로딩이 되지 않는 오류가 발생하였다.Microsoft Edge 오류
때문인 것으로 보여져Chrome
으로 실행하는 방법이 없을까 생각했다.실행을 위한 세팅
1) 먼저 cmd창에jupyter notebook --generate-config
해당 명령어를 실행해 준다.
2) 이렇게jupyter_notebook.config.py
파일을 생성 시jupyter_notebook.config.py
파일의 위치를 알려 준다. 이때jupyter_notebook.config.py
이 파일은 jupyter notebook의 환경을 세팅해 주고 다양한 설정을 관리해 주는config 파일
이다.
3) 이후Chrome의 절대 경로
를 찾아 주는데Chrome의 절대 경로
는 크롬 바로 가기 아이콘 우 클릭 시 속성의대상(T)
에 있는 위치이다.
4) 이 절대 경로 위치를 복사하여역슬래시(\)
기호를슬래시(/)
기호로 변경해 준 후%s
를 뒤에 붙여 줍니다.
ex) 'C:/Program Files (x86)/Google/Chrome/Application/chrome.exe %s'
5) 이 절대 경로를jupyter_notebook.config.py
파일을메모장 혹은 notepad++
로 열어 준 후browser
로 검색을 한다.
6) 검색 시 다음과 같은 주석이 나오는데c.NotebookApp.browser = '(여기에 절대 경로)'
저 위치에 아까 수정했던Chrome
의 절대 경로를 넣어 주면 된다. 이후 꼭 주석을 풀어 주고 저장을 해 주어야 한다.
2. Word Cloud 설치 오류
%pip install wordcloud
다음의 명령어로 wordcloud 라이브러리를 설치하려는데 계속 오류가 발생했다.
[end of output] note: This error originates from a subprocess, and is likely not a problem with pip. ERROR: Failed building wheel for wordcloud Failed to build wordcloud ERROR: Could not build wheels for wordcloud, which is required to install pyproject.toml-based projects
다음과 같은 오류였는데python
의 버전이wordcloud
의 버전과 맞지 않아 발생하는 오류였다.
-> 해당 오류는 이와 같은 방법으로 해결해 주었다. 📑wordcloud 설치 오류
3. Word Cloud
다음과 같이Word Cloud
를 추출 후에 글자가 나오지 않는 경우는기본 폰트
가한글을 지원하지 않는 폰트
이기 때문이다. 그래서wordcloud
객체 생성 시한글을 지원하는 폰트
의 위치를 지정해 주면 한글이 추출되어 나온다.wordcloud = WordCloud( font_path = "/Users/Samsung/AppData/Local/Microsoft/Windows/Fonts/BMEULJIROTTF.ttf" ) #wordcloud 객체 생성 시 폰트의 위치를 설정해 준다 img = wordcloud.generate_from_frequencies(counter) plt.imshow(img)
다음과 같이 지정한 폰트로 한글이 잘 나오는 것을 확인할 수 있다.