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') # 테두리선 없애기. |