string 문자열에서 단어들의 빈도를 활용하여서 글자의 크기 또는 굵기에 변화를 주어서 시각적 이미지로 표현하는 것을 의미
설치하기 pip install wordcloud (colab은 따로 설치할 필요 없음)
라이브러리 선언 from wordcloud import WordCloud import matplotlib.pyplot as plt (matplotlib라이브러리를 기반으로 함께 선언해 준다.)
WordCloud 기초
제일 먼저 위키피디아를 활용하여서 영어 텍스트를 수집해 준다.
wikipedia python 검색텍스트 복사하기텍스트를 메모장에 붙여넣기이름 변경 후 UTF-8로 저장해주기
이제 colab에서 파일을 불러오고 업로드해준다.
open('파일 경로', encoding='UTF-8')로 지정해 준다.
file=open("/content/wikipedia_pyton.txt",'r',encoding="utf-8")
text=file.read()
text
From Wikipedia, the free encyclopedia\nThis article is about the python programming language. For the animal, see Python (genus).\nPython\n\nParadigm\tMulti-paradigm: object-oriented,[1] procedural (imperative), functional, structured, reflective\nDesigned by\tGuido van Rossum\nDeveloper\tPython Software Foundation\nFirst appeared\t20 February 1991; 33 years ago[2]\nStable release\t\n3.13.0 Edit this on Wikidata / 7 October 2024; 30 days ago\nTyping discipline\tduck, dynamic, strong;[3] optional type annotations (since 3.5, but those hints are ignored, except with unofficial tools)[4]\nOS\t\nTier 1: 64-bit Linux, macOS; 64- and 32-bit Windows 10+[5]\nTier 2: E.g. 32-bit WebAssembly (WASI)\nTier 3: 64-bit Android,[6] iOS, FreeBSD, and (32-bit) Raspberry Pi OS\nUnofficial (or has been known to work): Other Unix-like/BSD variants) and a few other platforms[7][8][9]\nLicense\tPython Software Foundation License\nFilename extensions\t.py, .pyw, .pyz,[10]\n.pyi, .pyc, .pyd\nWebsite\tpython.or...
text에 file에서 가져온 내용들을 지정해 주었다면 다음 단계를 적용해 준다.
변수명=WordCloud(). generate(텍스트 변수명): 텍스트 기반으로 wordcloud생성 plt.imshow(변수명): 문자열 기반의 데이터를 시각화해서 출력해 준다.
from wordcloud import WordCloud
import matplotlib.pyplot as plt
wc_output=WordCloud().generate(text)
plt.imshow(wc_output)
plt.show()
WordCloud 속성
width, heigth: 이미지의 크기 지정
from wordcloud import WordCloud
import matplotlib.pyplot as plt
wc_output=WordCloud(width=500, height=500).generate(text)
plt.imshow(wc_output)
plt.show()
from wordcloud import WordCloud
import matplotlib.pyplot as plt
from PIL import Image
import numpy as np
mask=np.array(Image.open("/content/heart_mask.jpg"))
wc_output=WordCloud(width=500, height=500,
background_color='white',
mask=mask).generate(text)
plt.imshow(wc_output)
plt.axis("off")
plt.show()
이미지 마스크 결과는 변수명. to_file('화 일명')으로 저장할 수 있다.
한글 텍스트를 활용한 워드 클라우드
데이터를 준비하는 과정은 영어 텍스트와 비슷한 과정으로 해주면 된다.
file=open("/content/wiipedia_한글.txt")
text=file.read()
text
2024년 위키백과 아시아의 달이 11월 1일부터 한달 동안 진행됩니다.\n 한국 - 일본 우호 에디터톤 오프라인 모임이 11월 9일 진행됩니다.\n목차 숨기기\n처음 위치\n개요\n역사\n역사 하위섹션 토글하기\n파이썬 2\n파이썬 3\n인기\n기능과 철학\n기능과 철학 하위섹션 토글하기\n라이브러리\n문법\n자료형\n동작하는 플랫폼\n한글 다루기\n사용 현황\n사용 현황 하위섹션 토글하기\n파이썬으로 작성된 자유-오픈 소스 소프트웨어\n파이썬을 내부적으로 사용하는 소프트웨어\n파이썬을 이용하고 있는 기업·정부 기관\n실행 속도 향상 관련\nIDE 목록\n비평\n빌드\n같이 보기\n각주\n외부 링크\n파이썬\n\n문서\n토론\n읽기\n편집\n역사 보기\n\n도구\n보이기 숨기기\n텍스트\n\n작음\n\n표준\n\n큼\n너비\n\n표준\n\n넓게\n위키백과, 우리 모두의 백과사전.\n\n 이 문서는 프로그래밍 언어에 관한 것입니다. 그리스 신화의 괴물에 대해서는 피톤 문서를, 미사일에 대해서는 파이톤 5 미사일 문서를 참고하십시오.\n파이썬\nPython\n\n패러다임\t프로그래밍 패러다임: 객체 지향 프로그래밍, 명령형 프로그래밍, 함수형 프로그래밍, 절차적 프로그래밍....
하지만 이를 시각화하면 텍스트가 제대로 나오지 않는 문제가 발생한다.
from wordcloud import WordCloud
import matplotlib.pyplot as plt
from PIL import Image
import numpy as np
mask=np.array(Image.open("/content/heart_mask.jpg"))
wc_output=WordCloud(width=500, height=500,
background_color='white',
mask=mask).generate(text)
plt.imshow(wc_output)
plt.axis("off")
plt.show()