2 minute read

Project Process 별 자료 (총 4편)

따릉이 이용 데이터를 이용한 연관 키워드 분석 결과_요약

따릉이 이용 데이터를 이용한 연관 키워드 분석 (1)_Data 전처리 및 지도 시각화 편

따릉이 이용 데이터를 이용한 연관 키워드 분석 (2)_이용자 후기 크롤링 편

따릉이 이용 데이터를 이용한 연관 키워드 분석 (3)_키워드 정리 및 시각화

다룰내용

  • 크롤링한 자료 종합 후 키워드 추출, 빈출 키워드 시각화, 키워드 그룹핑을 통한 상위 대여소 특징 연관성 확인

키워드 추출 및 그룹핑

  • YouTube, Naver, Google, 브런치에서 수집한 제목 및 해시태그 데이터 수합
  • 조사, 어미, 중복 및 불완전한 단어(ex. 따릉, 자전거) 등 기타 해당되지 않는 항목 목록에서 삭제

빈출 키워드 시각화

  • Wordcloud 라이브러리를 이용하여 빈출 키워드를 표현함
  • 빈출이 많은 단어는 글자 크기가 크게, 반대의 경우에는 작게 출력
    image

키워드 그룹핑을 통한 상위 대여소 특징 연관성 확인

  • 위 결과를 토대로 이용 목적 관련하여 하기와 같은 기준으로 단어 그룹핑 진행

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개 소의 지리적 특징 비교한 결과, 위 특징과 유사한 것으로 추정됨.

image image

한계

  • 강의 참여 후 처음 진행한 프로젝트인 관계로 지식이 부족하여 추가적인 분석 툴을 사용하지 못함
  • 2~3년치 data로 연/계절/월별로 분석을 진행하였으나 자료의 용량이 방대하고 시간이 부족하였음
  • 결론은 도출하였으나 이를 뒷받침할 근거가 부족함. 추후 보완할 방법 모색 필요