빅데이터를 이용한 오피니언 마이닝 기반 sns데이터의...

19
Asia-pacific Journal of Multimedia Services Convergent with Art, Humanities, and Sociology Vol.8, No.3, March (2018), pp. 859-877 http://dx.doi.org/10.21742/AJMAHS.2018.03.11 ISSN: 2383-5281 AJMAHS Copyright 2018 HSST 859 빅데이터를 이용한 오피니언 마이닝 기반 SNS 데이터의 활용 이명균 1) , 지효상 2) , 김정준 3) , 박정민 4) Utilizing SNS data based on Opinion Mining using Big Data Myoung-gyun Lee 1) , Hyo-sang Ji 2) , Jeong-Joon Kim 3) , Jeong-Min Park 4) 요 약 스마트폰의 대중화로 인해 SNS를 통한 사람들의 소통은 점점 확대 되고 있다. 사회와 정책에 대한 여론을 형성하고, 맛집 추천, 기행문을 통한 정보 제공 등의 주제에 대한 각자의 의견을 표현하는 공 간으로써 다양하게 사용되고 있다. Facebook이란 매체를 보면 '좋아요'라는 기능으로 사용자 간 게시 글에 대한 자신의 감정을 표현함으로써 서로의 공감 여부를 파악 할 수 있다. 예로 H대학의 학생의 불만사항을 소통하는 페이지가 있다. Facebook'좋아요' 기능만으로는, 학생들의 불만사항들이 어떻 게 처리 되어 지는지를 알기 위한 과정은 매우 복잡하다. 따라서 본 논문은 빅데이터를 접목한 오피 니언 마이닝 기술로써 R 프로그램을 이용해 SNS의 데이터를 수집하고, 빅데이터의 Hadoop을 이용해 수집된 데이터를 저장, 처리 도구를 이용한 데이터를 정제·처리 후, 다시 R 프로그램을 사용해 저장· 처리된 데이터를 시각화 함으로써 학보사와 Facebook, 두 사이트에서 얼마나 데이터들이 수렴되고 소 통되는지를 분석한다. 핵심어 : SNS, 오피니언 마이닝, Hadoop, R, 빅데이터 Abstract Due to the popularization of smartphones, people's communication through SNS is expanding. It is widely used as a space for expressing opinions on topics such as building public opinion on society and policy, recommending restaurants, and providing information through travel texts. If you look at the media called Facebook, you can understand their empathy by expressing your feelings about posting between users with the function of 'Like'. For example, there is a page that communicates the complaints of students at H Received (December 4, 2017), Review Result (December 8, 2017) Accepted (January 9, 2018), Published (March 31, 2018) 1 237, Dept Compter Science, Korea Polytechnic Univ., Sangidaehak-ro, Siheung-si, Gyeonggi-do 15073, Korea email: [email protected] 2 237, Dept Compter Science, Korea Polytechnic Univ., Sangidaehak-ro, Siheung-si, Gyeonggi-do 15073, Korea email: [email protected] 3 (Corresponding Author) 237, Dept Compter Science, Korea Polytechnic Univ., Sangidaehak-ro, Siheung-si, Gyeonggi-do 15073, Korea email: [email protected] 4 237, Dept Compter Science, Korea Polytechnic Univ., Sangidaehak-ro, Siheung-si, Gyeonggi-do 15073, Korea email: [email protected]

Upload: others

Post on 13-Sep-2019

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 빅데이터를 이용한 오피니언 마이닝 기반 SNS데이터의 활용journal.hsst.or.kr/DATA/pdf/v8_3_80.pdf · 비스,SNS이다.트위터,인스타그램,Facebook등 많은

Asia-pacific Journal of Multimedia Services Convergent with Art, Humanities, and Sociology

Vol.8, No.3, March (2018), pp. 859-877

http://dx.doi.org/10.21742/AJMAHS.2018.03.11

ISSN: 2383-5281 AJMAHS

Copyright ⓒ 2018 HSST 859

빅데이터를 이용한 오피니언 마이닝 기반 SNS데이터의 활용

이명균1), 지효상2), 김정준3), 박정민4)

Utilizing SNS data based on Opinion Mining using Big Data

Myoung-gyun Lee1), Hyo-sang Ji2), Jeong-Joon Kim3), Jeong-Min Park4)

요 약

스마트폰의 대중화로 인해 SNS를 통한 사람들의 소통은 점점 확대 되고 있다. 사회와 정책에 대한

여론을 형성하고, 맛집 추천, 기행문을 통한 정보 제공 등의 주제에 대한 각자의 의견을 표현하는 공

간으로써 다양하게 사용되고 있다. Facebook이란 매체를 보면 '좋아요'라는 기능으로 사용자 간 게시

글에 대한 자신의 감정을 표현함으로써 서로의 공감 여부를 파악 할 수 있다. 예로 H대학의 학생의

불만사항을 소통하는 페이지가 있다. Facebook의 '좋아요' 기능만으로는, 학생들의 불만사항들이 어떻

게 처리 되어 지는지를 알기 위한 과정은 매우 복잡하다. 따라서 본 논문은 빅데이터를 접목한 오피

니언 마이닝 기술로써 R 프로그램을 이용해 SNS의 데이터를 수집하고, 빅데이터의 Hadoop을 이용해

수집된 데이터를 저장, 처리 도구를 이용한 데이터를 정제·처리 후, 다시 R 프로그램을 사용해 저장·

처리된 데이터를 시각화 함으로써 학보사와 Facebook, 두 사이트에서 얼마나 데이터들이 수렴되고 소

통되는지를 분석한다.

핵심어 : SNS, 오피니언 마이닝, Hadoop, R, 빅데이터

Abstract

Due to the popularization of smartphones, people's communication through SNS is expanding. It is

widely used as a space for expressing opinions on topics such as building public opinion on society and

policy, recommending restaurants, and providing information through travel texts. If you look at the media

called Facebook, you can understand their empathy by expressing your feelings about posting between users

with the function of 'Like'. For example, there is a page that communicates the complaints of students at H

Received (December 4, 2017), Review Result (December 8, 2017)

Accepted (January 9, 2018), Published (March 31, 2018)

1237, Dept Compter Science, Korea Polytechnic Univ., Sangidaehak-ro, Siheung-si, Gyeonggi-do 15073,

Korea

email: [email protected], Dept Compter Science, Korea Polytechnic Univ., Sangidaehak-ro, Siheung-si, Gyeonggi-do 15073,

Korea

email: [email protected](Corresponding Author) 237, Dept Compter Science, Korea Polytechnic Univ., Sangidaehak-ro, Siheung-si,

Gyeonggi-do 15073, Korea

email: [email protected], Dept Compter Science, Korea Polytechnic Univ., Sangidaehak-ro, Siheung-si, Gyeonggi-do 15073,

Korea

email: [email protected]

Page 2: 빅데이터를 이용한 오피니언 마이닝 기반 SNS데이터의 활용journal.hsst.or.kr/DATA/pdf/v8_3_80.pdf · 비스,SNS이다.트위터,인스타그램,Facebook등 많은

Utilizing SNS data based on Opinion Mining using Big Data

Copyright ⓒ 2018 HSST860

University. With Facebook's "Like" feature, the process of knowing how complaints are handled is very

complex and passive. Therefore, this paper is an Opinion Mining technology that combines Big Data,

collects SNS data using R program, saves collected data using Hadoop of big data, refines and processes

data using processing tool, To analyze how data is converged and communicated between the school

newspaper and Facebook.

Key Words : SNS, Opinion Mining, Hadoop, R, Bigdata

1. 서론

IT산업이 급속도로 발전함에 따라, 인터넷과 스마트폰은 우리에게 뗄 수 없는 존재가 되었다. 또

한, 인터넷과 스마트폰의 대중화와 더불어 소통의 장으로 자리 잡은 것이 바로 소셜 네트워크 서

비스, SNS이다. 트위터, 인스타그램, Facebook 등 많은 사람들이 이용하는 대표적인 몇 가지 서비

스들 중 원하는 기능이 특화된 페이지를 사용하거나, 한 가지 주제를 두고 필요에 따라 공감 및

호응 유도를 위해 혹은 광고성을 목적으로 다양한 페이지에서 여론을 형성하기도 한다. Facebook

을 예로 들면, 이미 국내에서만 천만이 훌쩍 넘는 사용자가 사용하고 있으며, 전 세계 사용자는 30

억에 육박한다. 이처럼 세계 각지의 사람들이 서로 소식을 주고 받고, 정보를 얻는 등의 소통을 하

는 형태 및 공간으로써 자리한 SNS는 사용자의 수치에서 확인할 수 있듯 막강한 영향력을 가지고

있다. 관심 있는 게시글을 보며 그 글에 대한 표현을 좋아요, 싫어요 등 6가지로 감정 표현할 수도

있고, 직접 본적은 없지만 기회가 닿아 외국 사람들과의 교류를 하며 지금은 잊혀진 펜팔로써의

역할도 하며, 댓글로써 친구를 태그해 친구와 해당하는 정보를 공유하기도 한다. 하지만, 그때 그

때 게시글에서 표현하는 감정들과 댓글들은 한 순간이고, 그 여섯가지의 표현과 댓글들은 후에 좋

아요 갯수, 댓글 갯수 등 그저 수치로 밖에 남아있지 않게 된다[1-3].

따라서 본 논문에서는 이러한 단편적인 기능을 보완하고자 사용자가 작성하는 키워드와 그 게

시글의 좋아요 수, 댓글 수, 날짜 등의 수치 데이터를 이용해 예측·분석하는 방법을 연구하였다.

해당 연구의 예로 H대학의 Facebook 페이지에서 게시 날짜순으로 내림차순 정렬된 학생들의 각

게시글들에 대한 게시글의 내용, 좋아요 수, 공유 횟수 등의 데이터와 H대학의 학보사 페이지의

학생 복지를 위해 개선된 사항에 대한 글과 개선 날짜 순으로 정렬된 데이터를 각각 R 언어를 사

용해 크롤링해서 수집하고, 빅데이터의 hadoop을 이용해 수집한 데이터를 문서화해서 저장,

Facebook 페이지에서 게시 날짜 순으로 내림차순 정렬한 16개의 컬럼에 따른 데이터들을 게시글

과 좋아요 수, 게시 날짜 세 가지 컬럼만을 추출해 내 정제하는 과정에서 Pig를 사용하였고,

Facebook 페이지와 학보사 페이지를 비교해 원하는 데이터를 수치화하는 과정에서 Hive를 사용하

였으며, 정제·처리된 데이터를 다시 R을 통해 분석·시각화하는 과정을 진행하였다[4,5].

본 논문은 다음과 같이 구성된다. 2장에서는 본 연구에서 수집, 저장, 처리, 분석과정 중 사용하

는 빅데이터 솔루션에 대해 기술하고, 3장에서는 본 연구의 전반적인 진행과정에 대해 설명하였으

며, 4장에서는 결론, 5장에서는 부록을 기술하였다.

Page 3: 빅데이터를 이용한 오피니언 마이닝 기반 SNS데이터의 활용journal.hsst.or.kr/DATA/pdf/v8_3_80.pdf · 비스,SNS이다.트위터,인스타그램,Facebook등 많은

Asia-pacific Journal of Multimedia Services Convergent with Art, Humanities, and Sociology

Vol.8, No.3 (2018)

ISSN: 2383-5281 AJMAHS

Copyright ⓒ 2018 HSST 861

2. 관련연구

빅 데이터는 통상적으로 사용되는 데이터 수집, 관리 및 처리 소프트웨어의 수용 한계를 넘어서

는 크기의 데이터를 말한다. 빅 데이터의 사이즈는 단일 데이터 집합의 크기가 수십 테라바이트에

서 수 페타바이트에 이르며, 그 크기가 끊임없이 변화하는 것이 특징이다.

또한, 단순히 대량의 데이터만이 아니라 수집되는 도구와 그 형태가 각각 다르므로, 필요한 데

이터를 수집해 필요에 따라 원하는 형태로 변형·분석·표현하는 일련의 과정을 뜻한다.

[그림 1] 빅데이터의 처리과정

[Fig. 1] Process of Big data

2.1 크롤링(Crawling)

웹 크롤러(web crawler)는 조직적, 자동화된 방법으로 월드 와이드 웹을 탐색하는 컴퓨터 프로

그램이다. 웹 크롤러가 하는 작업을 웹 크롤링(web crawling) 혹은 스파이더링(spidering)이라 부른

다. 검색 엔진과 같은 여러 사이트에서는 데이터의 최신 상태 유지를 위해 웹 크롤링한다. 웹 크롤

러는 대체로 방문한 사이트의 모든 페이지의 복사본을 생성하는 데 사용되며, 검색 엔진은 이렇게

생성된 페이지를 보다 빠른 검색을 위해 인덱싱한다[6].

웹 크롤러는 봇이나 소프트웨어 에이전트의 한 형태로써, 대개 시드(seeds)라고 불리는 URL 리

스트에서부터 시작하는데, 페이지의 모든 하이퍼링크를 인식하여 URL 리스트를 갱신한다. 갱신된

URL 리스트는 재귀적으로 다시 방문한다.

크롤러의 수집과정은 [그림 2]처럼 쓰레딩을 통해 설정한 순서에 따라 차례로 정보를 긁어와 텍

스트 형태로 저장한다.

Page 4: 빅데이터를 이용한 오피니언 마이닝 기반 SNS데이터의 활용journal.hsst.or.kr/DATA/pdf/v8_3_80.pdf · 비스,SNS이다.트위터,인스타그램,Facebook등 많은

Utilizing SNS data based on Opinion Mining using Big Data

Copyright ⓒ 2018 HSST862

[그림 2] 크롤러의 수집과정

[Fig. 2] Collection Process Of Crawler

2.2 하둡(Hadoop)

빅데이터 분석은 대용량의 데이터를 기반으로 이뤄진다. 이러한 업무를 수행하기 위해 hadoop

은 대용량 데이터를 저장할 수 있는 분산 파일 시스템(HDFS)을 제공하고 있다[7].

이러한 HDFS는 정형, 비정형 데이터 분석에 매우 효율적이다. hadoop은 오픈소스이기 때문에

비용에 대한 부담이 없고 OS(Operating System)등에 대한 부담도 매우 낮다.

하둡 분산 파일 시스템의 기본 구조는 구글 파일 시스템(Google File System)과 비슷하며, 구글

의 논문을 바탕으로 설계됐다. 따라서 구글 파일 시스템의 주요 기능을 포함하고 있다.

하둡 분산 파일 시스템은 네트워크의 여러 서버에 존재하는 디스크들을 마치 하나의 디스크처

럼 활용한다. 일반적인 파일 시스템과 달리 볼륨 기반으로 파일을 적재하거나 파일 단위로 저장하

지 않고, 파일을 블록 단위로 쪼개 여러 서버에 분산 저장한다. 따라서 서버의 디스크 용량보다

큰 대용량 파일도 저장 처리할 수 있다. 하나의 클러스터를 구성하는데 수백에서 수천 대 이상의

서버를 이용하므로 페타바이트 급 이상의 데이터도 손쉽게 저장할 수 있다.

Page 5: 빅데이터를 이용한 오피니언 마이닝 기반 SNS데이터의 활용journal.hsst.or.kr/DATA/pdf/v8_3_80.pdf · 비스,SNS이다.트위터,인스타그램,Facebook등 많은

Asia-pacific Journal of Multimedia Services Convergent with Art, Humanities, and Sociology

Vol.8, No.3 (2018)

ISSN: 2383-5281 AJMAHS

Copyright ⓒ 2018 HSST 863

[그림 3] 하둡 분산 파일 시스템

[Fig. 3] Hadoop distributed file system

2.3. 피그(Pig)

Pig는 [그림 4]처럼 쉘 스크립트, pig 라틴, 고유의 실행 엔진 세 가지 중 하나의 방법으로 선택·

실행하여, hadoop 공간을 경유해, mapreduce 과정을 수행하는 것이 주된 과정이다. Pig는 대용량

데이터 셋을 좀 더 고차원적으로 처리할 수 있도록 한다는 특징을 가지고 있으며, pig의 또 다른

특징이자 장점으로는 pig를 사용하면, mapreduce에서는 처리할 수 없는 조인과 같은 연산이 가능

하며, 다양한 데이터 구조를 지원하고, 데이터에 적용할 수 있는 변환 종류도 훨씬 더 많다[8].

내부적으로 hadoop 공간을 경유해 mapreduce를 수행하는 과정이 선행요소라서 성능이 좋지는

않지만, 확장이 용이하도록 설계되어 있어, 로딩, 저장, 필터링, 그룹핑, 정렬, 조인 등의 사용자 정

의 함수를 통해 원하는 대로 변경이 가능하다.

[그림 4] Pig 구조도

[Fig. 4] Structure Of Pig

2.4. 하이브(Hive)

Hive는 hadoop에서 mapreduce를 직접 돌리는 대신, 사용자가 HiveQL(Hive Query Language)

로 쿼리를 작성하면 이것을 자동으로 mapreduce 작업으로 변경해주는 쿼리 엔진이다. HiveQL은

SQL언어와 거의 유사하며 기능은 다소 부족하나, 고급 조인을 사용하지 않는 이상 SQL로 할 수

있는 모든 작업을 동일하게 수행할 수 있다[9].

mapreduce는 기본적으로 자바 기반의 프레임워크이므로 기존 데이터베이스나 DW를 통해 분석

을 하던 개발자가 아닌 사용자들에게는 다소 어렵게 느껴질 수 있다.

따라서, Hive는 이것을 극복하도록 개발된 hadoop 기반 쿼리엔진이다. 이 엔진을 사용하면

mapreduce를 작성하지 않고 쿼리 언어만으로 hadoop의 비정형 데이터 분석이 가능하다.

Page 6: 빅데이터를 이용한 오피니언 마이닝 기반 SNS데이터의 활용journal.hsst.or.kr/DATA/pdf/v8_3_80.pdf · 비스,SNS이다.트위터,인스타그램,Facebook등 많은

Utilizing SNS data based on Opinion Mining using Big Data

Copyright ⓒ 2018 HSST864

[그림 5] Hive 구조도

[Fig. 5] Structure of Hive

2.5. R

R은 통계 컴퓨팅 및 그래픽을 위한 언어와 환경으로, 벨 연구소의 존 챔버스와 동료들이 개발한

언어 및 환경인 S와 유사한 GNU 프로젝트이다. R은 S와는 다른 구현으로써 몇 가지 중요한 차이

가 있지만, S용으로 작성된 많은 코드는 R에서 변경없이 실행 가능하다[10].

R은 모델링, 시계열 분석, 분류, 클러스터등의 다양한 통계 및 그래픽 기술을 제공하고, 확장성

이 뛰어나며, 필요에 따라 수학 기호와 수식을 포함한 잘 디자인된 출판물 수준의 plot을 생산할

수 있다. 또한, R은 Hadoop과의 연계를 통한 RHadoop으로써 많이 사용되는데, RHadoop은 크게

hadoop의 mapreduce 기능을 사용하게 하는 RMR과, hadoop의 파일 관리 시스템을 사용하는

RHDFS, HBase를 위한 데이터베이스 관리를 제공하는 세 가지 주된 기능을 통해, R이 단독으로

사용되었을 때보다 대량의 데이터와 높은 확장성을 통한 데이터 관리 · 분석을 할 수 있게 된다.

[그림 6] RHadoop에서의 R의 흐름도

[Fig. 6] Flow chart of R in RHadoop

Page 7: 빅데이터를 이용한 오피니언 마이닝 기반 SNS데이터의 활용journal.hsst.or.kr/DATA/pdf/v8_3_80.pdf · 비스,SNS이다.트위터,인스타그램,Facebook등 많은

Asia-pacific Journal of Multimedia Services Convergent with Art, Humanities, and Sociology

Vol.8, No.3 (2018)

ISSN: 2383-5281 AJMAHS

Copyright ⓒ 2018 HSST 865

3. SNS 데이터를 활용한 빅데이터 기반의 오피니언 마이닝 시스템 및 처리과정

3.1. 소셜 네트워크 데이터를 활용한 빅데이터 기반의 오피니언 마이닝 시스템 구조

본 논문을 구성하는 전반적인 시스템 구조로는 [그림 7]과 같이 크게, Data Set, Data Collector,

Data Storage, Data Processor, Data analyzer 총 다섯 가지의 도구들을 통해 데이터의 수집·저장·

처리·분석의 기능을 수행하며, 각각의 도구들을 순차적으로 사용한다.

[그림 7] 오피니언 마이닝 과정에 사용되는 시스템 구조

[Fig. 7] System architecture used for opinion mining

3.1.1 Data Set

논문에서 사용할 H대학에서 관리하는 Facebook 페이지의 데이터와 H대학의 학보사 페이지를 나

타내는 것으로, 두 데이터 모두 수집기를 통해 문서화 한다.

3.1.2 Data Collector

앞서 설명한 Facebook 페이지의 데이터와 학보사 페이지의 정보를 수집해 와서 각각을 확장자가

csv인 파일로 문서화하는 과정을 가진다. 그 과정에서 Facebook의 데이터를 수집할 때는 R언어를,

학보사의 데이터를 수집할 때는 Python을 사용해 테이블 형태의 파일로 저장한다.

3.1.3 Data Storage

Page 8: 빅데이터를 이용한 오피니언 마이닝 기반 SNS데이터의 활용journal.hsst.or.kr/DATA/pdf/v8_3_80.pdf · 비스,SNS이다.트위터,인스타그램,Facebook등 많은

Utilizing SNS data based on Opinion Mining using Big Data

Copyright ⓒ 2018 HSST866

두 가지 csv파일로 분류된 데이터는 리눅스-윈도우 간 공유 폴더 설정을 통해 주고 받고, 데이

터의 처리와 분석을 위해, namenode에서 hadoop 공간에 두 파일을 적재하고, hadoop을 실행 해,

namenode와 3개의 datanode 총 네 대의 노드가 완전 분산 모드로써, 작업 수행을 준비한다.

3.1.4 Data Processor

먼저 Facebook 데이터에서 원하는 데이터를 추출하는 과정은 Java 기반의 mapreduce가 아닌 Pig

자체에서 컬럼 추출과 WordCounting을 수행하게 된다. 이후, Pig에서 선 정제를 마친 세 가지 컬

럼으로 축약된 테이블 형태의 데이터를 Hive에서 조인 질의를 통해 WordCounting된 데이터와 학

보사 페이지의 데이터를 비교해 다시 테이블 형태로 저장한다. 저장된 테이블은 파일 형태로

hadoop 공간에 다시 적재한다.

3.1.5 Data Analyzer

앞서 원하는 형태로 처리된 데이터를 통해 Facebook 페이지로부터 얻어진 데이터와 학보사 페이

지의 데이터의 비교를 통한 분석이 이루어진다. Facebook 페이지에서 가장 많이 출현한 단어 10가

지의 각 게시 날짜 평균과 학보사에서 그 키워드에 대한 내용이 실제로 수렴되었을 때까지의 시간

이 얼마나 소요되었는지를 도식화하여 나타내준다.

3.2. 소셜 네트워크 데이터를 활용한 빅데이터 기반의 오피니언 마이닝의 데이터 수집 과정

본 논문의 데이터 수집은 앞서 3.1절에서 언급한 것처럼 Facebook과 학보사 페이지 두 가지 데이

터를 수집하게 된다. 수집하게 될 내용은 2016년도 H대학 Facebook 페이지 내용 전체와 상반기가

막 지나 아직 2017년의 데이터가 없는 상태의 현재 최신 페이지인 학보사의 첫 페이지 데이터를

수집한다.

3.2.1 R을 이용한 Facebook 데이터 수집

Facebook 데이터를 크롤링하는 과정에서, RStudio를 사용한다.

Step.1 install.packages 명령어를 통해 facebook에서 제공하는 Rfacebook 라이브러리를 설치한다.

설치가 완료되면, H대학 Facebook 페이지의 고유 아이디와 토큰 값을 입력 해 어떤 페이지의 데

이터를 읽어올 것인지를 인식한다. 다음으로, 게시 날짜가 어느 시점부터 어느 시점까지의 데이터

를 불러들일지 설정한다.

Page 9: 빅데이터를 이용한 오피니언 마이닝 기반 SNS데이터의 활용journal.hsst.or.kr/DATA/pdf/v8_3_80.pdf · 비스,SNS이다.트위터,인스타그램,Facebook등 많은

Asia-pacific Journal of Multimedia Services Convergent with Art, Humanities, and Sociology

Vol.8, No.3 (2018)

ISSN: 2383-5281 AJMAHS

Copyright ⓒ 2018 HSST 867

모든 설정이 끝난 데이터를 write.csv 명령을 사용해 현재 디렉토리 안에 kpu_fb_2016.csv라고

지정한 파일 명으로 저장된다.

[그림 8] 크롤링 된 Facebook 데이터

[Fig. 8] Crawled Facebook data

Step.2 Facebook을 크롤링한 데이터는 다음과 같다. 왼쪽부터, post.from_id와 post.from_name은

게시물의 게시자의 고유 id와 이름을 나타내는 것이다. post,from_id가 모두 같은 이유는 ‘대신 전

해드립니다’ 라는 Facebook 페이지의 기능 자체가 학생의 건의사항을 받고, 운영자가 대신 올려주

는 기능이므로 id가 모두가 운영자의 고유 id로 표시되는 것이다. post.message, created time은 게

시글 내용과 게시날짜를 나타내고, post.type은 단순히 글인지 사진이 첨부된 글인지 게시글의 형

태를 나타내고, post.link는 게시글 의뢰 시 사용한 경로이며, post.id는 post.from_id와 동일하고,

post.likes_count, post.comments_count, post.shares_count는 게시글 마다 좋아요 수, 댓글 수, 공유

횟수를 나타낸다.

3.2.2 Python을 이용한 H대학 학보사 데이터 수집

Python을 이용해 H대학 학보사 홈페이지를 수집한 데이터로, BeautifulSoup라는 페이지 크롤링

하는 기능을 수행하게 하는 라이브러리를 사용했고, H대학의 URL을 입력해 출력할 두 개의 컬럼

인 게시날짜와 제목의 출력형태를 설정해주었다. 출력 결과는 다음과 같다.

Page 10: 빅데이터를 이용한 오피니언 마이닝 기반 SNS데이터의 활용journal.hsst.or.kr/DATA/pdf/v8_3_80.pdf · 비스,SNS이다.트위터,인스타그램,Facebook등 많은

Utilizing SNS data based on Opinion Mining using Big Data

Copyright ⓒ 2018 HSST868

[그림 9] 크롤링된 학보사 데이터

[Fig. 9] Crawled School newspaper data

3.2.3 저장된 두 가지 데이터 hadoop 공간에 적재하기

저장된 데이터를 hadoop fs -put 명령을 통해 hadoop 공간에 적재한다.

Facebook에서 수집한 데이터는 kpu_fb_2016.csv, Python을 통해 수집한 학보사 데이터는

kpu_hakbo.csv로 저장하였다.

3.3. 소셜 네트워크 데이터를 활용한 빅데이터 기반의 오피니언 마이닝의 데이터 처리 과정

본 논문의 데이터 처리는 Pig와 Hive를 사용하여 진행된다. Pig는 Facebook 페이지를 수집한 데

이터에서 원하는 컬럼만을 추출하고, 많이 언급되는 키워드 Top10을 선정하는 작업을 통해 정제된

두 데이터를 가지고 Hive에서 처리하는 과정을 진행한다.

3.3.1 Pig를 사용한 데이터 정제

Pig를 사용해서 사전에 hadoop 공간에 적재해둔 파일의 정제를 시작한다.

Step.1 앞서 hadoop 공간에 적재했던 kpu_fb_2016.csv 파일을 로드해 그 데이터를 fb에 저장한

다. [그림 8]에서도 확인할 수 있듯이, 실제 데이터에서 3열에 위치해 있는 데이터는 게시글 내용,

4열에 위치한 데이터는 게시 날짜, 9열에 위치한 데이터는 좋아요 수이다. pig에서는 1번째 열을 0

번째부터 세므로, 2열, 3열, 8열을 추출한 내용을 fb_data에 저장한다. dump 명령을 통해 [그림

10]과 같은 내용을 확인한다.

Page 11: 빅데이터를 이용한 오피니언 마이닝 기반 SNS데이터의 활용journal.hsst.or.kr/DATA/pdf/v8_3_80.pdf · 비스,SNS이다.트위터,인스타그램,Facebook등 많은

Asia-pacific Journal of Multimedia Services Convergent with Art, Humanities, and Sociology

Vol.8, No.3 (2018)

ISSN: 2383-5281 AJMAHS

Copyright ⓒ 2018 HSST 869

[그림 10] 추출해낸 데이터 확인

[Fig. 10] Identify the extracted data

Step.2 fb_data의 데이터를 확인하였으면, fb_refine이라는 이름으로 먼저 hadoop 공간에 저장한

다.

[그림 11] hadoop 공간 확인

[Fig. 11] Checking Hadoop Space

Step.3 다음으로, fb_refine을 csv파일로 문서화하는 작업을 가진다. 문서화된 fb_refine.csv 파일

의 내용을 확인하면 [그림 12]와 같다.

[그림 12] 데이터 확인

[Fig. 12] Checking data

Step.4 내용을 모두 확인하였으면, 정제된 fb_refine.csv 파일을 put 명령어를 사용해 hadoop 공

Page 12: 빅데이터를 이용한 오피니언 마이닝 기반 SNS데이터의 활용journal.hsst.or.kr/DATA/pdf/v8_3_80.pdf · 비스,SNS이다.트위터,인스타그램,Facebook등 많은

Utilizing SNS data based on Opinion Mining using Big Data

Copyright ⓒ 2018 HSST870

간에 다시 적재한다.

3.3.2 가장 많이 출현하는 키워드 - Top10

좋아요 수에 따라 가장 많이 출현하는 키워드 10개를 추출한다.

Step.1 앞서 세 가지 컬럼만을 추출해 놓은 Facebook 데이터를 불러와서 0열을 기준으로 정렬 시

키고, 좋아요 수에 따른 Top10 개의 키워드를 내림차순 정렬해 G에 저장한다. G는 식별하기 쉽게

fb_top10이라는 이름으로 다시 hadoop 공간에 저장한다.

⓵ A = Load './fb_refine.csv';

⓶ B = foreach A generate flatten(TOKENIZE((chararray)$0)) as tmp;

⓷ C = group B by tmp;

⓸ D = foreach C generate group, count(B) as cnt;

⓹ E = RANK D BY cnt DESC DENSE;

⓺ F = FILTER E BY rank_D<=10;

⑦ G = FOREACH F GENERATE group, cnt;

[그림 13] 추출된 데이터 확인

[Fig. 13] Verifing extracted data

Step.2 가장 많이 나오는 키워드 10개와 그 개수를 확인해보면, 다음 [그림 14]과 같다.

Page 13: 빅데이터를 이용한 오피니언 마이닝 기반 SNS데이터의 활용journal.hsst.or.kr/DATA/pdf/v8_3_80.pdf · 비스,SNS이다.트위터,인스타그램,Facebook등 많은

Asia-pacific Journal of Multimedia Services Convergent with Art, Humanities, and Sociology

Vol.8, No.3 (2018)

ISSN: 2383-5281 AJMAHS

Copyright ⓒ 2018 HSST 871

[그림 14] 추출된 데이터 확인

[Fig. 14] Verifing extracted data

3.3.3 Hive를 사용해 두 데이터를 조인

Pig를 통해 추출해 낸 데이터와 학보사 수집 데이터를 조인하여 날짜 비교를 하기 위해 데이터

를 테이블 형태로 먼저 저장한다.

Step.1 Pig를 통해 사전 정제한 Facebook 데이터의 세 가지 컬럼을 가지는 데이터를 저장하기

위해 kpu_fb라는 테이블을 생성하고, 데이터를 로드해 생성한 테이블에 입력한다. 그 다음, [그림

15]처럼 kpu_fb 테이블의 전체 내용을 출력하기 위해 select * from 명령을 사용하고, 방대한 데이

터의 양을 축약해서 출력하기 위해 limit 3을 설정해 데이터 맨 위의 세 줄만을 출력해 확인한다.

[그림 15] 생성한 테이블의 데이터 확인

[Fig. 15] Checking the data in the generated table

Step.2 kpu_hak 이라는 테이블을 생성하고, 학보사 데이터를 로드해 생성한 테이블에 입력한다.

[그림 16] 생성한 테이블의 데이터 확인

[Fig. 16] Checking the data in the generated table

Step.3 조인 질의문을 사용해 kpu_final이라는 테이블을 생성하고 생성한 테이블 안에 키워드에

따른 날짜 출력을 하는 코드를 입력한다.

Page 14: 빅데이터를 이용한 오피니언 마이닝 기반 SNS데이터의 활용journal.hsst.or.kr/DATA/pdf/v8_3_80.pdf · 비스,SNS이다.트위터,인스타그램,Facebook등 많은

Utilizing SNS data based on Opinion Mining using Big Data

Copyright ⓒ 2018 HSST872

Step.4 kpu_final 내용의 전체를 /user/hadoop/work라는 현재 작업하고 있는 hadoop 공간에

결과 형태로 출력한다.

Step.5 getmerge 명령을 사용해 결과값을 kpu_final.csv로 이름을 지정해 파일로 저장한다. 그런

다음 현재 디렉토리에서 확인해보면 정상적으로 kpu_final.csv파일이 생성된다.

[그림 17] 결과 파일 문서화하기

[Fig. 17] Documenting the resulting file

3.4. 소셜 네트워크 데이터를 활용한 빅데이터 기반의 오피니언 마이닝의 데이터 분석·표현

본 논문의 데이터의 시각화는 앞서 정제·처리한 kpu_final.csv 파일을 이용해 진행한다.

3.4.1 정제된 파일 확인 및 시각화

먼저 kpu_final.csv 파일의 내용은 [그림 18]과 같다.

[그림 18] 정제된 데이터의 내용 확인

[Fig. 18] Checking the contents of the refined data

Step.1 kpu_fb라는 변수에 kpu_final.csv 파일의 read.csv 명령어를 통해 데이터를 로드시키고,

kpu_fb에 저장된 데이터를 확인한다. 데이터는 [그림 19]처럼 테이블 형태로 저장된다.

[그림 19] R에 데이터 로드

Page 15: 빅데이터를 이용한 오피니언 마이닝 기반 SNS데이터의 활용journal.hsst.or.kr/DATA/pdf/v8_3_80.pdf · 비스,SNS이다.트위터,인스타그램,Facebook등 많은

Asia-pacific Journal of Multimedia Services Convergent with Art, Humanities, and Sociology

Vol.8, No.3 (2018)

ISSN: 2383-5281 AJMAHS

Copyright ⓒ 2018 HSST 873

[Fig. 19] Loading data into R

[그림 20] 로드된 데이터 확인

[Fig. 20] Checking Loaded Data

Step.2 barplot 명령어를 통해 막대그래프 형태로 데이터를 시각화 한다. 그래프는 [그림 30]과

같다.

[그림 21] 막대그래프를 출력하는 코드

[Fig. 21] Code to output a bar graph

xlab은 x축의 이름, ylab은 y축의 이름, col은 막대의 색깔 지정을 뜻한다.

[그림 22] 그래프로 출력한 데이터 확인하기

[Fig. 22] Checking the data output by the graph

3.4.2 데이터 간 신뢰도 확인

Page 16: 빅데이터를 이용한 오피니언 마이닝 기반 SNS데이터의 활용journal.hsst.or.kr/DATA/pdf/v8_3_80.pdf · 비스,SNS이다.트위터,인스타그램,Facebook등 많은

Utilizing SNS data based on Opinion Mining using Big Data

Copyright ⓒ 2018 HSST874

앞서 정제된 페이스북 데이터와 학보사 데이터 간의 연관성 및 신뢰도를 알아본다.

step1. 최종적으로 많이 다뤄진 10개의 키워드에 대한 연관성과 신뢰도를 알아보기 위해, 앞서

정제한 csv 파일 두 개를 읽어온다. 그 다음, arules라는 내장 패키지를 사용해 두 데이터 간의 연

관 규칙과 그 신뢰도에 대해 알아본다.

[그림 23] 가장 많이 연관되는 단어 10개의 지지도, 신뢰도, 향상도

[Fig. 23] Support, reliability, and improvement of the ten most related words

step2. 단어들 고유의 라벨을 지정하고 별로 실제 연관성의 정도에 따라 화살표의 선명도로 나

뉘고, 한 눈에 알아보기 위해 원의 크기와 색깔에 따른 신뢰도가 드러나는 그래프로 표현한다.

[그림 24] 단어별 연관성 및 신뢰도의 시각화

[Fig. 24] Visualization of word-by-word associativity and confidence

Page 17: 빅데이터를 이용한 오피니언 마이닝 기반 SNS데이터의 활용journal.hsst.or.kr/DATA/pdf/v8_3_80.pdf · 비스,SNS이다.트위터,인스타그램,Facebook등 많은

Asia-pacific Journal of Multimedia Services Convergent with Art, Humanities, and Sociology

Vol.8, No.3 (2018)

ISSN: 2383-5281 AJMAHS

Copyright ⓒ 2018 HSST 875

4. 결 론

본 논문에서는 빅데이터 솔루션인 Hadoop, Pig, Hive, R을 사용해 Facebook을 이용하는 H대학

학생들이 작성한 게시글과 좋아요 수, 작성 날짜 세 가지 데이터를 통해 학보사 페이지에서 학생

들의 건의·애로사항을 수정·보완하는 기간이 얼마나 걸리는지를 분석·표현하였다. 단편적인 수치

정보만을 파악할 수 있는 기존 Facebook의 각 게시글 마다 표현되는 좋아요 개수, 싫어요 개수 등

의 수치 데이터들을 효율적으로 활용하기 위해 그 예로써 특정 학교의 데이터 비교를 선택하였다.

H대학 Facebook 페이지와 학보사 페이지의 데이터를 수집하는 과정에서는 발생한 제약사항 때문

에 R을 이용해 윈도우 환경에서 크롤링을 진행하였고, 수집된 데이터를 파일 형태로 추출해

Hadoop 공간에 저장하고, 처리과정에서는 Pig를 사용해 H대학의 Facebook 페이지에서 수집한 정

보들 중 게시글과 게시글에 대한 좋아요 수, 작성일자 3가지 칼럼만을 추출해 Hive에서 다시 테이

블 형태로 저장하여, 정제·처리된 데이터를 다시 R을 사용해 표현, 분석하는 방법을 사용하였다.

연구를 진행하면서, Facebook 페이지에서 수집되는 데이터들에 비해 학보사 페이지에서 수집할 수

있는 데이터의 양이 현저히 적어, R로 표현할만한 정보들이 한정되었다. 따라서 추후 연구에서는

비교 대상을 재설정하고 나아가, 비교·분석하는 기능 외에도 사용자들의 성향과 감성에 따라 예측

하는 기능을 추가해 추천 시스템으로써 사용할 수 있도록 발전시키는 연구를 수행할 것이다.

5. Appendix

본 장에서는 앞서 본론 내용들과 관련 있는 주요 소스 코드들을 소개한다.

[그림 25] R을 이용한 Facebook 크롤링

[Fig. 25] Facebook crawling with R

[그림 25]는 페이스북 페이지의 데이터를 읽어들이는 과정의 소스코드이다.

Page 18: 빅데이터를 이용한 오피니언 마이닝 기반 SNS데이터의 활용journal.hsst.or.kr/DATA/pdf/v8_3_80.pdf · 비스,SNS이다.트위터,인스타그램,Facebook등 많은

Utilizing SNS data based on Opinion Mining using Big Data

Copyright ⓒ 2018 HSST876

⓵ fb = LOAD 'kpu_fb_2016.csv' USING PigStorage(',');

⓶ fb_data = FOREACH fb GENERATE $2 as message:chararray, $3 as date:chararray, $8 as

like:chararray;

[그림 26] 특정 컬럼 추출

[Fig. 26] Specific column extraction

[그림 26]은 수집한 데이터 중 필요한 컬럼 3개만을 추출하는 코드이다.

hadoop fs -put 파일이 있는 경로/파일명.(확장자) /user/hadoop/work

[그림 27] 수집한 파일 hadoop 공간에 적재

[Fig. 27] Loading Collected Files in Hadoop Space

[그림 27]은 작업의 수행이 끝나고 hadoop 공간으로 데이터를 보내 분산 처리하기 위한 전처리

과정의 코드이다.

CREATE TABLE kpu_fb (

message_a STRING,

data_b STRING,

like_count STRING)

ROW FORMAT DELIMITED FIELDS TERMINATED BY ',';

[그림 28] 정제한 데이터를 위한 테이블 생성 및 데이터 로드

[Fig. 28] Create tables and load data for refined data

[그림 28]은 페이스북 페이지와 학보사 페이지를 비교하기 위해 hive의 sql 형태인 hql에 맞는

형태로 테이블을 재생성하는 과정의 코드이다.

Page 19: 빅데이터를 이용한 오피니언 마이닝 기반 SNS데이터의 활용journal.hsst.or.kr/DATA/pdf/v8_3_80.pdf · 비스,SNS이다.트위터,인스타그램,Facebook등 많은

Asia-pacific Journal of Multimedia Services Convergent with Art, Humanities, and Sociology

Vol.8, No.3 (2018)

ISSN: 2383-5281 AJMAHS

Copyright ⓒ 2018 HSST 877

References

[1] S.B.An and K.E.Lee, The Effects of Parental Attachment and Peer Conformity on Adolescents' SNS

Peer-bullying: Focusing on the Moderating Effects of Disturbance of Adaptive Functions Caused by SNS

(2014), Vol.21, No.3, pp.51-67.

[2] E.J.Jang and J.K.Kim, A Study on the Switching Intention of SNS Users : In the Perspective of SNS

Fatigue and Migration Theory (2015), Vol.30, No.1, pp.483-504.

[3] S.S.Choi, S.Y.Chi, K.H.Yoo and J.K.Kim, Visualization of Big Data Analysis Results Connecting to

Database (2015), Vol.2, No.1, pp.1-10.

[4] W.K.Lee, Scalability Management for Distributed Big Database System Concurrency Problems (2015), Vol.2,

No.2, pp.25-34.

[5] I.Y.Lee, M.S.Kim, J.S.Kim, J.H.Lee and K.Y.Hwang, ODYSSEUS/DM: Design and Implementation of a

Data Mining System Tightly-Coupled with the Odysseus Object-Relational DBMS (2012), Vol.39, No.4,

pp.211-220.

[6] H.M.Ryang, U.I.Yun and C.H.Kim, Performance Analysis of Top-K High Utility Pattern Mining Methods

(2015), Vol.16, No.6, pp.89-95.

[7] S.H.Park and J.H.Lee, Time Series Representation Combining PIPs Detection and Persist Discretization

Techniques for Time Series Classification (2010), Vol.10, No.9, pp.97-106.

[8] H.B.Lee, Logistic Regression Analysis using Regression Graphics (2005), Vol.7, No.3, pp.829-838.

[9] E.S.Cho and I.S.Hwang, The Effective Criteria for Determining the Number of Clusters : An Application

with SPSS and Microsoft Excel (2008), Vol.26, No.1, pp.1-9.

[10] K.H.Cho and H.C.Park, Study on the Multi Intervening Relation in Association Rules (2011), Vol.13, No.1,

pp.297-306.