본문 바로가기
IT박사

[빅데이터] 원하는 정보만 수집하는 크롤링 및 빅데이터 분석 활용

by GDBS 2021. 7. 6.
728x170

빅데이터 분석의 사회적 필요성

현대사회에서의 빅데이터에 대한 지속적인 관심과 실험적인 시도들은 다변화된 현대 사회를 보다 정교하게 예측하고 효율적으로 작동하도록 정보를 제공하며, 개인화된 사회 구성원들에게 적합한 정보를 제공하고 관리하려는 목적에 기인한다. 실례로, 민간영역에서는 신용카드 이용 내역에 관한 정보부터 소셜미디어의 웹 데이터 등을 토대로 고객선호도를 분석하고, 고객의 구매 패턴과 실구매 트렌드를 파악해 개인 고객 수요에 맞는 맞춤형 정보 제공 등 마케팅에 적극 활용하고 있다.

본 기고에서는 크롤링과 스크랩핑 그리고 이와 연관된 용어의 정의를 알아보고, 크롤링 후 모집된 데이터를 어떠한 방식으로 분석하여 결과와 분석 함의를 도출 할 수 있을지 논하고자 한다.

 

크롤링이란 무엇일까?

스크랩핑(혹은 웹 스크랩핑)은 인터넷에서 존재하는 데이터를 컴퓨터 프로그램을 통하여 자동화된 방법으로 웹에서 데이터를 수집하는 모든 작업을 말한다. 크롤링은 많은 사람들이 스크랩핑과 혼용하여 사용하고 있지만, 사실은 그 의미가 상이한 용어다.

크롤링은 데이터를 수집하고 분류하는 것을 의미하며, 주로 인터넷 상의 웹페이지(html, 문서 등)를 수집해서 분류하고 저장하는 것을 뜻한다. 엄밀히 말해, 크롤링은 데이터의 수집 보다는 여러 웹페이지를 돌아다닌다는 뜻이 강하며, 데이터가 어디에 저장되어 있는지 위치에 대한 분류 작업이 크롤링의 주요 목적이라 할 수 있다.

파싱은 프로그램 언어를 문법에 맞게 분석해 내는 것인데, 어떤 웹페이지의 데이터를 사용자가 원하는 형식, 즉 일정한 패턴으로 추출해 어떠한 정보를 만들어 내는 것을 의미한다. 어느 위치에 저장된 데이터에 접근을 했다면, 이 데이터를 원하는 형태로 가공하는 작업이 주요 목적이라고 생각하면 된다.

종합하여, 언급한 각각의 작업을 수행하는 프로그램을 크롤러(crawler), 파서(parser), 스크래퍼(scraper) 등으로 부른다. 여러 자료를 보면 크롤링, 스크랩핑 그리고 파싱은 인터넷에서 프로그램을 이용해 자료를 추출하는 작업을 의미하며, 종종 혼용해서 쓰는 경우가 많다. 전문 개발자가 아니라면 정확하게 구분 할 필요는 없지만, 기본적으로 다소 상이한 개념에 대한 이해 정도는 필요하다.

 

크롤링의 대상은 바로 온라인 상 데이터!

크롤링의 주요 대상은 다양한 형태로 존재하는 데이터이다. 데이터는 앞서 언급한 바와 같이, 데이터 생성 스타일에 따라, 정형, 반정형 그리고 비정형 데이터로 구분되기도 하지만, 데이터를 생산하는 주체에 따라 기업(혹은 기관/조직)과 사용자가 생성하는 데이터로 분류할 수 있다. 조직이 생성하는 데이터는 언론이 제공하는 뉴스와 방송영상, 민간기업이 제공하는 제품관련 정보, 영화·음악·게임 등의 미디어 산업체가 생산하는 콘텐츠 형 데이터 등이 있다.

사용자에 의해 생성되는 데이터는 서비스와 제품 소비에 의해 자동적으로 만들어진 데이터(뉴스 기사를 읽은 횟수, 온라인 쇼핑 웹사이트 방문자 수 등)와 뉴스 댓글, 상품평, 메신저·블로그·온라인카페·유튜브·SNS 내 활동에 의해 생산된 데이터를 포함한다. 이러한 데이터는 사용자 단말을 통하여 읽을 수 있는 데이터이므로, 크롤링이나 스크랩핑 방법을 사용하여 수집할 필요가 있다.

 

크롤링, 어떻게 하는 것일까?

크롤링을 하는 방법에는 크게 연구자가 직접 코드를 작성하는 경우와 데이터를 수집하고자 하는 사이트 혹은 회사에서 제공하는 API(application programming interface)를 사용하는 방법이 있다. API라 함은 다양한 의미를 갖고 있지만, 크롤링의 경우에는 사용자에게 데이터를 쉽게 제공하기 위한 툴이라 할 수 있다. API를 사용하다 보면, 빠른 시간에 정제된 형태의 데이터를 수집할 수 있고, 데이터를 소유하고 있는 기업에서 제공하는 툴이기 때문에 데이터 사용에 따른 법적·윤리적 문제가 거의 없지만 최소한의 프로그래밍은 필요하다.

직접 크롤링 명령어를 작성해서 데이터를 수집하는 경우는 크게, 데이터를 수집하려는 사이트에서 API를 제공하지 않는 경우, API를 제공하더라도 API를 통하여 원하는 데이터를 수집 할 수 없는 경우도 발생한다. 또한, 크롤링을 하고자 하는 정보가 웹페이지의 소스코드에 담겨 있지 않는 경우에는 요소검사(network inspection)이나 셀레늄(selenium)과 같은 헤드리스 브라우저(headless browser)를 사용 할 수도 있다.

▲키보드 F12를 누르면 볼 수 있는 웹 페이지 소스코드 (출처: 네이버 메인 화면)

 

크롤링 후 분석 방법은 어떻게? 

크롤링한 대용량 데이터를 엑셀에 저장하고, 아래에 기술 할 다양한 툴(tool)들을 이용하여 수집한 기사와 댓글 데이터를 분석하여, 궁극적으로 데이터 내 담겨 있는 함의를 도출 할 수 있다.

 

1) 주제어(키워드) 빈도 분석

크롤링에 의해 수집된, 텍스트 자료에 포함된 특정 단어들의 빈도에 따라 주요 단어를 추출할 수 있다. 즉, 주제어 빈도 분석은 특정 문서 집단 내 에서 자주 언급되는 주제어를 추출하고 이들이 언급되는 빈도에 따라 중요도를 분석하는 방법이며, 특정 단어가 수집된 총 문서에서 얼마나 자주 등장하는지를 나타내는 ‘단어 빈도(Term Frequency: TF)’로 단순하게 결정할 수 있다.

 

2) 주제어(키워드) 중요도 분석

단순하게는, TF 값이 큰 단어일수록 중요도가 높다고 판단할 수 있지만, 사실 TF 값이 큰 단어는 모든 문서에서 자주 등장하는, 즉 그 단어가 흔하게 등장한다는 것을 의미하는 ‘문서빈도(Document Frequency: DF)’ 값이 큰 단어일 수 있다. 이에, 중요도 높은 키워드 도출을 위해 TF-IDF라는 값을 사용한다. TF-IDF는 DF값의 역수인 IDF(역문서 빈도, inverse document frequency)에 단순단어 빈도(TF)값을 곱한 것으로, 이처럼 모든 문서에서 자주 출현하는 상투어를 걸러내기 위함이며, 이는 단순한 단어의 빈도 처리가 아닌 단어의 출현 확률을 기준으로 출현 빈도를 재가공 한 것이다.

즉, TF-IDF는 특정 문서에서의 단어 중요도를 나타내는 TF에 전체 문서와 관계된 단어의 중요도인 IDF를 곱한 값으로, 특정 문서 내에서 단어 빈도가 높을수록, 그리고 전체 문서들 중 그 단어를 포함한 문서가 적을수록 그 값이 커짐을 알 수 있다. 이러한 TF-IDF를 통해 언론기사나 댓글 텍스트 데이터 전체에서 공통적으로 혹은 무의미하게 반복적으로 출현하는 특정 단어를 제거할 수 있다.

▲TF-IDF 수식

 

3) 텍스트 마이닝(text mining)

텍스트 마이닝은 TF와 TF-IDF 분석을 발전시킨 것으로, 텍스트 형태로 이루어진 비정형 데이터들을 자연어 처리 방식을 이용하여 정보를 추출하거나 연계성을 파악하는 기법이다. 웹 문서에서 특정 주제어와 매칭(matching)되는 단어를 찾아 수를 부여하는 인덱싱(indexing) 검색 기법에서 발전되어 왔으며, 점차 특정 주제어나 문맥(context)을 기반으로 데이터의 숨은 의미를 탐색하는 데 활용되고 있다. 텍스트 마이닝이 두드러지는 분야는 뉴스 기사 분석으로, 이를 활용하면 텍스트의 문맥에 따라 쟁점을 파악하고 텍스트 간 연계를 분석할 수 있다는 장점이 있다.

‘연관어 분석(association keyword analysis)’ 혹은 ‘의미망분석(semantic network analysis)’은 텍스트 마이닝의 한 종류이다. 관심 주제어를 포함한 대상 문서에서 함께 언급된 주제어를 추출하여 관심 주제어와 어떠한 토픽들이 연결되는 지 분석할 때 사용한다. 예컨대, 하나의 뉴스 기사에서 동시 출현한 용어의 쌍을 추출하고 전체 문서집합에서 주제어의 쌍별 발생 빈도와 연결 관계를 분석하면, 언론 기사 상의 주요 관심 토픽과 그 연계성의 변화를 추적 할 수 있다. 또한 주제어를 특정 토픽 별로 분류한 후 연관어 분석을 실시하면 주요 쟁점 간의 관련성을 구조적으로 파악하기에 용이하다.

TF와 TF-IDF 분석을 통하여 언론이 자주 언급하는 아젠다(의제 혹은 주요 이슈)를 간단하게 추출할 수 있으며, 추출된 단어가 내재하는 감성적인 긍·부정 의미를 파악하여, 특정 아젠다에 대한 언론이 바라보는 시각 및 관점, 즉 프레임을 이해하는 데 도움이 된다.

728x90
반응형
그리드형

댓글