당초 감성분류를 하는 과정에서 사용된 embedding layer에서 학습한 vector들을 시각화하려고 하였으나, tensorboard에서 단어명이 보이지 않았다. tensorboard를 활용하여 시각화 했던 colab노트북도 링크를 남겨둔다. 감성분류는 딥러닝을 이용한 자연어 처리 입문 wiki문서를 참조하였다. IMDB 영화 리뷰를 데이터로 사용한 tensorflow tutorial을 참고하여 네이버 쇼핑 리뷰 데이터에 적용하였다.
단어명이 보이지 않는 문제를 해결하기 위해 여러 방법을 고민하다가 embedding layer에서 학습한 벡터를 시각화 하는 대신 바로 Word2Vec에서 학습한 벡터를 시각화하기로 마음을 바꿔먹었다. Word2Vec에서 학습한 벡터를 시각화하는 방법들은 구글에 검색하면 잘 정리된 문서를 쉽게 찾을 수 있고, 표준적인 방법이라고 생각되기 때문이다. embedding layer에서 학습한 벡터를 시각화 하는 것은 stackoverflow를 찾아봐도 이슈가 많은 듯하다. 그리고 embedding layer에서 학습한 벡터를 시각화하는 tensorflow tutorial을 따라가기 위해서는 deprecated된 SubwordTextEncoder를 써야했다. 따라서, embedding layer에서 학습한 벡터를 시각화하는 건 여러모로 이슈가 많다고 판단했다.
위와 같이 단어들을 시각화하기 위해서는 벡터의 수치 정보를 담고 있는 tensor.tsv파일과 metadata.tsv파일을 embedding projector website에 업로드 하여야 한다. 두 파일을 생성하는 코드를 colab노트북으로 남겨둔다.
단어명이 보이고 나서부터는 서로 유사한 단어가 무엇인지를 시각적으로 확인해볼 수 있다는 장점이 있다. 위 사진에서 오른쪽 Search box에 단어를 입력하면 가장 유사한 단어가 시각적, 수치적으로 모두 나타난다.
처음으로 진행해본 자연어 처리 관련 주제다. 자연어 처리는 한번도 해보지 않아서 미지의 영역이라 더 두려웠는데 잘 쓰여진 wiki문서들이 많아서 생각보다 수월하게 연습해볼 수 있었다. 특히, 네이버 쇼핑 리뷰 데이터로 감성분석을 진행하였는데, embedding layer, GRU, FC layer 3개 만으로도 약 92%에 해당하는 성능이 나와서 신기했다. 감성분석은 활용해볼 수 있는 분야가 많다고 생각하는데 이번 경험을 바탕으로 향후에 감성분석에 기반한 주가예측과 같은 주제를 진행해보고 싶다.