따릉이 이용 데이터를 이용한 연관 키워드 분석 (3)_키워드 정리 및 시각화
Project Process 별 자료 (총 4편)
따릉이 이용 데이터를 이용한 연관 키워드 분석 결과_요약
따릉이 이용 데이터를 이용한 연관 키워드 분석 (1)_Data 전처리 및 지도 시각화 편
따릉이 이용 데이터를 이용한 연관 키워드 분석 (2)_이용자 후기 크롤링 편
따릉이 이용 데이터를 이용한 연관 키워드 분석 (3)_키워드 정리 및 시각화
다룰내용
- 크롤링한 자료 종합 후 키워드 추출, 빈출 키워드 시각화, 키워드 그룹핑을 통한 상위 대여소 특징 연관성 확인
키워드 추출 및 그룹핑
- YouTube, Naver, Google, 브런치에서 수집한 제목 및 해시태그 데이터 수합
- 조사, 어미, 중복 및 불완전한 단어(ex. 따릉, 자전거) 등 기타 해당되지 않는 항목 목록에서 삭제
빈출 키워드 시각화
- Wordcloud 라이브러리를 이용하여 빈출 키워드를 표현함
- 빈출이 많은 단어는 글자 크기가 크게, 반대의 경우에는 작게 출력
키워드 그룹핑을 통한 상위 대여소 특징 연관성 확인
- 위 결과를 토대로 이용 목적 관련하여 하기와 같은 기준으로 단어 그룹핑 진행
keyword_dict = {'한강':['한강', '뚝섬', '반포', '잠수교', '대교', '여의도', '잠수교', '잠실', '잠수교', '성수동'],
'나들이':['천', '공원', '여행', '데이트', '숲', '라이딩', '벚꽃', '투어', '코스', '산', 'Vlog', '카페', '주말',
'맛집', '날씨', '유원지', '힐링', '신혼부부', '커플', '청계천', '남산'],
'출퇴근':['출근', '퇴근', ' 출퇴근', '직장인'], '운동':['운동', '국토', '종주'],
'공유자전거':['카카오', '공유자전거', '대여', '전기자전거', '공공'],
'따릉이':['따릉이', '자전거'], '방법':{'방법', '이용', '대여', '후기', '반납'}}
result_tag_list = {"한강" : 0, "나들이" : 0, "운동" : 0, "출퇴근" : 0, "공유자전거" : 0, "따릉이" : 0,"방법" : 0}
for tag in word_cleaned:
for key in keyword_dict: # key == '한강' -> '나들이' -> ...
for keyword in keyword_dict[key]: # ['한강', '뚝섬', '반포'] -> keyword : '한강' ->'뚝섬' ->'반포'
if keyword in tag:
result_tag_list[key] += 1
- 기준 설정의 경우 해당 웹사이트 방문 및 지리적 특성 참고
- 그룹핑 결과를 토대로 따릉이 상위 50개 대여소 간의 지리적 공통점과 대여 목적의 유사도가 있는지 확인
코드 특이사항
- 품사 및 특정 단어를 구분하여 해당 단어 제거
- 검색 결과 관련 크롤링 결과의 필요없는 단어를 제거함으로써 분석을 용이하게 진행함
- konlpy 라이브러리를 이용하여 단어에 대한 품사 비교하여 불필요한 품사 제거
-
추가적으로 불완전한 단어를 제거함으로써 데이터 질을 향상
from collections import Counter from konlpy.tag import Twitter keywords = df_youtube['Title'].tolist() keywords = ''.join(keywords) twitter = Twitter() raw_pos_tagged = twitter.pos(keywords, norm=True, stem=True) del_list = ['타고', '따다', '브이', '로그', '하다', '있다', '되다', '이다', '돼다', '않다', '그렇다', '아니다', '이렇다', '그렇다', '어떻다'] word_cleaned = [] for word in raw_pos_tagged: # Foreign == ”, “ 와 같이 제외되어야할 항목들 if not word[1] in ["Josa", "Eomi", "Punctuation", "Foreign"]: # 한 글자로 이뤄진 단어들을 제외 & 원치 않는 단어들을 제외 if (len(word[0]) != 1) & (word[0] not in del_list): word_cleaned.append(word[0]) word_counted = Counter(word_cleaned) word_dic = dict(word_counted) sorted_word_dic = sorted(word_dic.items(), key=lambda x:x[1], reverse=True) sorted_word_dic
결론
- 검색 결과 한강, 서울, 나들이 등 다양한 키워드가 검색된 것으로 확인됨
- 키워드 그룹화 한 결과와 지리적 특징으로는 나들이를 하기 좋고 한강과 인접한 곳에서 자주 대여하는 것으로 추정되며,
대여 횟수가 많은 상위 50개 소의 지리적 특징 비교한 결과, 위 특징과 유사한 것으로 추정됨.
한계
- 강의 참여 후 처음 진행한 프로젝트인 관계로 지식이 부족하여 추가적인 분석 툴을 사용하지 못함
- 2~3년치 data로 연/계절/월별로 분석을 진행하였으나 자료의 용량이 방대하고 시간이 부족하였음
- 결론은 도출하였으나 이를 뒷받침할 근거가 부족함. 추후 보완할 방법 모색 필요