# wordcloud 아나콘다 설치
: anaconda prompt 관리자권한으로 실행 -> conda install -c conda-forge wordcloud
-- wordcloud 예제 1 ( 기본 사각형 )
import matplotlib.pyplot as plt
from wordcloud import WordCloud
from wordcloud import STOPWORDS # 불용어 처리
text = open("텍스트 이름.txt").read()
stopwords = set(STOPWORDS)
stopwords.update(['추가할 불용어 입력'])
wordcloud = WordCloud(max_font_size = , # 이미지 내의 최대 font 크기
max_words = , # 이미지 안에 넣을 단어의 최대 개수
background_color = , # 배경색
random_state = , # 시드 설정
stopwords = stopwords # 불용어 설정
)
wc = wordcloud.generate(text)
plt.figure(figsize = (10,10))
plt.imshow(wc, interpolation = "lanczos") # interpolation : 보간 , 이미지를 부드럽게 하는 정도
plt.axis("off") # off하지 않으면 축이 나와서 깔끔하게 나오지 않음
plt.show()
-- wordcloud 예제 2 ( 원하는 이미지로 만들고 싶을 때 )
import matplotlib.pyplot as plt
from wordcloud import WordCloud
from wordcloud import STOPWORDS # 불용어 처리
import numpy as np
from PIL import Image
text = open("텍스트 이름.txt").read()
stopwords = set(STOPWORDS)
stopwords.update(['추가할 불용어 입력'])
img_mask=np.array(Image.open('사용할 그림파일.jpg')) # 그림파일을 불러와서 array배열로 저장
image_colors=ImageColorGenerator(img_mask) # 원본 그림의 색상정보를 가져옴
wordcloud = WordCloud(max_font_size = , # 이미지 내의 최대 font 크기
max_words = , # 이미지 안에 넣을 단어의 최대 개수
background_color = , # 배경색
random_state = , # 시드 설정
stopwords = stopwords, # 불용어 설정
mask = img_mask, # 이미지를 넣음
color_func = image_colors # 원본 이미지의 색깔을 사용
)
wc = wordcloud.generate(text)
plt.figure(figsize = (10,10))
plt.imshow(wc, interpolation = "lanczos") # interpolation : 보간 , 이미지를 부드럽게 하는 정도
plt.axis("off") # off하지 않으면 축이 나와서 깔끔하게 나오지 않음
plt.show()
-- wordcloud 예제 3 ( 한글 분석과 wordcloud를 함께 사용할 때 )
import nltk
from konlpy.tag import Okt # 한글 형태소 분석기
import matplotlib.pyplot as plt
from wordcloud import WordCloud
from wordcloud import STOPWORDS # 불용어 처리
import numpy as np
from PIL import Image
okt = Okt()
text = open("텍스트 이름.txt").read()
stopwords = set(STOPWORDS)
stopwords.update(['추가할 불용어 입력'])
img_mask=np.array(Image.open('사용할 그림파일.jpg')) # 그림파일을 불러와서 array배열로 저장
image_colors=ImageColorGenerator(img_mask) # 원본 그림의 색상정보를 가져옴
tokens_text= Okt.nouns(text)
new_text=[] # 1글자를 제외한 단어 리스트
for word in tokens_text:
if len(word) > 1 and word != ' ': # 한글자짜리는 제외
new_text.append(word)
ko=nltk.Text(new_text)
ko.vocab() # FreqDist 클래스 : 문서의 사용된 단어의 사용빈도 정보
data = ko.vocab().most_common(100) # 많이 나온 단어 추출
data = dict(data)
FONTPATH='malgunsl.ttf' # 사용할 폰트경로
wordcloud = WordCloud(max_font_size = , # 이미지 내의 최대 font 크기
max_words = , # 이미지 안에 넣을 단어의 최대 개수
background_color = , # 배경색
random_state = , # 시드 설정
stopwords = stopwords, # 불용어 설정
mask = img_mask, # 이미지를 넣음
color_func = image_colors, # 원본 이미지의 색깔을 사용
font_path = FONTPATH # 사용할 font의 경로
)
wc = wordcloud.generate_from_frequencies(data)
# generate_from_frequencies : Create a word_cloud from words and frequencies.
# generate : Generate wordcloud from text.
plt.figure(figsize = (10,10))
plt.imshow(wc, interpolation = "lanczos") # interpolation : 보간 , 이미지를 부드럽게 하는 정도
plt.axis("off") # off하지 않으면 축이 나와서 깔끔하게 나오지 않음
plt.show()
cf. )
1. interpolation엔 여러 종류 존재
2. 한글 wordcloud사용시 한글 폰트 지정 필수
3. 사용자 지정 그림으로 wordcloud진행시 그림의 선이 굵어야함 ( 그림판으로 굵게 그려도 됨 )
'프로그래밍 > Python' 카테고리의 다른 글
[Python] 웹 크롤링 ( Web Crawling ) (0) | 2022.04.03 |
---|---|
[Python] 입력값이 잘못됐을 때 코드를 다시 실행해보자 (0) | 2022.01.09 |
[Python] Pandas의 Series와 DataFrame (0) | 2021.07.14 |
댓글