Skip to content
Home » 워드 클라우드 파이썬 | [과제를 위한 파이썬] #3 – 워드클라우드 만들기 145 개의 베스트 답변

워드 클라우드 파이썬 | [과제를 위한 파이썬] #3 – 워드클라우드 만들기 145 개의 베스트 답변

당신은 주제를 찾고 있습니까 “워드 클라우드 파이썬 – [과제를 위한 파이썬] #3 – 워드클라우드 만들기“? 다음 카테고리의 웹사이트 kk.taphoamini.com 에서 귀하의 모든 질문에 답변해 드립니다: kk.taphoamini.com/wiki. 바로 아래에서 답을 찾을 수 있습니다. 작성자 요들사이버대학교 Yordle Cyber University 이(가) 작성한 기사에는 조회수 3,489회 및 좋아요 39개 개의 좋아요가 있습니다.

Table of Contents

워드 클라우드 파이썬 주제에 대한 동영상 보기

여기에서 이 주제에 대한 비디오를 시청하십시오. 주의 깊게 살펴보고 읽고 있는 내용에 대한 피드백을 제공하세요!

d여기에서 [과제를 위한 파이썬] #3 – 워드클라우드 만들기 – 워드 클라우드 파이썬 주제에 대한 세부정보를 참조하세요

#시각화 #워드클라우드
크롤링 – 형태소 분석 – 시각화
마지막 강의인 워드클라우드(시각화)입니다.
고생 많으셨습니다.
썸네일 파이썬 아이콘 제작자(flaticon)
https://www.flaticon.com/kr/authors/freepik

워드 클라우드 파이썬 주제에 대한 자세한 내용은 여기를 참조하세요.

[시각화] 파이썬으로 한글 워드클라우드(Word Cloud) 생성하고 …

오늘 소개해드릴 코드는 한글 문서의 단어를 추출하여 워드클라우드(Word Cloud)로 시각화하는 방법입니다. 파이썬에서 시각화는 거의 모두 …

+ 여기에 더 보기

Source: doitgrow.com

Date Published: 9/16/2021

View: 1688

파이썬 워드 클라우드(Word cloud) 만들기 – Dorulog – 티스토리

먼저 파이썬으로 워드 클라우드를 만들기 위해서는 아래의 과정이 필요합니다. 워드클라우드를 설치해 줘야 합니다.(pip install wordcloud); Konlpy 설치 …

+ 자세한 내용은 여기를 클릭하십시오

Source: dorudoru.tistory.com

Date Published: 12/10/2021

View: 2109

[워드클라우드] 파이썬으로 워드클라우드 만들기 아주쉬워요

numpy와 PIL 라이브러리는 원하는 모양의 워드클라우드를 만들기 위하여 필요합니다. from wordcloud import WordCloud import matplotlib.pyplot as …

+ 여기를 클릭

Source: domdom.tistory.com

Date Published: 5/8/2021

View: 4953

[ Word Cloud ] 파이썬으로 Word Cloud 사용하기

Word Cloud란? 태그 클라우드(영어: tag cloud) 또는 워드 클라우드(word cloud)는 메타 데이터에서 얻어진 태그들을 분석하여 중요도나 인기도 등을 …

+ 여기에 자세히 보기

Source: knowable.tistory.com

Date Published: 2/2/2021

View: 3267

워드 클라우드(Word Cloud) 생성하기(with 파이썬 DataFrame)

이번에는 파이썬의 데이터 프레임을 활용하여 워드 클라우드를 생성해 보겠습니다. 워드 클라우드 생성을 위해 필요한 아주 간단한 설명은

+ 여기를 클릭

Source: zzinnam.tistory.com

Date Published: 3/4/2021

View: 8641

[Matplotlib] 파이썬 워드 클라우드(Word Cloud) 시각화 예제

Python 워드 클라우드 색상, 크기, 모양 지정 방법 정리 안녕하세요. 이번 글에서는 파이썬의 WordCloud 라이브러리를 활용하여 단어의 빈도를 한 눈 …

+ 여기에 자세히 보기

Source: jimmy-ai.tistory.com

Date Published: 3/9/2021

View: 9020

python에서 워드클라우드 만드는 방법 정리

text = “파이썬 워드클라우드 파이썬 좋아 워드클라우드 파이썬 라이브러리 좋아 파이썬 워드클라우드 예시 워드클라우드 우한 폐렴 조심 데이터 분석 …

+ 자세한 내용은 여기를 클릭하십시오

Source: khann.tistory.com

Date Published: 7/1/2021

View: 6210

[python] 네이버 블로그 크롤링 결과로 WordCloud 시각화하기

안녕하세요! 오늘은 저번에 만들었던 네이버 블로그 크롤러를 이용해서 txt 파일을 만들고. 만들어진 텍스트 파일을 이용하여 워드 클라우드(WordCloud)로 …

+ 여기를 클릭

Source: wonhwa.tistory.com

Date Published: 11/29/2021

View: 2024

WordCloud for Python documentation – Andreas Mueller

Here you find instructions on how to create wordclouds with my Python wordcloud project. Compared to other wordclouds, my algorithm has the advantage of.

+ 여기에 보기

Source: amueller.github.io

Date Published: 7/27/2022

View: 661

주제와 관련된 이미지 워드 클라우드 파이썬

주제와 관련된 더 많은 사진을 참조하십시오 [과제를 위한 파이썬] #3 – 워드클라우드 만들기. 댓글에서 더 많은 관련 이미지를 보거나 필요한 경우 더 많은 관련 기사를 볼 수 있습니다.

[과제를 위한 파이썬] #3 - 워드클라우드 만들기
[과제를 위한 파이썬] #3 – 워드클라우드 만들기

주제에 대한 기사 평가 워드 클라우드 파이썬

  • Author: 요들사이버대학교 Yordle Cyber University
  • Views: 조회수 3,489회
  • Likes: 좋아요 39개
  • Date Published: 2020. 12. 10.
  • Video Url link: https://www.youtube.com/watch?v=qw5a6AjmQ18

[시각화] 파이썬으로 한글 워드클라우드(Word Cloud) 생성하고 원하는 이미지 형태로 출력하기

반응형

안녕하세요. 오늘 소개해드릴 코드는 한글 문서의 단어를 추출하여 워드클라우드(Word Cloud)로 시각화하는 방법입니다.

파이썬에서 시각화는 거의 모두 matplotlib 라이브러리를 기반으로 하고 있습니다. 그러나 기본적으로 한글을 지원하지 않기 때문에 한글 데이터를 시각화할 경우 폰트가 깨지는 문제가 발생하여 이 부분에 대해서 다뤄보고자 합니다.

그리고 생성한 워드 클라우드의 그림을 우리가 원하는 이미지 형태로 나타낼 수 있는 방법 또한 소개드리려고 합니다.

포스팅 주요 내용

1. konlpy 패키지를 통한 한글 텍스트 추출 및 간단한 전처리

2. 한글로 워드클라우드 시각화

3. 원하는 이미지로 워드클라우드 생성하기

그럼 바로 본론으로 들어가겠습니다~

0. 필요 패키지 불러오기

from wordcloud import WordCloud import matplotlib.pyplot as plt from collections import Counter from konlpy.tag import Okt from PIL import Image import numpy as np

▲ 오늘 학습할 기본 패키지의 구성입니다.

from wordcloud import WordCloud

– 이 패키지는 말그대로 워드클라우드를 생성에 필요한 기본 모듈입니다.

– 이 패키지는 말그대로 워드클라우드를 생성에 필요한 기본 모듈입니다. import matplotlib.pyplot as plt

– 생성한 워드클라우드 데이터를 시각화하여 그리기 위해 불러옵니다.

– 생성한 워드클라우드 데이터를 시각화하여 그리기 위해 불러옵니다. from collections import Counter

– 텍스트를 추출하고, 빈도 수를 추출하기 위해 사용합니다. 기본적으로 워드클라우드는 단어의 출현 빈도가 클수록 더 크게 그려집니다.

– 텍스트를 추출하고, 빈도 수를 추출하기 위해 사용합니다. 기본적으로 워드클라우드는 단어의 출현 빈도가 클수록 더 크게 그려집니다. from konlpy.tag import Okt

– 한국어를 처리하는 대표적인 형태소 분석 패키지입니다. Okt, Kkma 등 여러가지 패키지들이 존재하는데 형태소 분석기마다 명사, 명사 등의 형태소를 조금씩 다르게 처리하므로 다양하게 사용해본 후, 가지고 있는 문서 특성에 적합한 형태소 분석기를 사용하는 것이 좋습니다.

– 한국어를 처리하는 대표적인 형태소 분석 패키지입니다. Okt, Kkma 등 여러가지 패키지들이 존재하는데 형태소 분석기마다 명사, 명사 등의 형태소를 조금씩 다르게 처리하므로 다양하게 사용해본 후, 가지고 있는 문서 특성에 적합한 형태소 분석기를 사용하는 것이 좋습니다. from PIL import Image

– 워드클라우드를 원하는 형태로 그리기 위해 그림을 불러오는 패키지입니다.

– 워드클라우드를 원하는 형태로 그리기 위해 그림을 불러오는 패키지입니다. import numpy as np

– 불러온 그림을 배열로 나타내어 쉽게 처리할 수 있도록 도와주는 패키지입니다.

1. konlpy 패키지를 통한 한글 텍스트 추출 및 간단한 전처리

오늘 사용할 한글 문서는 “대한민국헌법.txt” 파일입니다. 간단히 따라해보실 분들은 아래 텍스트 파일을 받으셔서 사용하셔도 되고, 본인이 가지고 있는 한글 문서가 있다면 그걸로 사용해 보셔도 될 것 같아요.

대한민국헌법.txt 0.04MB

with open(‘대한민국헌법.txt’, ‘r’, encoding=’utf-8′) as f: text = f.read() okt = Okt() nouns = okt.nouns(text) # 명사만 추출 words = [n for n in nouns if len(n) > 1] # 단어의 길이가 1개인 것은 제외 c = Counter(words) # 위에서 얻은 words를 처리하여 단어별 빈도수 형태의 딕셔너리 데이터를 구함

▲ 먼저 txt 파일을 읽어서 모든 내용을 text 변수에 저장했습니다. 그리고 Okt 형태소 분석기 객체를 생성한 후, nouns 함수를 통해 명사만 추출하여 nouns 변수에 담았습니다.

그리고 nouns 변수에 들어있는 단어들 중에서 단어의 길이가 1개인 것들은 큰 의미가 없는 단어라 생각하여 제외하였습니다.

마지막으로 Counter 객체를 통해 단어별 빈도수 딕셔너리 데이터를 얻었고, 이를 c 변수에 담았습니다.

2. 한글로 워드클라우드 시각화

wc = WordCloud(font_path=’malgun’, width=400, height=400, scale=2.0, max_font_size=250) gen = wc.generate_from_frequencies(c) plt.figure() plt.imshow(gen)

▲ 워드클라우드를 생성하기 위해서 제일 먼저 해야할 일은 큰 템플릿을 준비하는 것입니다. 템플릿 정보에는 대표적적으로 그림 크기(width, height, scale, max_font_size) 등의 정보를 넣어주는데 여기서 제일 중요한 것은 바로 한글 폰트를 지정하는 것입니다.

윈도우 사용자를 기준으로 폰트 정보는 “C:\Windows\Fonts”에서 확인할 수 있습니다. 해당 폴더에 들어가면 아래와 같이 다양한 폰트 정보를 확인할 수 있습니다. 여기서 원하는 폰트 파일에 마우스 오른쪽 버튼을 클릭하고 “속성(R)”을 클릭하면 아래 두번째 스크린샷과 같이 폰트의 파일명을 확인할 수 있습니다.

워드클라우드에 사용할 폰트를 고르셨으면 WordCloud 객체를 생성할 때, font_path 파라미터에 폰트 파일명을 똑같이 넣어주면 됩니다. (단, 폰트가 한글을 지원해야만 합니다.)

▼ 작성한 코드를 실행하면 아래와 같이 시각화된 워드클라우드 결과를 확인할 수 있습니다.

여기서 파일로 추출하고 싶다면 아래의 코드를 추가하시면 됩니다.

wc.to_file(‘법전_워드클라우드.png’)

3. 원하는 이미지로 워드클라우드 생성하기

2번까지만 하셔도 간단한 코드 몇 줄로 워드클라우드를 결과를 활용할 수 있지만 픽토그래픽과 같이 워드클라우드를 특정한 이미지 형태로 출력할 수 있다면 그 전달력은 매우 높아질 것 같아요. 그래서 원하는 이미지로 워드클라우드를 생성하는 방법을 추가로 소개드리려고 합니다.

일단 법전에 관한 워드클라우드이므로 책 모양의 워드클라우드로 나타낸다면 그 전달력이 더 커질 것이라 생각했어요.

그래서 책 사진을 웹 상에서 구할려고 했는데 혹시나 포스팅할 경우 저작권 등에 걸리지 않을까하여 제가 직접 사진을 찍어서 템플릿을 만드는 방향으로 작업을 진행했습니다. 템플릿을 만드는 것이 특별한 노하우는 아니지만 간단히 해볼 수 있는 방법을 같이 말씀드릴게요~.

조금 더 두껍고 법전 같은 책이 있다면 좋을텐데 그런 두꺼운 책은 없고 옆에 있는 책을 이용하여 사진을 찍어서 사용했습니다. 이렇게 찍은 사진은 템플릿으로 사용하기 위해 아래와 같이 책의 누끼를 따고, 배경과 구분되도록 색깔의 명암비를 크게 차이나게 만들었습니다.

그래픽 작업은 누구나 쉽게 사용할 수 있는 파워포인트를 이용해 봤구요. 그림을 클릭하면 생성되는 위의 “그림 형식” 또는 “그림 서식” 메뉴에 가면 “배경 제거”라는 기능을 이용할 수 있습니다. 이것을 이용해서 책 이외의 배경은 제거하였는데, 인터넷에서 누끼를 잘 따주는 홈페이지도 많으니 편한 방법을 이용하시면 될 것 같아요. 그리고 “그림 서식”으로 들어가서 그림의 “밝기”를 -100%하여 책 모양 부분을 검은색으로 처리하였습니다.

참고로 워드클라우드를 넣을 공간을 검게 만드는 이유는 뒤의 코드를 보면 이해하시겠지만 우리가 사용하는 이미지를 Image 패키지를 통해 숫자로 변환하면 이미지 위치의 색깔에 따라 0~255 사이의 값을 출력하게 되는데 여기서 0으로 표시된 부분에 워드클라우드가 그려지게 됩니다.

최종적으로 만든 템플릿 이미지는 아래와 같습니다. 생각보다 깔끔하게 책 모양으로 얻은 것 같네요.

책_검은배경.jpg

img = Image.open(‘책_검은배경.jpg’) img_array = np.array(img) wc = WordCloud(font_path=’malgun’, width=400, height=400, scale=2.0, max_font_size=250, mask=img_array) gen = wc.generate_from_frequencies(c) plt.figure() plt.imshow(gen)

▲ 그럼 마지막으로 템플릿을 이용하여 워드클라우드를 그려보았습니다. 먼저 Image.open 함수를 통해 이미지를 불러와서 데이터를 img 변수에 넣었습니다.

이렇게 불러온 이미지는 대략 아래와 같은 데이터 형태를 가지고 있습니다. 아래 예시는 간단히 가로 5픽셀, 세로 5픽셀의 이미지로 255가 하얀색 영역, 0이 검은색 영역인 것을 보여드린 것입니다.

[[255, 255, 255, 255, 255],

[255, 0, 0, 0, 255],

[255, 0, 0, 0, 255],

[255, 0, 0, 0, 255],

[255, 255, 255, 255, 255]]

실제 이미지의 가로, 세로 픽셀이 훨씬 더 크고, 색깔도 단순히 0~255를 가지지 않고, RGB값(0~255, 0~255, 0~255)으로 가질 수 있는데 일단 그냥 진행해도 워드클라우드는 그려지니까 크게 신경 안쓰셔도 될 것 같아요. 만약 오류가 발생한다면 img_array 변수에 들어있는 숫자 데이터를 보고 데이터를 처리해줘야 할 수 도 있습니다.

여기서 기존 코드와 다른 점은 이미지를 배경으로 사용하기 위해 WordCloud 객체를 생성할 때, “mask” 추가 파라미터를 지정했다는 것입니다.

▼ 이렇게해서 최종적으로 얻은 워드클라우드 시각화 결과는 아래와 같았습니다. 막상 워드클라우드로 그려보니 책 느낌이 조금 사라지긴 했네요. 책이 더 두껍고, 사진 각도를 더 아래에서 찍었다면 더 법전 같은 느낌이 들 것 같네요.

마치며

이렇게 해서 한글 폰트를 이용하여 워드클라우드로 만드는 방법과 원하는 이미지로 그리는 방법까지 소개해드렸습니다. 더 많은 아이디어를 적용해서 좋은 시각화 결과를 얻으시길 바라며, 궁금하신 점이나 오류가 발생하는 부분은 댓글로 문의주시면 빠르게 답변드리겠습니다.

반응형

파이썬 워드 클라우드(Word cloud) 만들기

반응형

파이썬으로 워드 클라우드 만들기

먼저 파이썬으로 워드 클라우드를 만들기 위해서는 아래의 과정이 필요합니다.

워드클라우드를 설치해 줘야 합니다.(pip install wordcloud)

Konlpy 설치

Collection 설치

워드 클라우드란?

태그 클라우드라고도 불리우며 단어의 빈도수를 체크하여 시각적으로 표현하는 방식을 말합니다.

단어 구름이라는 뜻처럼 각각의 태그를 분석하여 중요도나 인기도를 고려하여 웹사이트에 표시합니다.

플리커에서 가장 먼저 사용되었다고 하네요.

태그 클라우드(영어: tag cloud) 또는 워드 클라우드(word cloud)는 메타 데이터에서 얻어진 태그들을 분석하여 중요도나 인기도 등을 고려하여 시각적으로 늘어 놓아 웹 사이트에 표시하는 것이다. 보통은 2차원의 표와 같은 형태로 태그들이 배치되며 이때 순서는 알파벳/가나다 순으로 배치 된다. 시각적인 중요도를 강조를 위해 각 태그들은 그 중요도(혹은 인기도)에 따라 글자의 색상이나 굵기등 형태가 변한다. 사용자는 이렇게 표시된 태그 중 마음에 드는 키워드를 발견하고 그것을 선택하여 그 메타 데이터에 원래 연결된 웹 페이지로 이동하게 된다.

워드 클라우드 패키지 설치

아래와 같이 pip install을 통해서 설치가 가능하구요.

numpy, pillow, matplotlib 등 다양한 관련된 패키지가 같이 설치됩니다.

그리고 워드 클라우드는 비주얼 C++ 설치가 필요하므로

(Error : Microsoft Visual C++ 14.0 Is Required)

아래의 링크에서 설치하시기 바랍니다.

그냥 기본만 설치해도 6기가가 넘어가네요 ㅠㅠ

KoNLPy 패키지 설치

이후에는 Konlpy를 설치해야 하는데요.

konlpy로 한글 형태소 분리

링크에서 파일을 다운로드 받아서 설치하시면 됩니다.

설치는 whl파일을 다운로드 받고 해당 파일을 pip 명령어로 설치하시면 됩니다.

기존 pip 설치는 서버에 있는 것을 설치하기 대문에 whl까지 쓰지 않는데요.

다운로드한 패키지 설치시에는 정확한 파일명을 명시해줘야 합니다.

collentions : 리스트에서 갯수 카운트 하는 것 필요

실제로 간단하게 코드를 자보면 아래와 같습니다.

인터넷에서 코드가 많이 나와있어서 참고하여 작성하였습니다.

from wordcloud import WordCloud from konlpy.tag import Komoran from collections import Counter import numpy as np from PIL import Image # open으로 txt파일을 열고 read()를 이용하여 utf-8 읽는다. text = open(‘test.txt’, encoding=’utf-8′).read() # Komoran 함수를 이용해 형태소 분석 komoran = Komoran() line =[] line = komoran.pos(text) n_adj =[] # 명사와 동사 만 n_adj에 넣어주기 for word, tag in line: if tag in [‘NNG’,’NNP’,’NNB’,’VV’,’VA’]: n_adj.append(word) #제외할 단어 추가(를과 의를 삭제함) stop_words = “를 의 ” #추가할 때 띄어쓰기로 추가해주기 stop_words = set(stop_words.split(‘ ‘)) # 불용어를 제외한 단어만 남기기 n_adj = [word for word in n_adj if not word in stop_words] #가장 많이 나온 단어 50개 저장 counts = Counter(n_adj) tags = counts.most_common(50) print(tags) # WordCloud를 생성한다. # 마스크 이미지로 mask = Image.new(“RGBA”,(424,369), (255,255,255)) #(424,369)는 사진 크기, (255,255,255)는 색을의미 image = Image.open(‘heart.png’).convert(“RGBA”) x,y = image.size mask.paste(image,(0,0,x,y),image) mask = np.array(mask) # 한글을 분석하기위해 font를 한글로 지정해주어야 된다. macOS는 .otf , window는 .ttf 파일의 위치를 # 지정해준다. (ex. ‘C:\Windows\Fonts\malgunbd.ttf’) wc = WordCloud(font_path=’C:\Windows\Fonts\malgunbd.ttf’,background_color=’white’, mask=mask,colormap=’prism’,max_font_size=100) cloud = wc.generate_from_frequencies(dict(tags)) import matplotlib.pyplot as plt plt.figure(figsize=(10,8)) plt.imshow(cloud) plt.axis(‘off’) #cloud.to_file(‘fontcloud.png’) 또는 plt.savefig(‘fontcloud.png’, bbox_inches=’tight’) plt.show()

각종 형태소 분석 알고리즘의 품사표에서 원하는 부분만 추출할수 있는데요.

Okt가 가장 많이 사용한다고 합니다.

각 싸이트에서 품사표를 검토하여 원하는 품사만 빼서 확인이 가능합니다.

물론 파이썬을 잘 사용하시지 못하더라도 요즘에는 인터넷 웹사이트에서 간단하게 생성을 해줍니다.

http://wordcloud.kr/

요즘 핫한 나의 해방일지 기사를 통해서 만들어보면 아래처럼 나옵니다.

추앙해요. 해방일지 등등 단어가 나오네요.

다만 품사는 조금 맞지 않아서 번도라던지 미정의 이런 것들도 조금 보입니다.

한국어보다는 좀더 품사가 명확한 영어의 경우에는 보다 이쁘게 나오기도 합니다.

그럼 잘 사용하시기 바랍니다.

반응형

[워드클라우드] 파이썬으로 워드클라우드 만들기 아주쉬워요

반응형

일단 워드클라우드를 만들기 위해 필요한 라이브러리들을 임포트해줍니다

numpy와 PIL 라이브러리는 원하는 모양의 워드클라우드를 만들기 위하여 필요합니다.

from wordcloud import WordCloud import matplotlib.pyplot as plt import numpy as np from PIL import *

원하는 모양의 이미지를 불러와줍니다!

저는 동그랗게 만들어주기 위해 동그랗게 생긴 이미지를 가져왔어요

circle.jpg

#워드클라우드의 모양 설정. 원모양의 이미지를 그대로 가져와 만들도록 하였음. cand_mask=np.array(Image.open(‘circle.jpg’))

이제 워드클라우드에 넣을 데이터만 있으면 됩니다.

저는 아무렇게나 임의의 데이터를 만들었어요!

value를 기준으로 내림차순하면 된답니다

value가 높을수록 가장 가운데에, 가장 큰 글씨로 나오게 돼요.

## 워드클라우드에 출력할 딕셔너리를 만듦. words = { ‘돔돔이블로그’:1965, ‘domdom’:1666, ‘티스토리’:955, ‘돔돔’:855, ‘워드’:841, ‘클라우드’:612, ‘파이썬’:598, ’tistory’:576, ‘코딩’:542, ‘장인’:487, ‘블로그’:412, ‘방문자’:401, ‘댓글’:397, ‘롤’:391, ‘칼바람’:308, ‘나락’:284, ‘환영’:255, ‘자바’:231, ‘장고’:175, ‘자바스크립트’:152, ‘스프링’:109, ‘부트’:71, ‘스타벅스’:68, ‘제주말차’:59, ‘프라푸치노’:21, ‘먹고싶다’:19, ‘디저트’:6, ‘꿀잼’:2 }

이제 워드클라우드를 생성합니다.

글씨체, 배경색, 글씨색, 워드클라우드모양을 설정하고, 만들어놓은 words를 데이터로 넣어줍니다!

wordcloud = WordCloud( font_path = ‘malgun.ttf’, # 한글 글씨체 설정 background_color=’white’, # 배경색은 흰색으로 colormap=’Reds’, # 글씨색은 빨간색으로 mask=cand_mask, # 워드클라우드 모양 설정 ).generate_from_frequencies(words)

워드클라우드를 출력하면 끝!

맨밑에 주석처리 해놓은 plt.savefig를 사용하면 워드클라우드 이미지를 저장할 수 있어요

#사이즈 설정 및 출력 plt.figure(figsize=(5,5)) plt.imshow(wordcloud,interpolation=’bilinear’) plt.axis(‘off’) # 차트로 나오지 않게 #plt.savefig(‘test.png’)

짜잔

색상은 Reds 말고도 원하는 색으로 설정하여 주면 됩니다

Greens으로 하면 아래와 같이 초록색으로 워드클라우드 생성!

참쉽죠?

728×90

반응형

[ Word Cloud ] 파이썬으로 Word Cloud 사용하기

1. Word Cloud란?

태그 클라우드(영어: tag cloud) 또는 워드 클라우드(word cloud)는 메타 데이터에서 얻어진 태그들을 분석하여 중요도나 인기도 등을 고려하여 시각적으로 늘어놓아 표시하는 것이다. 보통은 2차원의 표와 같은 형태로 태그들이 배치되며 이때 순서는 알파벳/가나다 순으로 배치된다. 시각적인 중요도를 강조를 위해 각 태그들은 그 중요도(혹은 인기도)에 따라 글자의 색상이나 굵기 등 형태가 변한다.

Word Cloud 예시.

2. 개발 환경

사용 소프트웨어 : PyCharm CE

사용 언어 : Python 3.7.0

3. 필요 모듈 import

한글 Word Cloud를 사용하기 위해서 3개의 모듈을 가져온다.

from wordcloud import WordCloud from konlpy.tag import Twitter from collections import Counter

wordcloud

파이썬에선 word cloud 모듈을 제공한다.(pypi.org/project/wordcloud/)

이 모듈을 사용하여 간편하게 word cloud를 사용할 수 있다.

pip install wordcloud

pip를 사용한다면 다음 명령어를 통해 설치할 수 있다.

konlpy

konlpy 모듈을 통해 형태소를 분석할 수 있다.

설치 방법은 우분투, macOS, window 별로 다르다. (konlpy-ko.readthedocs.io/ko/v0.4.3/install/ 참고)

사용법은 https://konlpy.org/en/latest/에서 확인할 수 있다.

collentions

컨테이너에 동일한 값의 자료가 몇 개인지를 파악하는 데 사용하는 모듈. (docs.python.org 참고)

4. 전체 코드

from wordcloud import WordCloud from konlpy.tag import Twitter from collections import Counter # open으로 txt파일을 열고 read()를 이용하여 읽는다. text = open(‘test.txt’).read() twitter = Twitter() # twitter함수를 통해 읽어들인 내용의 형태소를 분석한다. sentences_tag = [] sentences_tag = twitter.pos(text) noun_adj_list = [] # tag가 명사이거나 형용사인 단어들만 noun_adj_list에 넣어준다. for word, tag in sentences_tag: if tag in [‘Noun’ , ‘Adjective’]: noun_adj_list.append(word) # 가장 많이 나온 단어부터 40개를 저장한다. counts = Counter(noun_adj_list) tags = counts.most_common(40) # WordCloud를 생성한다. # 한글을 분석하기위해 font를 한글로 지정해주어야 된다. macOS는 .otf , window는 .ttf 파일의 위치를 # 지정해준다. (ex. ‘/Font/GodoM.otf’) wc = WordCloud(font_path=[otf 파일의 위치],background_color=”white”, max_font_size=60) cloud = wc.generate_from_frequencies(dict(tags)) # 생성된 WordCloud를 test.jpg로 보낸다. cloud.to_file(‘test.jpg’)

생성된 WordCloud를 파일로 생성하지 않고 화면에 띄우고 싶을 땐

import matplotlib.pyplot as plt

matplotlib 모듈을 import 후 코드의 마지막 cloud.to_file(‘test.jpg’) 대신

plt.figure(figsize=(10, 8)) plt.axis(‘off’) plt.imshow(cloud) plt.show()

이를 사용하여 화면에 출력할 수 있다.

5. 참고자료

위키백과: word cloud ko.wikipedia.org/wiki/태그_클라우드

collection 모듈 excelsior-cjh.tistory.com/94

wordcloud 사용법 :myjamong.tistory.com/48

워드 클라우드(Word Cloud) 생성하기(with 파이썬 DataFrame)

지난 포스팅에서는

R을 활용한 워드 클라우드를 생성해 보았어요.

이번에는

파이썬의 데이터 프레임을 활용하여

워드 클라우드를 생성해 보겠습니다.

워드 클라우드 생성을 위해 필요한

아주 간단한 설명은

위의 포스팅 글을 참고해 주시면 됩니다.

지난번과 동일한 데이터를 활용할게요.

패키지 설치 및 로딩

기본적으로 필요한 패키지는 아래 5가지입니다.

## 워드 클라우드 생성을 위한 패키지

from wordcloud import WordCloud

## 워드클라우드 모양을 변형시키고자 하는 이미지 활용에 사용 패키지

from PIL import Image

## 그래프 출력 패키지

import matplotlib.pyplot as plt

## 수치 연산 패키지

import numpy as np

## 데이터 핸들링

import pandas as pd

데이터 프레임 생성 및

딕셔너리 변환

워드 클라우드를 생성하는 방법 및 패키지는

매우 매우 많아요.

저는 데이터 분석에 가장 많이 활용되는

데이터 프레임 형태의 자료를

워드 클라우드로 표현하는 방법에 대해서

설명하겠습니다.

최종 워드 클라우드를 생성하기 위해서는

데이터 프레임을 딕셔너리 형태로 변환해야 합니다.

## 데이터 프레임 생성

df = pd.read_csv(“D:/Python_apply/fruit_vegetable.csv”, encoding = “utf-8”)

## 생성된 데이터 프레임을 딕셔너리로 변환

wc = df.set_index(“title”).to_dict()[“count”]

워드 클라우드 생성

wordCloud = WordCloud(

font_path = “malgun”, # 폰트 지정

width = 400, # 워드 클라우드의 너비 지정

height = 400, # 워드클라우드의 높이 지정

max_font_size=100, # 가장 빈도수가 높은 단어의 폰트 사이즈 지정

background_color = ‘white’ # 배경색 지정

).generate_from_frequencies(wc) # 워드 클라우드 빈도수 지정

그래프 출력

그래프로 출력하면 최종 그래프가 완성됩니다.

plt.figure()

plt.imshow(wordCloud)

plt.axis(‘off’)

워드 클라우드 모양 변경

원하는 이미지를 업로드하여

워드 클라우드 mask 옵션을 이용하면,

다른 모양의 워드 클라우드를 생성할 수 있어요.

img = Image.open(‘D:/Python_apply/원.png’) #이미지 오픈

imgArray = np.array(img) # 이미지의 각 셀을 수치로 변환

wordCloud = WordCloud(

font_path = “malgun”,

width = 400,

height = 400,

max_font_size=100,

background_color = ‘white’,

mask = imgArray # 사용하고자 하는 이미지 사용

).generate_from_frequencies(wc)

plt.figure()

plt.imshow(wordCloud)

plt.axis(‘off’)

이상으로 데이터 프레임을 활용해서

워드 클라우드로 변경해 보았습니다.

재밌고, 이쁘네요^^

[Matplotlib] 파이썬 워드 클라우드(Word Cloud) 시각화 예제

반응형

Python 워드 클라우드 색상, 크기, 모양 지정 방법 정리

안녕하세요. 이번 글에서는 파이썬의 WordCloud 라이브러리를 활용하여

단어의 빈도를 한 눈에 시각화할 수 있는 워드 클라우드를 그려보고

컬러맵, 크기, 모양 등의 속성을 변경하는 방법에 대하여 정리해보도록 하겠습니다.

파이썬 워드 클라우드 기본 예제

예를 들어, 단어의 빈도가 아래와 같은 데이터프레임으로 결과가 요약되었다고

가정해보고 이를 기반으로 워드 클라우드를 생성해보도록 하겠습니다.

(편의상 두개의 열로 잘라서 표현되었지만, 실제로는 AAA ~ ZZZ의 26개 행이 1개의 열입니다.)

워드 클라우드 생성에는 matplotlib 라이브러리와 WordCloud 라이브러리가 필요합니다.

기본 설정으로 워드 클라우드를 그리는 방법은 아래와 같습니다.

import matplotlib.pyplot as plt from wordcloud import WordCloud word_freq = df[‘frequency’].to_dict() wordcloud = WordCloud().generate_from_frequencies(word_freq) plt.imshow(wordcloud) plt.show()

높은 빈도의 단어가 큰 사이즈로 표현된 것은 알 수 있으나,

다소 밋밋한 시각화인 듯 합니다. 이제 이를 꾸미는 방법에 대해서 하나씩 살펴보겠습니다.

워드 클라우드 배경색, 글자 컬러맵 설정

background_color 속성으로 배경의 색상을 지정할 수 있으며,

colormap 인자로 글자 컬러맵을 고를 수 있습니다.

컬러맵의 종류는 아래의 공식 사이트를 참고해보시면 스타일 선택에 도움이 되실 듯 합니다.

예시로, 흰 배경에 가을 느낌 스타일로 워드 클라우드를 생성해보겠습니다.

또한, 이와 별개로 제목도 간단하게 지정해보았습니다.

wordcloud = WordCloud(background_color =’white’, colormap=’autumn’).generate_from_frequencies(dic) plt.imshow(wordcloud) plt.title(“Word Frequency”, size = 13) # 제목 지정 plt.show()

반응형

워드 클라우드 크기 지정, 축 제거

이번에는 Word Cloud를 정사각형 모양으로 변경하고,

그래프의 축을 제거하여 시각화의 효과를 극대화 시켜보도록 하겠습니다.

width, height 인자로 폭과 높이를 지정할 수 있는데,

plt.figure 속성에서 최종 크기를 이에 맞추어 지정해주어야 합니다.

또한, plt.axis 속성을 ‘off’로 지정하여 크게 의미를 가지지 않는 그래프 축을 제거하겠습니다.

wordcloud = WordCloud(background_color =’white’, colormap=’autumn’, width = 700, height = 700, random_state = 43).generate_from_frequencies(dic) plt.figure(figsize = (6, 6)) # 최종 워드 클라우드 사이즈 지정 plt.imshow(wordcloud) plt.title(“Word Frequency”, size = 13) plt.axis(‘off’) # 그래프 축 제거 plt.show()

추가로, 워드 클라우드를 generate할 때 마다 스타일이 미세하게 다르게 형성되는데,

random_state 인자를 지정해주면 생성할 때마다 완전히 동일한 결과를 받을 수 있게 됩니다.

워드 클라우드 모양 설정

마지막으로, 사각형이 아닌 다른 모양의 워드 클라우드를 생성하는 방법을 말씀드리겠습니다.

원하는 이미지를 가져온 뒤, mask 인자에 해당 이미지의 픽셀 값을 지정해주시면 됩니다.

예를 들어, 아래 이미지를 이용하여 하트 모양으로 Word Cloud를 생성해보겠습니다.

참고로, 배경색이 흰색 혹은 투명색인 이미지가 정확하게 원하는 모양을 반영하기에 좋습니다.

from PIL import Image import numpy as np im = Image.open(‘heart.png’) # 이미지 파일 읽어오기 mask_arr = np.array(im) # 픽셀 값 배열 형태 변환 wordcloud = WordCloud(background_color =’white’, colormap=’autumn’, width = 700, height = 700, random_state = 43, mask = mask_arr, prefer_horizontal = True).generate_from_frequencies(dic) plt.figure(figsize = (6, 6)) plt.imshow(wordcloud) plt.title(“Word Frequency”, size = 13) plt.axis(‘off’) plt.show()

원본 이미지인 하트 모양에 가깝게 워드 클라우드가 만들어진 모습을 볼 수 있었습니다.

또한, prefer_horizontal 속성을 True로 지정하여 수평 방향으로만 글자가 기록된 모습도

참고해주시면 원하는 스타일 시각화에 도움이 되실 듯 합니다.

python에서 워드클라우드 만드는 방법 정리

python에서 워드클라우드 만드는 방법 정리

https://www.onoffmix.com/event/259676

워드클라우드 Worldcloud 란?

자연어처리(NLP)시에 doc에서 언급된 단어들의 빈도수를 파악해서 빈도수가 높은 단어일 수록 크게 빈도수가 낮은 단어일 수록 작게 표현하는 시각화 기법.

필요 라이브러리

wordcloud

matplotlib

라이브러리 설치

1 2 pip install wordcloud pip install matplotlib cs

워드클라우드 만들기

1. 텍스트 가져오기

In :

1 text = “파이썬 워드클라우드 파이썬 좋아 워드클라우드 파이썬 라이브러리 좋아 파이썬 워드클라우드 예시 워드클라우드 우한 폐렴 조심 데이터 분석 우한 워드클라우드 중국 박쥐 감염 코로나바이러스” cs

2. wordcloud 생성

In :

1 2 3 4 import wordcloud import WordCloud import matplotlib.pyplot as plt wordcloud = WordCloud(font_path = ‘font/NanumGothic.ttf’ , background_color = ‘white’ ).generate(text) cs

※ WordCloud 옵션 정리

font_path 한글의 경우 깨지지 않게 폰트 경로 지정 background_color 백그라운드 색 지정 stopwords 불용어 지정

3. 이미지 출력 및 저장

In :

1 2 3 4 5 plt.figure(figsize = ( 22 , 22 )) #이미지 사이즈 지정 plt.imshow(wordcloud, interpolation = ‘lanczos’ ) #이미지의 부드럽기 정도 plt.axis( ‘off’ ) #x y 축 숫자 제거 plt.show() plt.savefig() Colored by Color Scripter cs

※ imshow옵션 정리

interpolation 옵션 값

Out :

4. 불용어 지정

In:

1 2 3 4 5 6 7 from wordcloud import WordCloud, STOPWORDS import matplotlib.pyplot as plt stopwords = set(STOPWORDS) stopwords.add( ‘워드클라우드’ ) wordcloud = WordCloud(font_path = ‘font/NanumGothic.ttf’ ,stopwords = stopwords,background_color = ‘white’ ).generate(text) cs

Out:

[python] 네이버 블로그 크롤링 결과로 WordCloud 시각화하기

반응형

안녕하세요!

오늘은 저번에 만들었던 네이버 블로그 크롤러를 이용해서 txt 파일을 만들고

만들어진 텍스트 파일을 이용하여 워드 클라우드(WordCloud)로 시각화해보도록 하겠습니다.

step1. 데이터 준비

위의 링크를 클릭하여 원하는 검색어 입력 후 관련 내용을 text 파일로 만들어 준비해 줍니다.

저는 ‘상암 맛집’ 이라는 키워드로 ‘blog_text.txt’ 파일을 만들어 보았습니다.

blog_text.txt 0.42MB

이제 위 파일 또는 다른 검색어로 크롤링한 파일을 파이썬으로 열어 줍니다.

파이썬으로 파일 주소를 입력할 때는 꼭 \를 //로 바꾸어 주세요!

# text 파일 읽어오기 #※※주소불러올때 \를 //로 바꾸어주기※※ blog_text = open(‘주소입력//blog_text.txt’,’rt’, encoding=’UTF-8′).read() # csv 파일일때 # import pandas as pd # blog_text = pd.read_csv(‘csv파일.csv’,encoding=’utf-8′) # blog_text = blog_text[‘형태소분석할 컬럼명’]

step2. Konlpy를 이용해 text의 형태소 분석하여 텍스트 전처리하기

텍스트 파일을 불러오고, 파일 안에 텍스트들을 konlpy를 이용해 명사, 형용사만 추출하도록 하겠습니다.

konlpy의 Okt를 이용하여 추출하도록 하겠습니다.

텍스트 한 줄 마다 형용사와 명사를 뽑아

n_adj라는 변수에 리스트를 만들어 단어를 추가해 줍니다.

from konlpy.tag import Okt from collections import Counter # Okt 함수를 이용해 형태소 분석 okt = Okt() line =[] line = okt.pos(blog_text) n_adj =[] # 명사 또는 형용사인 단어만 n_adj에 넣어주기 for word, tag in line: if tag in [‘Noun’,’Adjective’]: n_adj.append(word) # 명사 또는 형용사인 단어 및 2글자 이상인 단어 선택 시 # n_adj = [word for word, tag in line if tag in [‘Noun’,’Adjective’] and len(word) > 1] print(n_adj)

출력:

위에를 보면 ‘아니었네요. , 끝’ 등과 같은 워드클라우드를 만들 때 부적절한 단어가 있습니다.

위같은 단어를 ‘불용어(stopwords)’라고 하는데 이 불용어들을 리스트에서 지워 주도록 하겠습니다.

#제외할 단어 추가 stop_words = “아니었네요. 있어서 끝 ” #추가할 때 띄어쓰기로 추가해주기 stop_words = set(stop_words.split(‘ ‘)) # 불용어를 제외한 단어만 남기기 n_adj = [word for word in n_adj if not word in stop_words]

다음으로 같은 단어들이 2개 이상 나오는 것들을 counter를 이용하여 세어 주고,

가장 많이 나온 단어 100단어만 남기겠습니다.

#가장 많이 나온 단어 100개 저장 counts = Counter(n_adj) tags = counts.most_common(100)

그 후 이 100단어들로 워드클라우드를 만들어 보겠습니다.

step3. 워드클라우드 만들기

저는 워드 클라우드에 모양을 넣어주고 싶어 하트 모양의 사진을 준비하여

하트 모양의 워드 클라우드를 만들어 보았습니다.

이런 하트 사진 또는 원하는 사진을 (배경이 투명해야 합니다.) 다운로드 받아 주세요.

# 이미지 추가(워드크라우드 모양 설정) import numpy as np from PIL import Image mask = Image.new(“RGBA”,(2555,2275), (255,255,255)) #(2555,2575)는 사진 크기, (255,255,255)는 색을의미 image = Image.open(‘사진주소//heart.png’).convert(“RGBA”) x,y = image.size mask.paste(image,(0,0,x,y),image) mask = np.array(mask)

이렇게 이미지를 설정해주고,(제가 사용하는 이미지는 2555 x 2275 pixel 입니다.)

위의 mask를 사용하여 WordCloud를 만들어 주도록 하겠습니다.

한글을 사용하기 때문에 원하는 폰트 파일(.ttf)을 다운받아 설치하여 아래와 같이 파일 위치 및 이름을 적어줍니다.

저는 배경은(background) 검은색(black)으로, mask(모양)은 하트모양으로, 색상(colormap)은 프리즘(prism)을 이용해

워드 클라우드를 만들어 주었습니다.

from wordcloud import WordCloud ###WordCloud(워드크라우드) 만들기### #폰트지정 font=’C://Users//user//AppData//Local//Microsoft//Windows//Fonts//BMDOHYEON.ttf’ word_cloud = WordCloud(font_path=font, background_color=’black’,max_font_size=400, mask=mask,colormap=’prism’).generate_from_frequencies(dict(tags)) # 사이즈 설정 및 화면에 출력 import matplotlib.pyplot as plt plt.figure(figsize=(10,8)) plt.imshow(word_cloud) plt.axis(‘off’) #워드클라우드 사진으로 저장 #cloud.to_file(‘상암맛집_wc.png’) #또는 plt.savefig(‘상암맛집.png’, bbox_inches=’tight’) plt.show()

출력:

그럼 위에 모양과 같이 하트모양의 상암맛집과 관련한 워드클라우드가 만들어졌습니다. ㅎㅎ

저는 검색어를 상암맛집으로 했기 때문에 이를 보여주기 위해 상암 맛집을 그대로 놔두었지만,

상암 맛집을 검색해서 나온 내용을 텍스트로 만들었기때문에 실제 정확한 분석을 위해서는

‘상암, 맛집’ 이 두 단어를 불용어로 두어 처리하고 다른 불용어를 더 추가해 다듬는다면

더 퀄리티 높은 워드클라우드가 만들어질 것 같습니다.

++추가로 워드클라우드의 글자 색상은 워드클라우드 파라미터인 colormap을 통해 변경할 수 있습니다.

아래 사진을 참고하여 원하는 컬러 맵 이름을 파라미터에 적어주면 적용 됩니다 🙂

ex) colormap = ‘autumn’ 이런 식으로 작성하면 됩니다.

참고해 주세요 ^0^

컬러맵 종류

전체 코드

from konlpy.tag import Okt from wordcloud import WordCloud from collections import Counter # text 파일 읽어오기 #※※주소불러올때 \를 //로 바꾸어주기※※ blog_text = open(‘C://주소//blog_text.txt’,’rt’, encoding=’UTF-8′).read() #print(blog_text) # csv 파일일때 # import pandas as pd # blog_text = pd.read_csv(‘csv파일.csv’,encoding=’utf-8′) # blog_text = blog_text[‘형태소분석할 컬럼명’] # Okt 함수를 이용해 형태소 분석 okt = Okt() line =[] line = okt.pos(blog_text) n_adj =[] # 명사 또는 형용사인 단어만 n_adj에 넣어주기 for word, tag in line: if tag in [‘Noun’,’Adjective’]: n_adj.append(word) # 명사 또는 형용사인 단어 및 2글자 이상인 단어 선택 시 # n_adj = [word for word, tag in line if tag in [‘Noun’,’Adjective’] and len(word) > 1] #제외할 단어 추가 stop_words = “상암맛집 입니다 있어서 입니다.” #추가할 때 띄어쓰기로 추가해주기 stop_words = set(stop_words.split(‘ ‘)) n_adj = [word for word in n_adj if not word in stop_words] print(n_adj) #print(line) #print(n_adj) #가장 많이 나온 단어 100개 저장 counts = Counter(n_adj) tags = counts.most_common(100) # 이미지 추가(워드크라우드 모양 설정) import numpy as np from PIL import Image mask = Image.new(“RGBA”,(2555,2275), (255,255,255)) #(2555,2575)는 사진 크기, (255,255,255)는 색을의미 image = Image.open(‘C://Users//user//주소//heart.png’).convert(“RGBA”) x,y = image.size mask.paste(image,(0,0,x,y),image) mask = np.array(mask) ###WordCloud(워드크라우드) 만들기### #폰트지정 font=’C://폰트주소//폰트이름.ttf’ word_cloud = WordCloud(font_path=font, background_color=’black’,max_font_size=400, mask=mask,colormap=’prism’).generate_from_frequencies(dict(tags)) # 사이즈 설정 및 화면에 출력 import matplotlib.pyplot as plt plt.figure(figsize=(10,8)) plt.imshow(word_cloud) plt.axis(‘off’) #워드클라우드 사진으로 저장 #cloud.to_file(‘상암맛집_wc.png’) #또는 plt.savefig(‘상암맛집.png’, bbox_inches=’tight’) plt.show()

코드 파일

word_cloud_blog.py 0.00MB

마무리

오늘은 크롤링한 텍스트파일로 워드클라우드를 만들어 보았습니다.

항상 전처리가 시간이 많이 걸리고 전처리를 잘 해야 시각화도 잘 되어서 그 중요성을 다시 깨닫게 되네요ㅎㅎ

이번에는 블로그를 예제로 해서 워드클라우드를 만들었지만

뉴스나 연설문 등을 텍스트로 만들어 워드클라우드 해봐도 좋겠네요.

더 궁금한 것이 있다면 댓글 남겨주세요 🙂

반응형

WordCloud for Python documentation — wordcloud 1.8.1 documentation

WordCloud for Python documentation¶

Here you find instructions on how to create wordclouds with my Python wordcloud project. Compared to other wordclouds, my algorithm has the advantage of

filling all available space.

being able to use arbitraty masks.

having a stupid simple algorithm (with an efficient implementation) that can be easily modified.

being in Python

Check out the Gallery of Examples.

The code of the project is on Github: word_cloud

키워드에 대한 정보 워드 클라우드 파이썬

다음은 Bing에서 워드 클라우드 파이썬 주제에 대한 검색 결과입니다. 필요한 경우 더 읽을 수 있습니다.

이 기사는 인터넷의 다양한 출처에서 편집되었습니다. 이 기사가 유용했기를 바랍니다. 이 기사가 유용하다고 생각되면 공유하십시오. 매우 감사합니다!

사람들이 주제에 대해 자주 검색하는 키워드 [과제를 위한 파이썬] #3 – 워드클라우드 만들기

  • wordcloud
  • python
  • 파이썬
  • 워드클라우드
  • 시각화
  • 과제
[과제를 #위한 #파이썬] ##3 #- #워드클라우드 #만들기


YouTube에서 워드 클라우드 파이썬 주제의 다른 동영상 보기

주제에 대한 기사를 시청해 주셔서 감사합니다 [과제를 위한 파이썬] #3 – 워드클라우드 만들기 | 워드 클라우드 파이썬, 이 기사가 유용하다고 생각되면 공유하십시오, 매우 감사합니다.

See also  박효신 성형 전 | 박효신 변천사 답을 믿으세요

Leave a Reply

Your email address will not be published. Required fields are marked *