I. 인스타그램 게시글 텍스트 데이터를 바탕으로 각 운동 종목을 대표하는 키워드들을 추출했다.
밑의 예시들은 모두 TF-IDF를 이용해서 각 운동을 대표하는 키워드들을 추출해본 것이다.
-
예를 들어서, 바차타(도미니칸 살사 춤)의 경우에는 “공연”, “홍대”, “동호회”, “클럽” 같은 키워드들이 다른 운동들과 바차타를 차별화한다고 볼 수 있다.
-
다른 예시로, 자이로토닉(재활 운동)의 경우는 “척추”, “재활”, “체형” 같은 키워드들이 다른 운동들과 자이로토닉을 구분한다고 볼 수 있다.
크롤링한 인스타그램 텍스트 데이터에다가 형태소 분석 모델들을 적용해본 결과는 다음과 같았다.
-
KoNLPy의 Mecab이 명사를 제일 잘 가려냄.
-
KoNLPy의 Okt(기존 Twitter)은 서술어를 잘 가려냄.
다만 아직 scikit-learn 모듈을 활용법을 잘 몰라서, TF-IDF를 바닐라로 코드를 짰다 ㅋㅋㅋㅋ 따라서 아직까지는 document 2개짜리만 가중치를 매기는 법만 안다. 현재 운동 종목 62개짜리를 갖고 가중치를 매기는 법은 공부 중이다.
[TF-IDF를 이용해서 각 운동 차별화하는 키워드 알아보기 코드]
[참고문헌들: 인스타그램 크롤링 -> Tokenizing(형태소 분석) -> TF-IDF]
II. 또한, 키워드를 입력했을 때, 운동 종목과의 단어 유사도를 파악해낼 수 있도록 모델을 만들었다.
-
예를 들어서, “척추”라는 키워드와 제일 유사한 운동 종목들은 아쿠아바이크, 트램폴린, 키네시스 등이 나온다. 반면 살사 댄스 같은 경우는 유사도가 떨어진다.
-
또 다른 예시로 “복근”이라는 키워드와 제일 유사한 운동 종목들은 폴댄스, 플라잉필라테스이다. 반면에 펜싱, 탱고 등은 유사도가 상대적으로 떨어진다.
Tokenizer은 soynlp를 이용했고, gensim으로 word2vec 모델을 만들어서 유사도를 파악했다.
[Word2vec으로 운동 종목과 키워드 간의 유사도 알아내기 코드]
[참고문헌: Word2Vec 튜토리얼과 Gensim]
+) 마지막으로, 이번 프로젝트를 진행하면서 토이프로젝트 아이디어가 하나 더 생겼다. 특정 "#단어"와 함께 다니는 이모티콘들을 알려주는 웹사이트를 만들면 사람들이 참고하지 않을까?
'Project Based Learning > 운동 추천 웹서비스 - FitCuration' 카테고리의 다른 글
Django 학습 3주일 차 - 몸져눕다 (0) | 2020.03.17 |
---|---|
Django 학습 2주일 차 - Node(Express.js)와의 비교 (0) | 2020.02.29 |
Django 학습 1주일 차 - 어떻게 하면 날로 먹을까? (0) | 2020.02.22 |
[Django] Application 폴더를 지워서, migration이 꼬였을 때 (0) | 2020.02.11 |
Notion API 사용 후기 & HTML 파일 구하기 (0) | 2020.01.24 |