백봉현, 하일규, 안병철 Bong-Hyun Back, Ilkyu Ha, ByoungChul Ahn 1. 서론 최근들어소셜네트워크활성화로 에서발생하는대량의데이터 로부터정보를추출하여이를정치 경제 개인서비 스 연애등다양한분야에활용하고자하는노력이 계속되고있다 상의데이터를빠르게분석하여 의미있는정보를추출하고 이를통해대중들이요구 하는의견과생각들을실시간으로파악하여 제품을 생산하고서비스를제공하는다양한분야에서활용 할수있도록하는기술이필요하다 또한이러한정 제된유효하고다양한정보들을빅데이타처리분석 기술을통해보다효율적으로관리하고시각화하는 기술도필요하다 따라서 본연구에서는소셜네트워 크에서발생되는다양한데이터 특히비정형데이터 를효율적으로처리할수있는빅데이터처리플랫폼 을제안한다 서비스는정보전달대상간의상호연결방 법이용이하며 데이터작성형식이비교적자유롭기 때문에발생하는데이터는대부분비정형데이터 이다 비정형데이터는숫자데 이터와달리그림이나영상 문서처럼형태와구조가 복잡해정형화되지않은데이터로정의할수있다 상에서발생하는수많은비정형데이터로
부터의미있는정보를추출하기위해서는우선비정형데이터에대한처리가필요하다 비정형데이터분석은형태소분석을기반으로다양한분석방법들이연구되고있다 그러나다양한방송매체와젊은계층들로부터새로운유행어와협의되지않은단어는컴퓨터를통한언어분석과감성분석이어려워지고있고이에대한유효성검정이더욱어려워지고있다 현재 빅데이타처리를위한다양한오픈소스프로젝트들을하둡에코시스템 을사용한다 빅데이터처리에사용되는데이터베이스는전통적인관계형데이터베이스보다덜제한적인일관성모델을이용하는데이터저장및검색을위해 을이용한다 현재업계및학계에서 데이터베이스에관한많은연구가진행되고있으며 구글의 아마존의 오픈소스프로젝트의 등이대표적이다 특히본연구에서사용되고있는 는 이론에따라데이터베이스를분류하였을때 와 를만족하는 형데이터베이스로서 현재오픈소스프로젝트로진행되고있으며 의방식으로 형태의문서데이터를저장한다 이는스키마가없으며 정규표현검색및배열데이터의특정값포함여부등의검색조건등에유연하게대응 할수있다 전통적인 에비하여대량의데이터를병렬로처리할수있으며 기법등을사용하여데이터클러스터링연산 통계 데이터추출및필터링이가능하다 감성분석 은자연언어처리와전산언어학그리고텍스트분석론을활용하여원자료에서주관적인정보를발견하고추출하는과정이다 빅데이터로부터사용자의감성을분석하기위한연구가진행되고있다 감성의종류를분석하고분류하는작업은크게세가지의단계로나눌수있다 첫번째단계는감성정보가들어있는주관적인생각이나느낌을표현하는문장을추출하고 다음단계에서문서또는문장의극성 긍정 부정 을나눈다 마지막단계는문서또는문장이어느정도의주관성을갖는지그강도를구하는강도분류이다 2. 비정형 SNS 감성데이터분석방법제안 2.1 시스템구성본연구에서는다양한대용량 데이터로부터데이터를안정적으로수집하고저장하기위한하둡에코시스템을기반으로한병렬적 을사용하고 대량의비정형데이터를분석하여사용자의감성을효과적으로분석할수있는 기반의감성분석알고리즘및사전을제안한다 전체적인시스템의구성은그림 와같다 제안된시스템은 Distribution Coordination (zookeeper) Managing, Monitoring (Ambari) Database (Cassandra, MongoDB, Hbase) Data mining (Mahout) Scripting (Pig) Meta data (Hcatalog) Data serialization (Avro) SQL(Hive) Distributed Processing (MapReduce) Hadoop Distributed File system (HDFS) Gathering structured data (Sqoop) Gathering unstructured data (Chukwa) Fig. 1. Hadoop ECO System.
Hadoop EcoSystem Map 1.Context Analysis Positive Context Dic. Negative Context Dic. HDFS TextString 2.Morphological Analysis 3.Token Analysis 4.Prohibited words Analysis Positive Word Dic. Negative Word Dic. Prohibited Word Dic. MapReduce F(x) Reduce MongoDB Sentiment Score Statistics Extracted Keyword Statistics Fig. 2. The Proposed System. 을기반으로하고있으며 는 사이트의 를통해전달받은데이터를효율적으로분산처리하여적재하는역할을한다 적재된텍스트형태의자료는 기반의제안된함수에의해 단계에걸쳐감성분석이이루어진다 감성분석시에는제안된 종류의감성분석사전을참조하여보다정확한감성분석이이루어질수있도록한다 감성분석결과는다양한통계를위해사용될수있으며 에저장된다 2.2 HDFS의구성 는분산처리구조의파일처리시스템이다 는입력받은대량의데이터를적절하게분산 하여적재하는역할을한다 본연구에서제안하는 는그림 과같이구성하였다 이시스템은리눅스기반의 대의서버로병렬로연결되며 각각데이터를저장하기위한 들의 는 로구성되며 장애복구를위해 를이용한네임서버를이중화한다 구성된서버의기능은표 과같다 2.3 MapReduce 함수구성 는분산컴퓨팅을지원하기위해구글에서개발한소프트웨어프레임워크로맵 과리듀스 라는함수의개념을이용하여병렬프로그래밍을가능하게한다 본연구에서는맵함수는 개로분류되며 감성분석을위한각단계에적용 Parallel HDFS MapReduce Primary Server NameNode HDFS DataNode Secondary Server Secondary NameNode HDFS DataNode Data Server1 HDFS DataNode Data Server2 HDFS DataNode Emotion Analysis Functions Map Reduce (Statistics) Dictionary Job Trac ker Task Trac ker Task Tracker Task Tracker Task Tracker MongoDB Fig. 3. The proposed HDFS.
Table 1. Servers of the proposed HDFS 된다 제안된맵함수는긍정 부정문맥분석 형태소 분석 토근분석 금칙어분석함수이다 각함수의 상세한역할은아래와같다 /Context Analysis public double calculatesentencescore(string keyword, String source) { keyword = keyword.tolowercase(); source = source.tolowercase(); // processing of the keyword source = source.replaceall(keyword, "#KW#"); 첫째 긍정 부정문맥분석함수이다 이함수는 먼저정확도를높이기위해한문장단위로문맥을 검사하고 긍정문맥사전과부정문맥사전을이용하 여패턴 정규식 매칭을실시한후 원본자료 트위트 를긍정과부정으로카운팅하며 긍정과부정의 카운트가동일하면긍정으로처리하고판단불가일 경우형태소분석으로이관한다 문맥분석을위한알 고리즘은그림 와같다 둘째 형태소분석함수이다 이함수에서는한나 눔의한글형태소분석기를이용하여링크 특수기호 등분석에불필요한요소를제거한후 긍정어절과 부정어절사전을비교하여각각의카운터를계산한 다 또한긍정또는부정카운터의수치가동일하다 면긍정으로처리 판단불가한상태라면토큰분석으 int pcount = 0; int ncount = 0; // context analysis by minimum sentence unit List<String> lst = gettwittersentences(source); for (String s : lst) { pcount += getpostivecount(keyword, s); ncount += getnegativecount(keyword, s); if (pcount == 0 && ncount == 0) { return 0.0; int result = pcount - ncount ; // if the result is zero then assign 1 to the result(positive) if (result == 0) { result = 1; return result; Fig. 4. Context Analysis Algorithm 로이관한다 셋째 토튼분석함수이다 이함수는원본자료 트위트 의토큰을공백으로분리하고 한글형태소분석기를사용하여형태소를분석한결과와긍정어절과부정어절사전을비교하여각각의카운터를계산하며 긍정또는부정카운터의수치가동일하다면긍정으로처리 판단불가한상태라면금칙어분석으로이관한다 넷째 금칙어분석함수이다 이함수에서는최종분석단계로상위의과정에서분석이이루어지지못했을경우금칙어사전을기반으로금칙어스코어계산한다 형태소분석 토큰분석및금칙어분석을위한알고리즘은그림 와같다 2.4 감성분석사전제안한 함수에서사용하는사전은모두 가지종류이다 즉 긍정어 부정어 긍정문맥 부정문맥 금칙어 사전이다 제안된감성분석사전은감성분석을위한각맵함수에서사용된다 각사전의역할은표 와같다 3. 실험결과및고찰 3.1 비정형 SNS 데이터수집제안한시스템의성능분석을위한데이터수집은 와트위터 를통해이루어졌다 는트위터나구글플러스등 서비스에서사용자의활동을분석해통계기법으로정리해주며 하루 억건의방대한데이터를분석하여제공한다 에서제공하는 는상업용키
//Morphological Analysis //if the result is zero in previous stage, this stage is processed public double calculatesentencescore(string source) { double sc = 0.0; List<MorphemeTag>verifyMorphemeList = cleansingword(source); double posidx = getmorphemescore(verifymorphemelist, MorphemeCalculator.s_posDic); double negidx = getmorphemescore(verifymorphemelist, MorphemeCalculator.s_negDic); if (posidx == 0 && negidx == 0){ sc = 0.0; else{ sc = posidx - negidx; // is the sc is zero, then assign the posidx value to the sc //value as a positive value if (sc == 0) { sc = posidx; // Token Analysis if (sc == 0.0) { List<String> tokenlist = Arrays.asList(source.split(" ")); List<MorphemeTag>verifyMorphemeList= leansingword(source);... if (posidx == 0 && negidx == 0){ sc = 0.0; else{ sc = posidx - negidx; if (sc == 0) { sc = posidx; //Prohibited word Analysis if (sc == 0){ List<MorphemeTag>verifyMorphemeList = cleansingword(source); for (MorphemeTag tag : verifymorphemelist) {... return sc; Fig. 5. Morphological, Token and Prohibited word Algorithms. 가아닌일반용키는하루에최대 쿼리를 요청할수있으며 과거데이터의수집이완료된후 지속적인증분데이타의경우 를이용하여 트위터에서제공하는데이터를수집한다 트위터제 공데이터는현시점으로부터최대 주일과거데이 터만을수집가능하며 트위트에서제공되는키 토큰 는 분동안 개의쿼리를사용할수있다 본연구에서는크론을통해매 시간마다데이터수집모듈을실행하도록하였다 그림 은 를이용하여트위터로부터데이터를수집하는과정을보여주고있다 3.2 실험환경제안시스템의성능분석을위한환경은표 과같다 실험환경은 대의서버를하둡기반의병렬시스템으로구성하였으며 사용운영체제는 를사용하였다 3.3 실험분석및평가제안시스템의성능분석을위해아래와같은 가지의테스트를진행하였다 첫째 데이터량에따른시스템성능실험이다 를통해수집된표 와같은 개셋트의실제트위터데이터에대해수집시간및처리시시스템의부하를테스트하였다 그림 은데이터셋트별크롤링시간과 적재시간을비교한것이다 그림 과그림 는데이터셋트별크롤링과 적재시각노드별메모리부하와 부하를나타낸것이다 각데이터셋트의데이터건수에대하여크롤링시간과 적재시간이비례하여안정적으로증가하는것을볼수있다 따라서제안된시스템에서데이터를수집하여적재하는데네트워크부하나시스템부하는미비하며 수초 수분의시간내에안정적인데이터수집과적재가가능함을알수있다 Table 2. Dictionaries for Emotion Analysis
Twitter4j Name Content Date Profile_image RESTful Service(HTTP) OAUTH (Bearer Token) URL HTTP Request 결과를포함한 HTTP Response Gradual Crawler 상태값저장 크롤링데이터저장 MongoDB Hadoop (HDFS) Fig. 6. Data Crawling using Twitter4j. Table 3. Experimental Environment Table 4. Data Sets for experiment and analysis 그림 과같이슬레이브노드 에서 까지의노드들은메모리사용량이최소 에서최대 사용한것으로나타났고 마스트노드 의경우최소 에서최대 를사용한것으로나타났다 슬레이브노드의경우데이터를분산적재함으로써메모리부하가낮게나왔으며 마스터노드의경우전체슬레이브노드의분산데이터처리를위해슬레이브노드보다약 배가량더많은메모리자원을사용하는것으로나타났다 그림 과같이슬레이브노드 과 의 경우최소 에서최대 의 사용량을나타냈으나 슬레이브노드 의경우최소 에서최대 의 사용량을나타냈다 이는병렬분산처리시 시스템의자동병렬처리과정에서슬레이브노드 을주로사용하기때문인것으로파악된다 마스트노드의경우최소 에서최대 의 사용량을나타냈다 따라서 사용량에있어서도제안된시스템은데이터의수집과적재시안정적인환경을제공하는것으로나타났다 둘째 데이터량에따른감성분석시간과시스템
Fig. 7. Crawling Time and HDFS Loading Time. Fig. 10. Time of MapReduce Processing for Sentiment Analysis. Fig. 8. Memory Consumption of Data Crawling and HDFS Loading. Fig. 11. CPU Consumption of MapReduce Processing for Sentiment Analysis. Fig. 9. CPU Consumption of Data Crawling and HDFS Loading. 부하테스트이다 첫번째실험에서사용한데이터셋을가지고감성분석시소요되는분석시간과시스템부하정도를실험하였다 그림 은데이터셋트별감성분석소요시간을비교한것이고그림 과그림 는감성분석시각노드별 부하와메모리부하를각각비교한것이다 그림 과같이 개의데이터셋트들에대해감성분석시간은 초에서 초의시 Fig. 12. Memory Consumption of MapReduce Processing for Sentiment Analysis. 간이소요되어데이터건수와비례하여감성분석시 간이안정적으로증가하는것으로나타났다 그림 에서마스트노드 는실제분석처리를 하지않고하위슬레이브노드를관리하므로 의 사용량이낮은반면 슬레이브노드는분석을하므로
자원을사용한다 데이터건수 인데이터셋트까지는각슬레이브노드가데이터를상호병렬처리하는것으로나타났으나 데이터건수 인데이터셋트이후는분산된데이터량이많아짐에따라모든슬레이브노드들이 를최대로사용한다 따라서제안된시스템은일정한수준까지안정적인상호병렬처리가이루어지는것으로볼수있다 그림 도그림 과같이슬레이브노드가분석을병렬처 Fig. 13. Time of Data Loading to MongoDB. Fig. 14. Load Valance in MongoDB searching. 리를하므로많은메모리를사용한다 따라서 제안된시스템과알고리즘은자원할당측면에서단일노드에만시스템부하가집중되지않고상호병렬처리됨으로써안정적인병렬분석환경을제공하는것으로나타났다 셋째 데이터조회시처리시간과인덱싱사용유무에따른속도비교테스트이다 첫번째실험에서사용한데이터셋에대하여 에저장된데이터를적재및조회할때소요되는시간과시스템의부하테스트를진행하였다 그림 은데이터셋트별 에데이터가적재되는시간을비교한것이고 그림 는 조회시시스템의부하를비교한것이다 그림 과같이데이터셋트의데이터건수에비례하여 에적재되는시간이증가하였다 그림 에서는 에적재된데이터조회시메모리사용량은데이터건수에비해큰차이가없는것으로나타났고 사용량의경우 정도 메모리사용량 정도로데이터조회시시스템 에의한성능저하는없는것으로판단할수있다 마지막으로감성분석결과의정확도및오차비교에관한테스트이다 애플 을키워드로하여추출한 건의데이터셋에대해긍정또는부정의대한정확도를제안된시스템분석결과와인간이직접지각으로느끼는정도를비교분석하였다 그림 는제안시스템의감성분석 형태소분석 결과와인간의직시적인감성분석결과를비교한것이다 그림 와같이중립감성의경우상대적으로오차가높았다 부정과긍정의감성인경우비교적오차가적었으나 제안된시스템에의한감성분석결과가인간의직시적인감성분석결과에상당히근접하고있음을알수있다 4. 결론 Fig. 15. Data Accuracy. 본연구에서는 로부터발생하는대량의비정형데이터로부터사용자의감성을분석할수있는빅데이터처리시스템과알고리즘을제안하였다 제안된시스템은하둡에코시스템기반병렬 시스템을구성하며 로 개의주요기능을가진함수를구성하였다 또한감성분석을위한 가지종류의데이터사전을사용하였다 제안한시스템은실험을통해다음과같은결론을얻었다 첫째
데이터량에따른시스템성능은데이터를수집하여적재하는데네트워크부하나시스템부하는미비하며 수초 수분의시간내에안정적인데이터수집과적재가가능함을알수있었다 둘째 데이터량에따른감성분석시간과시스템부하실험에서데이터건수에따라단일노드에만시스템부하가집중되지않고상호병렬처리됨으로써안정적인병렬분석환경을제공하는것으로나타났다 셋째 데이터조회시처리시간과인덱싱사용유무에따른속도비교실험에서데이터건수가증가함에따라인덱싱의사용이유용함을알수있었다 에적재된데이터조회시메모리사용량은데이터건수에비해큰차이가없는것으로나타났고 데이터조회시시스템 에의한성능저하도없는것으로판단할수있었다 마지막으로감성분석결과의정확도및오차비교에관한실험에서제안된시스템에의한감성분석결과가인간의직시적인감성분석결과에상당히근접하고있음을알수있었다 REFERENCE
680 멀티미디어학회 논문지 제17권 제6호(2014. 6) Simplified Data Processing on Large Clusters, Communications of the ACM, Vol. 51, No. 1, pp. 107-113, 2008. 1992년 영남대학교 전산공학과 학사 2001년 영남대학교 정보처리교육 전공 석사 2003년 영남대학교 컴퓨터공학과 박사 백 봉 현 1999년 동국대학교 전자계산학과 이학사 2002년 영남대학교 컴퓨터공학과 공학석사 2014년 영남대학교 컴퓨터공학과 하 일 규 1992년 1995년 증권감독원 전산업무실 2002년 현재 영남대학교 컴퓨터공학과 강사, 객원교수 관심분야 : 센서네트워크, 소셜네트워크분석, 빅데이터 처리 공학박사 2005 2009 일본 SecuAvail 시스템엔지니어 2010 현재 아르고스 대표이사 관심분야 : 빅데이터처리, 센서네트워크, 데이터마이닝, 개인정보 보호 1976년 안 병 철 영남대학교 전자공학과 학사 1986년 오레곤주립대 전기 및 컴 퓨터공학 석사 1989년 오레곤주립대 전기 및 컴 퓨터공학 박사 1976년 1984년 국방과학연구소 연구원 1989년 1992년 삼성전자 수석연구원 관심분야 : 센서네트워크, 임베디드시스템, 리, 멀티미디어처리 빅데이터처