바뀜

둘러보기로 가기 검색하러 가기
106 바이트 추가됨 ,  2023년 2월 6일 (월) 18:19
잔글
9번째 줄: 9번째 줄:  
|-
 
|-
 
|KoNLPy 설치
 
|KoNLPy 설치
|형태소분석에 필요한 것들을 설치한다.
+
|필수는 아닌데, 깔끔하게 하려면 필요하다.
자바도 버전에 맞게 설치하자.(자바필수)
+
|[[KoNLPy]] 문서 참고.
|
  −
{| class="wikitable"
  −
!설명
  −
!방법
  −
|-
  −
|리눅스(apt)
  −
|apt-get install g++ python-dev python3-dev openjdk-8-jdk
  −
|-
  −
|윈도우
  −
|운영체제에 따라 다음 링크에서 설치. [http://abit.ly/easypy_101 abit.ly/easypy_101]
  −
|}
  −
pip install konlpy
   
|-
 
|-
 
|wordcloud 설치
 
|wordcloud 설치
45번째 줄: 33번째 줄:  
|명사만 추출
 
|명사만 추출
 
|조사를 제거한다.
 
|조사를 제거한다.
 +
 +
 +
형태소분석기 종류에 따라 결과가 조금씩 달라지니, 필요에 따라 선택하여 사용.
 +
 +
분석기에 대해선 [https://konlpy.org/ko/latest/morph/ 링크] 참조
 
|<syntaxhighlight lang="python">
 
|<syntaxhighlight lang="python">
 
import konlpy
 
import konlpy
hannanum = konlpy.tag.Hannanum()  # 형태소 분석기 중 하나.
+
hannanum = konlpy.tag.Hannanum()  # tag 하위에 제공되는 형태소 분석기 중 하나.
 
nouns = hannanum.nouns(text_data)  # 명사만 추출한다. 리스트로 반환.
 
nouns = hannanum.nouns(text_data)  # 명사만 추출한다. 리스트로 반환.
 
</syntaxhighlight>
 
</syntaxhighlight>
62번째 줄: 55번째 줄:  
df = df.query('len >= 2')  # 1글자로 된 데이터는 버린다.
 
df = df.query('len >= 2')  # 1글자로 된 데이터는 버린다.
   −
# 단어 빈도 세기
+
# 단어 빈도 세기. # 실제로 사용할 땐 \ 뒤에 주석을 넣으면 안된다.
 
df = df.groupby('word', as_index=False) \  # 단어별 그룹화
 
df = df.groupby('word', as_index=False) \  # 단어별 그룹화
 
         .agg(count = ('word', 'count')) \  # 단어별 등장횟수 세기
 
         .agg(count = ('word', 'count')) \  # 단어별 등장횟수 세기
85번째 줄: 78번째 줄:  
# 파워포인트 따위를 이용해 배경을 지운 후(그림서식>배경제거),
 
# 파워포인트 따위를 이용해 배경을 지운 후(그림서식>배경제거),
 
# 검게 만들어 사용하자.(밝기 -100%)
 
# 검게 만들어 사용하자.(밝기 -100%)
 +
컬러맵의 종류에 대한 것은 [https://matplotlib.org/stable/tutorials/colors/colormaps.html 링크]에서 확인하자.
 
|<syntaxhighlight lang="python">
 
|<syntaxhighlight lang="python">
 
# 선택사항. 워드클라우드 모양 만들기.
 
# 선택사항. 워드클라우드 모양 만들기.
90번째 줄: 84번째 줄:  
back_img = PIL.Image.open('파일경로.png')  # 워드클라우드는 기본적으로 사각형인데, 모양을 지정해줄 수 있다.
 
back_img = PIL.Image.open('파일경로.png')  # 워드클라우드는 기본적으로 사각형인데, 모양을 지정해줄 수 있다.
 
import numpy as np
 
import numpy as np
img = PIL.Image.net('RGB', back_img.size, (255,255,255))
+
img_array = np.array(back_img)  # 그림을 배열처리.
img.paste(back_img, back_img)
  −
img = np.array(img)  # 그림을 배열처리.
      
from wordcloud import WordCloud
 
from wordcloud import WordCloud
 
# 생성기. 생성에 필요한 옵션을 선언할 때 지정한다.(기본적으로 랜덤생성)
 
# 생성기. 생성에 필요한 옵션을 선언할 때 지정한다.(기본적으로 랜덤생성)
wc = WordCloud(mast = img,
+
wc = WordCloud(mask = img_array,
 
                 font_path = 'NanumGothic',  # 설치된 글꼴 지정. 속은 .ttf 경로 지정.
 
                 font_path = 'NanumGothic',  # 설치된 글꼴 지정. 속은 .ttf 경로 지정.
                 )
+
                 colormap = 'inferno',
 +
                ...)  
 
img_cloud = wc.generate_from_frequencies(word_dict)  # 사전을 토대로 워드클라우드 생성.
 
img_cloud = wc.generate_from_frequencies(word_dict)  # 사전을 토대로 워드클라우드 생성.
 
plt.axis('off')  # 테두리선 없애기.
 
plt.axis('off')  # 테두리선 없애기.

둘러보기 메뉴