제 15회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [YouPlace 팀] : 카프카와 스파크를 활용한 유튜브 영상 속 제주 명소 검색 BOAZ Bigdata
데이터 엔지니어링 프로젝트를 진행한 YouPlace팀에서는 아래와 같은 프로젝트를 진행했습니다.
<aside>
이젠 검색도 유튜브 시대
제주여행을 계획할 때 브이로그 영상을 많이 참고하실텐데요
수많은 영상들과 영상 속 분산된 명소들을 하나 하나 찾으려 생각하면 막막하지 않으셨나요?
이러한 고민을 갖고 계신 분들을 위해, 유튜브 브이로거들이 찾아간 여행 명소들을 지도에서 한 눈에 파악할 수 있도록 만들었어요
(github : https://github.com/Boaz-Youplace)
16기 엔지니어링 고은서 | 중앙대학교 소프트웨어학부
16기 엔지니어링 류정화 | 성신여자대학교 융합보안공학과
16기 엔지니어링 송경민 | 국민대학교 소프트웨어학과
* 국민대학교 빅데이터 분석학회 D&A Session에서 진행한 자료입니다. 웹 크롤링에 대한 기본적인 개념과 파이썬과 관련된 소스 코드를 담았습니다.
* 아래는 PPT에 포함된 크롤링 예제 코드입니다. https://drive.google.com/file/d/1ty7JLz8ccicPTrpry4dpkqCGuTclA68M/view?usp=sharing
제 15회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [YouPlace 팀] : 카프카와 스파크를 활용한 유튜브 영상 속 제주 명소 검색 BOAZ Bigdata
데이터 엔지니어링 프로젝트를 진행한 YouPlace팀에서는 아래와 같은 프로젝트를 진행했습니다.
<aside>
이젠 검색도 유튜브 시대
제주여행을 계획할 때 브이로그 영상을 많이 참고하실텐데요
수많은 영상들과 영상 속 분산된 명소들을 하나 하나 찾으려 생각하면 막막하지 않으셨나요?
이러한 고민을 갖고 계신 분들을 위해, 유튜브 브이로거들이 찾아간 여행 명소들을 지도에서 한 눈에 파악할 수 있도록 만들었어요
(github : https://github.com/Boaz-Youplace)
16기 엔지니어링 고은서 | 중앙대학교 소프트웨어학부
16기 엔지니어링 류정화 | 성신여자대학교 융합보안공학과
16기 엔지니어링 송경민 | 국민대학교 소프트웨어학과
* 국민대학교 빅데이터 분석학회 D&A Session에서 진행한 자료입니다. 웹 크롤링에 대한 기본적인 개념과 파이썬과 관련된 소스 코드를 담았습니다.
* 아래는 PPT에 포함된 크롤링 예제 코드입니다. https://drive.google.com/file/d/1ty7JLz8ccicPTrpry4dpkqCGuTclA68M/view?usp=sharing
3. 연구 배경
* 출처 : 소셜미디어와 검색 포털에 관한 리포트 2019 - 오픈서베이
■ 다양한 기술의 발전과 시대의 변화와 함께 정보
를 찾고 이용하는 행동은 증가 하지만 검색 포털
사용자 대부분이 검색 결과에 대한 만족도가 낮음.
■ 현 검색 시스템에서는 정보가 줄글식으로 구성.
■ 연관도가 떨어지는 경우도 많기 때문에 원하는
정보를 빠르고 정확하게 찾아 내는 것이 어려움.
4. 새로운 정보
연구 목적
연구 방법
특정 검색어를 입력 시 시각적으로 도움을 주는 자료의 출력과 검색하고자 하는 검색어와
유사한 단어들을 연관도에 따라 출력하여 정보전달을 증진 시키는 시스템을 구축하고자 함.
Python을 기반으로 웹 Crawling을 통한 정보 수집과 Word2Vec을 이용한 연관도 분석을 이용하여
검색결과를 시각화하여 웹 페이지에 나타나도록 진행.
■ Crawling이란?
분산ㆍ저장 돼 있는 정보를 수집 하여 검색 대상의 색인으로 포함시키는 기술로, 원하는 데이터를 얼
마나 빨리, 정확하게 찾아내는지가 관건.
■ Word2Vec이란?
워드 토큰을 벡터로 표현해주는 기법으로, 단어를 벡터화 할 때 문맥적 의미를 보존해주어 정량화된
벡터로 표현.
5. 흐름도
검색어 입력 데이터 수집 데이터 가공 화면에 표시
네이버 뉴스 페이지에 검색어 입력 후 Crawling하여
데이터 가공 후 구현한 웹 페이지에 출력한다.
6. 환경 구축
검색한 URL주소 획득&
결과 정보 crawling
crawling 결과 텍스트화
& 자연어 처리
상위 빈도수 단위 추출
워드 클라우드 생성
유사단어 Word2Vec
결과 출력
■ Flask를 통해 웹 페이지 구현
→ Flask란 파이썬 웹 어플리케이션을 만드는 프레임 워크.
■ HTML 형식의 코드를 링크하여 서식 변경
■ 기존의 검색창과 유사한 자체 서비스 플랫폼
검색어 입력
7. Web Crawling
검색어 입력
검색한 URL주소 획득&
결과 정보 crawling
crawling 결과 텍스트화
& 자연어 처리
상위 빈도수 단위 추출
워드 클라우드 생성
유사단어 Word2Vec
결과 출력
■ Beautifulsoup 라이브러리를 통해 페이지 크롤링
→ 웹 브라우저의 HTML, XML 문서를 분석하기 위한 Python 패키지로
웹 크롤링에 유용.
■ cleanText 함수를 정의해서 특수문자 제거.
■ crawling_text_ko 변수를 만들어서 stop_words로 단어 정리, ko 변수
를 만들어서 자연어처리(nltk).
8. Word Cloud 생성
■ 검색 할 때마다 워드 클라우드 이미지를 다르게
보여주기 위해 time 함수를 통해 문자열화 해서 now_time에 저장.
■ 가장 많이 나온 단어 50개로 워드 클라우드 생성, 이미지 저장.
검색어 입력
검색한 URL주소 획득&
결과 정보 crawling
Crawling 결과 텍스트화
& 자연어 처리
상위 빈도수 단위 추출
유사단어 Word2Vec
결과 출력
워드 클라우드 생성
9. Word2Vec
■ “final_value”에 Word2Vec한 유사단어를 저장
■ Word2Vec 모델은 비슷한 분포를 가진 단어들은 비슷한 의미
를 가진다 라는 가정에 입각하여 유사도 분석.
→ 여기서 비슷한 분포를 가졌다는 것은 기본적으로 단어들이 같
은 문맥에서 등장한다는 것을 의미.
→ 예를 들어 어느 문단에서 몇몇 단어가 반복해서 같이 등장하
는 일이 빈번하게 일어난다면, 이를 분석하여 단어들이 유사한
의미를 가진다는 것을 유추하는 것.
검색어 입력
검색한 URL주소 획득&
결과 정보 crawling
crawling 결과 텍스트화
& 자연어 처리
상위 빈도수 단위 추출
워드 클라우드 생성
유사단어 Word2Vec
결과 출력
10. 결과 출력
■ 앞에서 생성한 워드 클라우드 이미지, 빈도 그래프, Word2Vec
분석 결과 값들을 value.html을 통해 화면에 표시.
검색어 입력
검색한 URL주소 획득&
결과 정보 crawling
crawling 결과 텍스트화
& 자연어 처리
상위 빈도수 단위 추출
워드 클라우드 생성
유사단어 Word2Vec
결과 출력
12. - 검색결과의 키워드와 연관성을 시각화하여 한눈에 보여주기 때문에 핵심 이슈를 빠르게 파악 가능.
- 기존의 유사단어 시스템( Ex)연관 검색어 )에서 보여주지 않았던 유사 빈도를 통해 우선 순위를 정해
검색의 효율성 증대.
- 파악한 핵심 이슈를 가지고 좀 더 관심 있는 이슈를 찾아내서 필요한 정보를 찾는 시간을 줄일 수 있
을 것으로 기대.
기대 효과
Python Flask, Word Cloud, Word2Vec을 통한 개선된 웹 기반 검색 시스템 제시.
- Word Cloud를 통해 어떠한 단어가 결과로 나왔는지, 결과 단어들의 빈도수 요약.
- Word2Vec을 활용한 유사 단어의 정리 및 유사도 산출.
13. ■ Word2Vec 학습, 자연어 처리 미흡으로 인한 유사도 정확성의 저하
■ 서버 문제로 한 번에 검색 안 될 경우도 있음
■ 다른 호스트 에서도 쓸 수 있도록 상용화 시키지 못함
■ 현 시스템으로는 연속 검색 불가
향후 보완점
14. ▪ Hillar, Gaston C, “RESTful 파이썬 웹 서비스 제작” 에이콘, 2017
▪ RYAN MITCHELL, “파이썬으로 웹 크롤러 만들기” 한빛 미디어, 2016
▪ 맹성현, “정보 검색 기술의 현황과 발전 방향”, 2004
▪ 오픈서베이, 소셜미디어와 검색 포털에 관한 리포트 2019 www.opensurvey.co.kr