[데이터 엔지니어링 데브코스] TIL 10일차 - 파이썬으로 웹다루기(5)

박단이·2023년 10월 27일
1

데브코스 TIL

목록 보기
9/56

오늘 공부한 내용🤓

  1. 시각화 라이브러리 Seaborn
    • 다양한 그래프를 고수준(high-level)으로 쉽게 그릴 수 있도록 도와주는 라이브러리
    • matplotlib 라이브러리에 기반을 두고 있어 기존 함수에 다양한 속성과 요소에 변화를 주기 위해선 matplotlib.pyplot을 사용한다.
        import seaborn as sns
        import matplotlob.pyplot as plt

        # 그래프 크기 지정 (가장 처음 선언해야한다.)
        plt.figure(figsize=(10, 5))  # 10 x 5 크기의 공간

        # 꺾은 선 그래프 : 특정 두 변수의 값에 따른 추이
        sns.lineplot(x=[x 배열], y=[y 배열])
        # 막대 그래프 : 범주형 데이터의 값과 그 크기를 표현
        sns.barplot(x=[범주 데이터], y=[범주에 따른 값])

        ## 이 외에도 많은 그래프가 있음(scatterplot, boxplot 등)

        # 그래프 제목 설정
        plt.title('title')
        # 축에 설명 추가
        plt.xlabel('X label')
        plt.ylabel('Y label')
        # 축의 범위 설정 : 최소값, 최대값 순으로 두 개의 인자를 넣어도 되고
        # 하나의 리스트에 담아서 넣어줘도 된다.
        plt.xlim([min, max])
        plt.ylim(min, max)

        # 그래프를 표출해달라는 명령어
        # notebook 환경에서는 필요없지만, 그 외의 환경에서는 필수
        plt.show()
  1. 자료의 개수를 세주는 함수 Counter

    • 리스트의 원소들의 개수를 세어주는 함수이다.
    • collections 라이브러리에 포함되어 있다.
    from collections import Counter
    
    counter = Counter([원하는 리스트])
    counter.most_common(10)  # 원소가 많은 순으로 10개 보여준다.
  2. 자료의 빈도를 시각적으로 보여주는 Word Cloud
    - 자주 등장하는 텍스트를 중요도나 인기도를 고려해 표현하는 시각화 기법
    - 핵심 키워드를 한 눈에 볼 수 있다는 장점이 있다.
    - 워드 클라우드 만드는 순서
    1. 자연어 문장에서 keyword 추출 -> konlpy
    2. keyword가 등장한 빈도를 측정 -> Counter
    3. 전처리 정보와 wordcloud 라이브러리를 사용해서 표현
    - konlpy는 한국어 형태소 분석기를 여러개 가지고 있는 라이브러리로써 JAVA를 사용한다. JAVA_HOME 세팅이 되어 있어야한다.

    ```python
    # 1. keyword 추출
    from konlpy.tag import Hannanum  # 그 외에도 okk, mecab 등 여러 종류가 있음
    hannanum = Hannanum()
    nouns = hannanum.nouns('형태소 분석을 원하는 문자열') # 명사만 추출 (다른 품사도 가능!)
    
    # 2. keyword 빈도 측정
    from collections import Counter
    counter = Counter([nouns])
    
    # 3. word cloud 표출
    from worldcloud import WordCloud
    import matplotlib.pyplot as plt
    
    worldcloud = WordCloud(
    	font_path = '폰트 위치',  # 한글은 깨지므로 폰트가 있는 경로를 지정하자.
        width = 1000,	# 가로 길이
        heigh = 1000,	# 세로 길이
        background_color = 'white'	 # 배경 색상
    )
    # 빈도에 따른 워드 클라우드를 만든다. 반환되는 값은 이미지
    img = worldcloud.generate_from_frequencies(counter)
    plt.imshow(img)  # 이미지를 표출하는 함수
    
    plt.show()
    ```

궁금한 내용 / 어려운 내용❓

  • konlpy 모듈이 얼마만큼 변했는지 확인하고 싶다.

느낀 점😊

wordcloud에 폰트의 위치를 지정함으로써 한글이 표출되게 만든 것이 놀라웠다. 무조건 설정하는 코드를 따로 써왔었는데 조금더 간단하기도 하고 다양한 폰트를 활용할 수 있게 되서 신기했다.
형태소 분석기를 오랜만에 보니까 응용해서 할 수 있는 프로젝트들이 떠올랐다. 나중에 기회가 된다면 구현해보고 싶다.

profile
데이터 엔지니어를 꿈꾸는 주니어 입니다!

0개의 댓글