본문 바로가기

졸업프로젝트

워드 클라우드

앞서 만들었던 데이터들! 

저렇게 그냥 텍스트 파일로 보면 한눈에 파악하기 어렵겠죠?

요즘 방송, 특히 뉴스에서도 사용되는 "워드 클라우드" 혹시 들어보셨나요??

저희가 앞서 한 전처리 된 데이터들을 시각화하여 사람들이 보기에 어떠한 단어가 중요한지 한눈에 쉽게 볼 수 있도록 단어의 중요도를 표현할 수 있는 것을 말합니다!


그럼 이번엔 만든 데이터를 가지고 워드클라우드를 만들어 볼까요?

워드클라우드는 jupyter notebook을 이용해 만들어보도록 하겠습니다!

 

jupyter notebook에 들어가 실행파일을 생성해줍니다.

New - Python 3을 누르면 

이렇게 생성됩니다. 지문3은 파일 이름으로 원하는 이름으로 바꾸시면 됩니다.

이제 워드클라우드에 필요한 패키지들을 불러오겠습니다.

아래 코드를 입력하시고 실행하면 됩니다. 만약 설치가 안되었다고 하면 그 전에 

이렇게 코드를 작성하시고 설치한 뒤 실행시켜주세요.

그 다음 워드 클라우드에서 사용될 이미지를 하나 골라서 저장해주세요. 워드클라우드는 사용자가 사용하고 싶은 이미지 위에 단어의 중요도 크기별로 그려져 나오기 때문에 이미지를 저장해주셔야 합니다! 아무 이미지나 상관없습니다. 그리고 이미지는 꼭 png파일로 저장해주셔야 합니다!

저는 https://velog.io/@bluespot9/%EB%82%B4-%EC%B9%B4%ED%86%A1%EB%B0%A9-%EC%9B%8C%EB%93%9C-%ED%81%B4%EB%9D%BC%EC%9A%B0%EB%93%9C-%EB%A7%8C%EB%93%A4%EA%B8%B0 

 

내 카톡방 워드 클라우드 만들기,

수업 목표파이썬으로 텍스트 파일을 읽고 쓸 수 있다.문자열에서 원하는 부분만 잘라낼 수 있다.파이썬으로 워드클라우드를 만들 수 있다.목차모든 토글을 열고 닫는 단축키Windows : Ctrl + alt + t M

velog.io

이 분의 블로그에 있는 구름 사진을 사용했습니다!

저장된 이미지를 불러옵니다. 반드시 경로를 잘 써주세요!

그리고 이미지와 아까 만들어 놓은 데이터 파일은 같은 경로에 있는게 좋습니다.

아까 저장한 데이터 파일도 불러줍니다.

['세기',
 '전반',
 '서양',
 '태양',
 '중심',
 '설',
 '지구',
 '중심',
 '설',
 '대안',
 '제시',
 '시작',
 '천문학',
 '분야',
 '개혁',
 '경험',
 '주의',
 '확산',
 '수리',
 '과학',
 '발전',
 '통해',
 '형이상학',
 '뒤',
 '변혁',
 '서양',
 '우주론',
 '이',
 '전파',
 '중국',
 '중국',
 '서양',
 '우주론',
 '회통',
 '시도',
 '전개',
 '이',
 '과정',
 '자신',
 '지적',
 '유산',
 '대한',
 '관심',
 '제',
 '문제',
 '단순화',
 '수학',
 '전통',
 '코페르니쿠스',
 '천체',
 '운행',
 '기술',
 '방법',
 '그것',
 '형이상학적',
 '문제',
 '별',
 '관심',
 '고대',
 '아리스토텔레스',
 '프톨레마이오스',
 '우주',
 '중심',
 '고정',
 '움직',
 '지구',
 '주위',
 '달',
 '태양',
 '다른',
 '행성',
 '구들',
 '항성',
 '항성',
 '천구',
 '회전',
 '지구',
 '중심',
 '설',
 '내',
 '그',
 '달리',
 '코페르니쿠스',
 '태양',
 '우주',
 '중심',
 '고정',
 '그',
 '주위',
 '지구',
 '비롯',
 '행성',
 '공전',
 '지구',
 '자전',
 '우주',
 '모형',
 '프톨레마이오스',
 '수의',
 '원',
 '행성',
 '가시',
 '운동',
 '설명',
 '수',
 '행성',
 '태양',
 '공전',
 '주기',
 '점',
 '단순',
 '충족',
 '아리스토텔레스',
 '형이상학',
 '고수',
 '다수',
 '지식인',
 '종교',
 '지도자',
 '그',
 '이론',
 '그것',
 '지상계',
 '천상계',
 '대립',
 '아리스토텔레스',
 '이분법',
 '구도',
 '무너',
 '리',
 '신의',
 '형상',
 '인간',
 '한갓',
 '행성',
 '거주',
 '전락',
 '것',
 '때문',
 '세기',
 '후반',
 '브라헤',
 '코페르니쿠스',
 '천문학',
 '장점',
 '인정',
 '아리스토텔레스',
 '형이상학',
 '상충',
 '피하',
 '고자',
 '우주',
 '중심',
 '지구',
 '고정',
 '달',
 '태양',
 '항성',
 '지구',
 '주위',
 '공전',
 '지구',
 '외',
 '행성',
 '태양',
 '주위',
 '공전',
 '모형',
 '제안',
 '케플러',
 '우주',
 '적',
 '질서',
 '신봉',
 '형이상학',
 '플라톤',
 '주의',
 '매료',
 '때문',
 '태양',
 '우주',
 '중심',
 '배치',
 '단순',
 '추구',
 '코페르니쿠스',
 '천문학',
 '그',
 '경험',
 '주의자',
 '브라헤',
 '천체',
 '관측',
 '활용',
 '태양',
 '주위',
 '공전',
 '행성',
 '운동',
 '법칙',
 '수립',
 '수',
 '우주',
 '단순',
 '이',
 '법칙',
 '아리스토텔레스',
 '형이상학',
 '더',
 '이상',
 '존',
 '수',
 '세기',
 '후반',
 '뉴턴',
 '태양',
 '중심',
 '설',
 '역학',
 '정당화',
 '그',
 '만유인력',
 '가설',
 '로부터',
 '케플러',
 '행성',
 '운동',
 '법칙',
 '성공',
 '연역',
 '때',
 '가정',
 '만유인력',
 '두',
 '질점',
 '이',
 '서로',
 '힘',
 '그',
 '크기',
 '두',
 '질점',
 '질량',
 '곱',
 '비례',
 '거리',
 '제곱',
 '반비례',
 '지구',
 '포함',
 '천체',
 '밀도',
 '균질',
 '거나',
 '구',
 '대칭',
 '구라',
 '천체',
 '그',
 '천체',
 '밖',
 '질점',
 '만유인력',
 '그',
 '천체',
 '부피',
 '요소',
 '각각',
 '그',
 '천체',
 '밖',
 '질점',
 '만유인력',
 '모두',
 '구',
 '수',
 '또한',
 '여기',
 '지구',
 '질량',
 '태양',
 '지구',
 '서로',
 '만유인력',
 '서로',
 '음',
 '증명',
 '수',
 '뉴턴',
 '이',
 '원리',
 '적용',
 '달',
 '공전',
 '궤도',
 '사과',
 '낙하',
 '운동',
 '등',
 '관',
 '실',
 '값',
 '연역',
 '함',
 '만유인력',
 '실재',
 '입증',
 '세기',
 '말',
 '중국',
 '본격',
 '유입',
 '서양',
 '과학',
 '청',
 '왕조',
 '중국',
 '역법',
 '기반',
 '서양',
 '천문학',
 '모델',
 '계산법',
 '수용',
 '시헌력',
 '공식',
 '채택',
 '함',
 '그',
 '위상',
 '구체화',
 '브라헤',
 '케플러',
 '천문',
 '이론',
 '차례대로',
 '수용',
 '정확도',
 '시헌력',
 '생활',
 '리듬',
 '자리',
 '중국',
 '지식인',
 '서양',
 '과학',
 '중국',
 '지적',
 '유산',
 '연결',
 '효율',
 '더라도',
 '불온',
 '요소',
 '이',
 '서양',
 '과학',
 '매료',
 '학자',
 '방식',
 '서양',
 '과학',
 '중국',
 '전통',
 '사이',
 '관계',
 '음',
 '통해',
 '이',
 '문제',
 '해결',
 '세기',
 '웅명우',
 '방이',
 '등',
 '중국',
 '고대',
 '문헌',
 '수록',
 '우주론',
 '대해',
 '부정',
 '태도',
 '견',
 '지하',
 '면서',
 '성리학',
 '론',
 '입',
 '각하',
 '실증',
 '서양',
 '과학',
 '재',
 '해석',
 '독창',
 '이론',
 '제시',
 '수성',
 '금성',
 '태양',
 '주위',
 '회전',
 '그',
 '태양계',
 '학설',
 '브라헤',
 '영향',
 '태양',
 '크기',
 '대한',
 '서양',
 '천문학',
 '이론',
 '의문',
 '제기',
 '기',
 '빛',
 '결부',
 '제시',
 '광학',
 '이론',
 '그',
 '창안',
 '것',
 '세기',
 '후반',
 '왕석',
 '문정은',
 '서양',
 '과학',
 '영향',
 '경험',
 '추론',
 '수학',
 '계산',
 '통해',
 '우주',
 '원리',
 '파악',
 '서양',
 '과학',
 '모두',
 '중국',
 '고전',
 '것',
 '웅명우',
 '등',
 '못',
 '채',
 '성리학',
 '형이상학',
 '비판',
 '문정은',
 '고대',
 '문헌',
 '언급',
 '하늘',
 '땅',
 '네',
 '모퉁이',
 '수',
 '것',
 '증자',
 '말',
 '땅',
 '서양',
 '이론',
 '등',
 '서양',
 '과학',
 '중국',
 '원론',
 '뒷받침',
 '중국',
 '천문학',
 '중심',
 '서양',
 '천문학',
 '회통',
 '정의',
 '입장',
 '세기',
 '초',
 '기점',
 '중국',
 '공식',
 '입장',
 '채택',
 '이',
 '입장',
 '중국',
 '역대',
 '지식',
 '성과',
 '물',
 '망라',
 '총서',
 '사고전서',
 '그대로',
 '반영',
 '이',
 '총서',
 '편집자',
 '고대',
 '당시',
 '천문',
 '관련',
 '문헌',
 '정리',
 '수록',
 '이',
 '고대',
 '문헌',
 '우주론',
 '재',
 '해석',
 '확인',
 '경향',
 '세기',
 '중엽',
 '주']

텍스트 파일을 잘 불러온 것을 확인할 수 있습니다. 

그 후 이전 포스팅과 같이 중복된 단어의 개수가 얼마나 되는지 한번 보겠습니다.

[('서양', 15),
 ('중국', 13),
 ('태양', 12),
 ('그', 12),
 ('지구', 11),
 ('이', 10),
 ('중심', 9),
 ('과학', 9),
 ('세기', 8),
 ('우주', 8),
 ('행성', 8),
 ('천문학', 7),
 ('천체', 7),
 ('형이상학', 6),
 ('주위', 6),
 ('공전', 6),
 ('수', 6),
 ('이론', 6),
 ('만유인력', 6),
 ('고대', 5),
 ('아리스토텔레스', 5),
 ('설', 4),
 ('우주론', 4),
 ('코페르니쿠스', 4),
 ('운동', 4),
 ('것', 4),
 ('브라헤', 4),
 ('질점', 4),
 ('등', 4),
 ('문헌', 4),
 ('제시', 3),
 ('경험', 3),
 ('통해', 3),
 ('문제', 3),
 ('고정', 3),
 ('달', 3),
 ('항성', 3),
 ('단순', 3),
 ('후반', 3),
 ('케플러', 3),
 ('법칙', 3),
 ('서로', 3),
 ('입장', 3),
 ('주의', 2),
 ('회통', 2),
 ('지적', 2),
 ('유산', 2),
 ('대한', 2),
 ('관심', 2),
 ('수학', 2),
 ('전통', 2),
 ('그것', 2),
 ('프톨레마이오스', 2),
 ('회전', 2),
 ('모형', 2),
 ('지식인', 2),
 ('때문', 2),
 ('매료', 2),
 ('뉴턴', 2),
 ('연역', 2),
 ('두', 2),
 ('크기', 2),
 ('질량', 2),
 ('구', 2),
 ('밖', 2),
 ('요소', 2),
 ('모두', 2),
 ('음', 2),
 ('원리', 2),
 ('함', 2),
 ('말', 2),
 ('수용', 2),
 ('시헌력', 2),
 ('공식', 2),
 ('채택', 2),
 ('천문', 2),
 ('웅명우', 2),
 ('수록', 2),
 ('성리학', 2),
 ('재', 2),
 ('해석', 2),
 ('영향', 2),
 ('문정은', 2),
 ('땅', 2),
 ('총서', 2),
 ('전반', 1),
 ('대안', 1),
 ('시작', 1),
 ('분야', 1),
 ('개혁', 1),
 ('확산', 1),
 ('수리', 1),
 ('발전', 1),
 ('뒤', 1),
 ('변혁', 1),
 ('전파', 1),
 ('시도', 1),
 ('전개', 1),
 ('과정', 1),
 ('자신', 1),
 ('제', 1),
 ('단순화', 1),
 ('운행', 1),
 ('기술', 1),
 ('방법', 1),
 ('형이상학적', 1),
 ('별', 1),
 ('움직', 1),
 ('다른', 1),
 ('구들', 1),
 ('천구', 1),
 ('내', 1),
 ('달리', 1),
 ('비롯', 1),
 ('자전', 1),
 ('수의', 1),
 ('원', 1),
 ('가시', 1),
 ('설명', 1),
 ('주기', 1),
 ('점', 1),
 ('충족', 1),
 ('고수', 1),
 ('다수', 1),
 ('종교', 1),
 ('지도자', 1),
 ('지상계', 1),
 ('천상계', 1),
 ('대립', 1),
 ('이분법', 1),
 ('구도', 1),
 ('무너', 1),
 ('리', 1),
 ('신의', 1),
 ('형상', 1),
 ('인간', 1),
 ('한갓', 1),
 ('거주', 1),
 ('전락', 1),
 ('장점', 1),
 ('인정', 1),
 ('상충', 1),
 ('피하', 1),
 ('고자', 1),
 ('외', 1),
 ('제안', 1),
 ('적', 1),
 ('질서', 1),
 ('신봉', 1),
 ('플라톤', 1),
 ('배치', 1),
 ('추구', 1),
 ('주의자', 1),
 ('관측', 1),
 ('활용', 1),
 ('수립', 1),
 ('더', 1),
 ('이상', 1),
 ('존', 1),
 ('역학', 1),
 ('정당화', 1),
 ('가설', 1),
 ('로부터', 1),
 ('성공', 1),
 ('때', 1),
 ('가정', 1),
 ('힘', 1),
 ('곱', 1),
 ('비례', 1),
 ('거리', 1),
 ('제곱', 1),
 ('반비례', 1),
 ('포함', 1),
 ('밀도', 1),
 ('균질', 1),
 ('거나', 1),
 ('대칭', 1),
 ('구라', 1),
 ('부피', 1),
 ('각각', 1),
 ('또한', 1),
 ('여기', 1),
 ('증명', 1),
 ('적용', 1),
 ('궤도', 1),
 ('사과', 1),
 ('낙하', 1),
 ('관', 1),
 ('실', 1),
 ('값', 1),
 ('실재', 1),
 ('입증', 1),
 ('본격', 1),
 ('유입', 1),
 ('청', 1),
 ('왕조', 1),
 ('역법', 1),
 ('기반', 1),
 ('모델', 1),
 ('계산법', 1),
 ('위상', 1),
 ('구체화', 1),
 ('차례대로', 1),
 ('정확도', 1),
 ('생활', 1),
 ('리듬', 1),
 ('자리', 1),
 ('연결', 1),
 ('효율', 1),
 ('더라도', 1),
 ('불온', 1),
 ('학자', 1),
 ('방식', 1),
 ('사이', 1),
 ('관계', 1),
 ('해결', 1),
 ('방이', 1),
 ('대해', 1),
 ('부정', 1),
 ('태도', 1),
 ('견', 1),
 ('지하', 1),
 ('면서', 1),
 ('론', 1),
 ('입', 1),
 ('각하', 1),
 ('실증', 1),
 ('독창', 1),
 ('수성', 1),
 ('금성', 1),
 ('태양계', 1),
 ('학설', 1),
 ('의문', 1),
 ('제기', 1),
 ('기', 1),
 ('빛', 1),
 ('결부', 1),
 ('광학', 1),
 ('창안', 1),
 ('왕석', 1),
 ('추론', 1),
 ('계산', 1),
 ('파악', 1),
 ('고전', 1),
 ('못', 1),
 ('채', 1),
 ('비판', 1),
 ('언급', 1),
 ('하늘', 1),
 ('네', 1),
 ('모퉁이', 1),
 ('증자', 1),
 ('원론', 1),
 ('뒷받침', 1),
 ('정의', 1),
 ('초', 1),
 ('기점', 1),
 ('역대', 1),
 ('지식', 1),
 ('성과', 1),
 ('물', 1),
 ('망라', 1),
 ('사고전서', 1),
 ('그대로', 1),
 ('반영', 1),
 ('편집자', 1),
 ('당시', 1),
 ('관련', 1),
 ('정리', 1),
 ('확인', 1),
 ('경향', 1),
 ('중엽', 1),
 ('주', 1)]

중복된 단어의 개수도 잘 나오네요! 그런데 저희가 여기서 토큰화한 단어들이 모두 명사일까요??

잘 보면 그대로, 그, 이 등 명사가 아닌 것들이 나오네요! 명사만 보여주고 싶다면 이러한 용어들을 지워야겠죠?

 

다음과 같이 코드를 입력해 불용어들을 써주세요! 안타깝지만 수작업으로 일일이 하나씩 다 써주셔야 합니다..ㅠㅠ

그 후 다음과 같이 입력해줍니다. font_path는 설정에 들어가셔서 폰트 경로를 입력하셔야합니다!

그 후 generate에 중복된 단어수와 단어를 저장한 str_txt를 입력하셔야합니다. 

그리고 생성된 워드클라우드 이름을 저장해주셔야 합니다. wc.to_file()에 example1대신 다른 이름을 써 저장해보세요!

다 하고 나면

이렇게 이미지 파일이 생깁니다. 이미지 파일을 클릭하면 

이렇게 생성된 것을 확인 할 수 있습니다!

 

아까 많이 사용된 단어를 정리하자면 서양(15),중국(13),태양(12),지구(11),중심(9),과학(9),세기, 우주 행성(8),천문학, 천체(7) 순이었는데요 단어의 크기는 결과와 조금 다르네요!

아무래도 단어 혼자 그 자체로 쓰인 경우도 있지만 함께 쓰였지만 띄어쓰기 때문에 분리되어 중복 세어진 것도 있어 다르게 나온것 같습니다. 

 

하지만 그래도 아까 전처리했던 데이터를 그냥 메모장으로 보는 것 보단 이렇게 시각화로 나타내니 어떠한 단어가 많이 쓰였고 중요한지 보기 편해졌습니다.

 

다양한 지문들을 이용해서 한번 자신만의 워드클라우드를 만들어 보세요 :)

 

출처 : 지문) 2019년 수능 국어 [27-32] 지문

코드 참조 :  https://konlpy.org/ko/latest/

 

KoNLPy: 파이썬 한국어 NLP — KoNLPy 0.5.2 documentation

KoNLPy: 파이썬 한국어 NLP KoNLPy("코엔엘파이"라고 읽습니다)는 한국어 정보처리를 위한 파이썬 패키지입니다. 설치법은 이 곳을 참고해주세요. NLP를 처음 시작하시는 분들은 시작하기 에서 가볍게

konlpy.org

 

코드참조 : https://github.com/amueller/word_cloud

 

GitHub - amueller/word_cloud: A little word cloud generator in Python

A little word cloud generator in Python. Contribute to amueller/word_cloud development by creating an account on GitHub.

github.com