AI교육과정 - Python.12

단비·2023년 2월 2일
0

AI교육과정

목록 보기
64/69
  1. 형태소 분석

    • 자연 언어의 문장을 형태소라는 최소 단위로 분할하고 품사를 판별하는 작업
    • 영어 형태소 분석은 형태소마다 띄어쓰기를 해서 문장을 구성하는 것이 기본임(분석이 쉬운편)
    • 아시아 계열 언어 분석은 많은 노력이 필요
    • 한국어 형태소 분석 라이브러리: KoNLPy
    !pip install KoNLPy
    # KoNLPy에는 kolaw(대한민국 헌법 텍스트 파일)를 제공
    from konlpy.corpus import kolaw
    kolaw.open('constitution.txt').read()
    # KoNLPy에는 kobill(국회법안 파일)를 제공
    from konlpy.corpus import kobill
    kobill.open('1809892.txt').read()
  2. KoNLPy에 다양한 형태소 분석 라이브러리

    • Hannanum: 한나눔. KAIST Semantic Web Reserch Center 개발
    • KKma: 꼬꼬마. 서울대학교 IDS(Intelligent Data Systems) 연구실 개발
    • Komoran: 코모란. Shineware에서 개발
    • Mecab: 메카브. 일본어용 형태소 분석기를 한국어를 사용할 수 있도록 수정 개발
    • OKT(Open Korean Text): 오픈소스 한국어 분석기. 과거 트위터 형태소 분석기
    from konlpy.tag import *
    # KoNLPy의 다양한 형태소 분석 라이브러리 객체를 생성
    hannanum = Hannanum()
    kkma = Kkma()
    komoran = Komoran()
    okt = Okt()
    • 명사 추출
    # 명사(nouns) 추출
    law[:50]
    hannanum.nouns(law[:50])
    # ['대한민국헌법', '유구', '역사', '전통', '빛', '우리', '대한국민', '3·1운동', '건립', '대한민국임']
    • morphs
      • 명사 뿐 아니라 모든 품사의 형태소를 반환

        hannanum.morphs(law[:50])
        #['대한민국헌법',
        #'유구',
        #'하',
        #'ㄴ',
        #'역사',
        #'와',
        # ..
    • pos
      • 품사를 부착
      • 형태소 분석기마다 사용하는 품사 태그가 다르므로 형태소 분석기 문서를 확인
      1. norm = True

        • 품사 태깅(기본값 False)
        • 욬, 엨 같은 아래 받침이 생긴 글자는 알아서 분석해서 빼줌 ex) 되나욬ㅋㅋ → 되나요, ㅋㅋ
      2. stem = True
        - 원형 글자로 변경(기본값 False)

            ex) 되나욬ㅋㅋ → 되다, ㅋㅋ
            
        hannanum.pos(law[:50])
        #[('대한민국헌법', 'N'),
        #('유구', 'N'),
        #('하', 'X'),
        #('ㄴ', 'E'),
        #('역사', 'N'),
        # ..
    • tagset
      • 부착되는 품사 태그의 기호와 의미를 반환

        okt.tagset
        #{'Adjective': '형용사',
        #'Adverb': '부사',
        #'Alpha': '알파벳',
        #'Conjunction': '접속사',
        # ..

  1. 워드 클라우드(Word Cloud)

    • 핵심 단어를 시각화하는 기법
    • 문서의 키워드, 개념 등을 직관적으로 파악할 수 있게 핵심 단어를 시각적으로 돋보이게 하는 기법
    !pip install wordcloud
    from wordcloud import WordCloud
    • generate()
      • 단어별 출현 빈도수를 비율로 반환하는 객체를 생성
    • max_words
      • 워드 클라우드에 표시되는 단어의 갯수를 설정

        WordCloud(max_words=50).generate(text)
    • 배경색 설정
      • background_color
    • **불용어 등록**
      • 워드 클라우드로 작성할 단어에서 제외할 단어를 설정

        from wordcloud import STOPWORDS

        🌸 딕셔너리에 저장된 데이터는 generate_from_frequencies 메소드를 사용하여 워드 클라우드를 생성

    WordCloud(
        max_words=500,
        background_color='ivory',
        stopwords=stopwords, # 넣지 않을 글자
        mask=alice_mask
    ).generate(text)
    #).generate_from_frequencies(data) / 딕셔너리에 저장된 데이터일 경우
    
    plt.figure(figsize=(10,15))
    plt.imshow(wordcloud, interpolation='kaiser')
    plt.axis('off')
    plt.show()


  1. folium

    • leaflet.js 기반으로 만들어진 라이브러리
    • 지도 위에 데이터를 표현해주는 대표적인 파이썬 지도 시각화 라이브러리
    • folium_document
    !pip install folium
    import folium
    # folium.Map(location=[위도, 경도], zoom_start=배율, ...)
    # 지도의 중심이 될 위치
    folium.Map(location=[37.5000425, 127.0359277], zoom_start=17)
    • save()
      • 작성된 지도차트를 html로 저장
    map_folium.save('./map.html')
    • Marker()
      • location 속성으로 지정한 위치에 마커를 생성

        #folium.Marker(location=[위도,경도], popup=팝업).add_to(마커를 생성할 지도)
        folium.Marker(location=[37.5000425, 127.0359277], popup=popup,
        		icon=folium.Icon(color='red', icon='star')).add_to(map_folium)
      1. popup()
        - 마커를 클릭했을 때 표시할 문자를 설정

        folium.Popup('코리아IT아카데미', max_width=200)
      2. icon
        - icon: star, ok, user

        folium.Icon(color='red', icon='star')
      • add_to()
        • 작성된 마커를 지도에 추가
    • CircleMarker
      • 원의 범위를 마커로 생성

        folium.CircleMarker(location=[37.56652479270633, 126.9779129116262], popup=popup,
                            radius=100, color='red', fill_color='#EC407A').add_to(map_folium)
      1. radius
      2. color: 테두리색
      3. fill_color: 원 안의 배경색
profile
tistory로 이전! https://sweet-rain-kim.tistory.com/

0개의 댓글