글 읽기 지도에 워드 클라우드를 활용하는 방법 : 워드 아트Word Art
페이지 정보
작성자 Denver 작성일24-09-13 21:53 조회84회 댓글0건관련링크
본문
BOAZ 워드클라우드 멘멘조 스터디를 하면서, 과제로 워드 클라우드와 관련된 부분이 있었다. 어떤 것을 워드 클라우드로 나타내야 할까 고민하다가, 예전에 학교에서 참빛 설계하면서 크롤링 했던 데이터가 있었다. 그래서 그 데이터를 이용해서 워드 클라우드로 나타내어보자는 생각을 했다. 아마, 내가 가지고 있는 데이터가 2022년 4월쯤 데이터인 것 같다.(1위가 TOMBOY고, 상위권에 Feel My Rhythm 같은 노래가 있는 걸 봐서). 근데, 이번엔 태블로가 아닌 파이썬을 이용해서 워드 클라우드로 나타내려고 한다. [나타내려는 아이유 노래]드라마, Strawberry moon, 라일락, 워드클라우드 Celebrity, Blueming, 내 손을 잡아, 겨울잠1. 라이브러리 설치 및 환경 세팅한국어 정보처리를 위한 파이썬 패키지인 KoNLPy(코엔엘파이)를 설치한다. TMI로 말하자면, KoNLPy를 만드신 분이 박은정 박사님인데 그 당시에 박사 준비생이었다고 한다. 2. 데이터 불러오기(관련 라이브러리 모두 import)[실행 결과]예전에 감성 분석했을 때 label을 써가지고, 다른 건 신경 쓸 필요 없다. 오로지 지금 이 게시물에서의 초점은 'text'열이다.3. Okt 불러오기KoNLPy 패키지 내에는 Okt뿐만 아니라 KKma, Hannanum 등 여러 가지가 있지만, Okt의 경우에는 띄어쓰기가 되어 워드클라우드 있는 문장에 대해서 처리를 잘한다고 한다. 그리고, Okt가 다른 것들에 비해 속도도 준수한 편이다.4. 단어의 카운트를 세기 위해 Counter 모듈 불러오기5. 텍스트 전처리(1) 노이즈 캔슬링 : 크롤링 과정에서 \n, \s와 같은 문자들이 있다. 이 부분을 제거하지 않으면 단어의 개수를 셀 때 \n 자체가 알파벳으로 들어가는 경우가 생긴다. 따라서, 불용어를 먼저 처리해 줘야 한다. 불용어 처리한 결과를 'preprocessed_text'라는 새로운 컬럼을 만들어서 저장한다. 추가로, 아이유 노래에 대해서만 분석을 시행할 거기 때문에 워드클라우드 아이유 노래만 추출한다.(2) 토크나이징 : 노이즈 캔슬링을 진행했으면, 이제 각 단어를 토큰화시켜야 한다. 그 과정을 토크나이징이라고 하는데, 토크나이징을 하는 기준은 형태소 관점에서도 할 수 있고, 품사 관점에서도 할 수 있다. 실제로 상황에 따라서 형태소 관점에서 볼 수도 있고, 그렇지 않은 경우에서 볼 수도 있다. (상황에 적절한 task를 사용하는 것이 중요) 나는 노래 가사를 워드 클라우드로 표현을 하려고 하니까, 형태소 관점보다는 품사 관점에서 보고, 품사 중에서도 명사, 동사, 형용사만 따로 워드클라우드 추출하는 것이 좋다. 이 과정을 품사 태깅(pos tagging)이라고 한다. 만약, 형태소 기준으로 나누려면 okt.morphs를 사용하면 된다.6. 단어 리스트 생성goal_text에 아이유 노래의 모든 가사가 다 들어가 있다. 이 부분을 다시 한번 클리닝해주고, 토크나이징과 품사 태깅을 한다. pos_filtering 함수를 통해서 명사, 동사, 형용사만 추출하였다. 실제로, 총 929개의 단어가 있고 이 중 명사는 616개이다. (나는 특별히 명사만 또 보기로 한 것일 뿐, 만약 비슷한 과제를 한다면 형용사 동사 넣어도 된다.) 616개의 명사 워드클라우드 중에서 길이가 1인 것은 명사로 보기 힘들기 때문에 길이가 1이 아닌 것들만 명사로 다시 취급한다.7. 상위 150개의 단어만 출력하기실행 결과가 아래와 같다.8. 워드 클라우드로 나타내기이제 워드 클라우드로 나타내기 위한 모든 과정을 마쳤다. 워드 클라우드로 나타낼 때 나올 수 있는 모양은 다양하다. 워드 클라우드로 나타내기 위해 다시 한번 환경을 세팅한다.(1) 기본 워드 클라우드[결과]'우리', 'ㅎ나', '지금','안녕', '얼마나', '그대로', '사랑', '언제'와 같은 키워드들이 크게 나타난 것을 볼 수 있다. 근데, 전체 틀이 워드클라우드 직사각형으로 너무 딱딱한 느낌을 준다. 그래서, 배경 자체를 하트로 주는 것은 어떨까?(2) 배경을 하트로 하기내가 원하는 배경을 바탕으로 워드 클라우드를 하고 싶은 경우를 보자. 내가 원하는 배경이 마스킹이 된다고 보면 되는데, 먼저 마스킹을 설정해 줘야 한다.[마스킹 설정]즉, 이 하트 위에다가 워드 클라우드를 하겠다는 이야기이다. 이 과정을 마치면 (1)에서 작성한 코드를 그대로 가져온다. 단, 여기에 mask =mask만 추가하면 된다.[결과](1)보다 훨씬 부드러운 느낌을 준다. 마지막으로, 색깔 배경을 입히는 방법도 있다. 이것은 워드클라우드 어떤 공식이 있다기보다는 검색해서 내가 원하는 색깔을 나타내어주는 코드를 찾는 것이 빠르다.앞 코드랑 차이 나는 점은 imshow 할 때 색깔을 설정했다는 점에서 차이가 있다. 물론, 개인적인 생각으로는 (2) 워드 클라우드가 제일 나아 보이긴 하지만, 상황에 따라 내가 의도하는 대로 워드 클라우드를 하는 것이 중요하다고 생각한다. 워드 클라우드를 많이 다뤄보지는 않았는데 멘멘 스터디를 하면서 직접 다뤄보게 되어서 좋았다. 더 좋은 시각화를 하는 방법을 계속 고민하면서 성장하는 것이 중요한 것 같다.
워드클라우드댓글목록
등록된 댓글이 없습니다.