4. 주제선정 배경
BS501은 소셜 데이터의 지속적인 증가에 따른 TREND 분석의 필요성과
소비자 관점의 INSIGHT 분석 서비스 제공을 위해 소셜 데이터 분석을 주제로 선정하였습니다.
소셜 데이터 TREND 분석
소셜 데이터 상의 언급 데이터는 어떠한가
소셜 데이터 연관 분석은 어떠한가
소셜 데이터 상의 감정분석은 어떠한가
소비자 관점의 INSIGHT 도출
소비자들이 느끼는 Unmet Needs는 무엇인가
시장내 Key Player들에 대한 평가는 어떠한가
소비자들이 기대하는 전략 방향은 어떠한가
소셜 데이터 기반 기업 분석
소셜 데이터 기반 기업 석 전 과정은 어떠한가
Censydiam Model의 적용
Brand Positioning 전략의 도출
기업 경쟁력 강화 방안의 도출
소셜 데이터
TREND 분석
소비자 관점의
INSIGHT 도출
소셜 데이터 기반
기업 분석
소셜 데이터를 수집, 분류, 분석, 시각화 하여 소비자 관점의 Insight를 도출하고자 합니다.
5. Timeline
본 프로젝트의 세부 일정은 다음과 같습니다.
기능 구현 및 프로그램 완성
연관 분석, 감정 분석, 기업 분석
분석 설계 모델링
소프트웨어 아키텍처 설계
시스템 구현
시스템 실제 적용 및 성능 향상
7/24 ~ 8/4 8/7 ~ 8/11 8/14 ~ 8/18 2016 8/21 ~ 8/23
요구사항 정의 및 시장분석
프로그램 기획
분석 인프라 구축
빅데이터 분석 인프라 구축
6. 시스템 구성도- 데이터 수집/저장/분석
데이터 수집&저장&분석과 시스템 구성도는 다음과 같습니다.
분석가와 데이터베이스의 연결관계를 도식화 하였습니다.
분석가
HDFS
배치 처리
Twitter
데이터베이스
OracleDB 11g
Hive Flume
Analytics.jar
BlogMain.jar
NewsMain.jar
CafeMain.jar
Community.jar
수집 / 저장 / 분석
Hadoop
데이터 저장데이터 수집 데이터 분석 Database
R 3.4.1
Java application
7. Web Application Server&시각화 시스템 구성도는 다음과 같습니다.
시스템 구성도- Web Application Server & Visualization
WAS, Web application
Visualization.war
JDK 1.8.0_121
Tomcat 9.0
Client
VISUALIZATIONWAS Database
분석가와 데이터베이스의 연결관계를 도식화 하였습니다.
데이터베이스
OracleDB 11g
Web.war
9. Overview
데이터수집 -> 데이터저장 -> 데이터가공 -> 데이터분석 -> 데이터시각화 의 과정을 통해 프로젝트를 진행합니다
02 데이터 저장
다양한 방식 다양한
환경에 효율적으로 저장
03 데이터 가공
데이터로부터 유용한 정보를
추출하기 위한 전처리 과정
04 데이터 분석
데이터로부터
유의미한 정보를 추출
05 데이터 시각화
데이터에 의미를
부여하여 효율적으로 전달
뉴스 카페 블로그 커뮤니티트위터
01 데이터 수집
웹 일상 등 모든 분야에서
데이터 수집
10. 본 프로젝트에서는 SEMMA 프로세스를 이용한 분석을 실행합니다.
SEMMA 프로세스는 sample explore modify model access를 의미하며 data minig의 프로세스의 핵심을 의미합니다
The acronym SEMMA
-- sample, explore, modify, model, assess -- refers to the core process of conducting data mining.
탐색[Explore]
데이터의 기초적인 설명과
시각화 작업을 수행합니다
Visualization and basic description of
the data.
수정[Modify]
텍스트 마이닝과 언어분석을 합니다
Conduct text mining and language
analysis
샘플[Sample]
데이터의 특성을 대표하는 표본을 추출합니다
Generate a representative sample of the data.
평가[Assess]
모델의 유용성과 정확성을
평가합니다
Evaluate the accuracy and
usefulness of the models.
모델[Model]
감성 분석모델과
연관 분석모델을 사용합니다
Use variety of statistical
and machine learning
models.
SEMMA
11. SEMMA – Sampling : 뉴스기사 크롤링
RSS 프로그램을 사용하여 신문기사를 크롤링 후 수집한 DATA를 저장합니다.
뉴스 기사 크롤링 방법은 다음과 같습니다.
수집한 기사 DATA 저장
수집을 위한 RSS 테이블 생성
12. SEMMA – Sampling : 트위터 크롤링
수집한 기사 DATA 저장
Example Text : Get a modern PowerPoint Presentation that is beautifully
designed. I hope and I believe that this Template will your Time, Money and
Reputation. Easy to change colors, photos and Text.
HADOOP, FLUME, HIVE를 이용한 데이터 수집
트위터 크롤링 프로세스는 다음과 같습니다.
HAOODP FLUME HIVE를 사용하여 트위터를 크롤링 후 수집한 DATA를 저장합니다.
HDFS
Data Server
source sink
channel
Flume Agent
JVM Process
13. SEMMA – Sampling : 카페/블로그 크롤링
수집한 기사 DATA 저장
카페, 블로그 수집 API사용을 위해 개발자 어플리케이션 등록
카페/ 블로그 크롤링 방법은 다음과 같습니다.
API를 사용하여 카페/ 블로그를 크롤링 후 수집한 DATA를 저장합니다.
14. 뉴스 블로그 카페 트위터 커뮤니티
DATA 743,288 레코드
99129
82504
102879
166562
65857 66745 61012
도로/교통 여행/레저 패션/뷰티 공연/전시 날씨 도서 음식
Detail
총 데이터
크기
204MB
데이터 개수 743288개
데이터 열
DATANUMBER, DATAURL, DATACHANNEL,
SITETITLE, CONTENTSTITLE, DATACONTENTS,
REGISTRATIONDATE, CONTENTSWRITER
데이터
수집기간
7.31~8.17
SEMMA 모델기반 Sampling 예시
*1일 수집할 수 있는 data와 기간의 제약으로 본 프로젝트에서는 약 74만개 data를 분석 했습니다.
SEMMA – Sampling
15. <상위 100개의 연관관계 plot화>
전체 데이터 연관관계 파악을 위해 상위 3000개의 데이터를
추출하여 평행 좌표계 시각화 작업을 수행하였습니다.
<Parallel coordinates plot>
선명한 정도는 지지도를 의미합니다.
단어간의 지지도가 클수록 그래프의 선의 굵기는 진해집니다.
그래프는 선이 꺾이는 곳을 기준으로 해석 했습니다.
(Ex: 폭행 + 피해자 -> 범죄)
전체 데이터 연관관계를 파악하기 위해 연관성 분석을 한 결과
(*원-> 연관관계를 의미 원의 크기 -> support 크기 색상 진하기 -> lift 크기)
최소지지도 최소 신뢰도 연관관계
0.01 0.01 2952,425
0.005 0.01 4569,476
SEMMA – Exploring : 데이터탐색
16. 외부 링크 삭제
특수 기호 삭제
비속어 제거
문장 분리 후
형태소 분석
동의어 처리
연관어 및 감성어 추출
분류 매핑
원문 데이터01
문서 정제02
자연어 처리03
키워드 및 연관어 추출04
※자동차 주행중에 소리를 찍을수없어 최대한 비슷한 소리로 올려봅니다.
http://cafe.naver.com/morningjjang/969137
※자동차 주행중에 소리를 찍을수없어 최대한 비슷한 소리로 올려봅니다.
http://cafe.naver.com/morningjjang/969137
Datachannel : café
자동차 [명사] 주행중에[명사] 소리를[명사] 찍을수없어[동사] 최대한[명사]
비슷한[형용사] 소리[명사] 로 [조사] 올려봅니다[동사].
자동차 : 자동차 카테고리
비슷한 : 동사 중립 Control
올려 보다 : 동사 중립 Control
SEMMA – Modifying : 텍스트마이닝
17. 형태소 분석
규칙 및 통계 기반 띄어쓰기 오류 교정
문장 분리
중복된 문장 부호 분리
문장 부호가 생략된 문장의 경우 종결어미를
이용하여 분리
[문장 부호 : . ! ?]
말뭉치 형성
컴퓨터가 이해할 수 있도록
언어를 컴퓨터코드로 변형
말뭉치 형성 자동차 주행중에 소리를 찍을수없어 최대한 비슷한 소리로 올려봅니다. 붕 소리말고 쇠소리 귀뚜라미소리 들리시죠?
문장 분리
문장1 : 자동차 주행중에 소리를 찍을수없어 최대한 비슷한 소리로 올려봅니다.
문장2 : 붕 소리말고 쇠소리 귀뚜라미소리 들리시죠?
형태소 분석
문장 : 자동차 [NNG]주행 [NNG]중에[MAG] 소리[NNG]를[JKO] 찍을[ 수[NNB] 없어[ VA] 최대한 [MAG] 비슷한
[VA]소리[NNG]로[ JKC]올려[VA]봅니다[VV].
SEMMA – Modifying : 언어 분석
18. 세부 감성 모델
긍정/부정 견해는 감정의 상위 개념으로서
감정보다 더욱 모호한 개념이기 때문에
소셜 데이터 상의 소비자 인식 조사를 위해
세분된 7가지 감성 정보를 제공합니다.
SEMMA – Modeling : 감성 분석
국립 국어원 사전API를 기반으로 감성 사전을 구축하였으며 Text Mining 결과 빈도수가 높은 감성 단어들을 추가하였습니다.
Russell의 Emotion Classification Model을 활용해 소비자들의 감성을 좀 더 면밀히 분석합니다.
Happy
High
Arousal
Negative
Valence
Low
Arousal
Positive
Valence
Delighted
Satisfied
Afraid
frustrated
depressed
본 프로젝트에서는
Russell의 Model of Affect(1980)에 기반하여
공포, 분노, 괴로움, 슬픔, 만족, 기쁨, 행복의 7가지
카테고리에 의하여 감성을 분류했습니다.
Russell의 Emotion Classification
Model(1980)
감성
분류
공포 분노 괴로움 슬픔 만족 기쁨 행복
예시
두렵다
겁나다
무섭다
당황하다
위험하다
싫다
미치다
화나다
나쁘다
밉다
한심하다
원망하다
아프다
힘들다
미안하다
차갑다
걱정하다
답답하다
힘겹다
울다
슬프다
그립다
외롭다
비장하다
아쉽다
안타깝다
괜찮다
솔직하다
진실하다
착하다
당당하다
충분하다
보람차다
웃다
좋다
즐기다
즐겁다
기쁘다
눈부시다
다정하다
웃기다
행복하다
좋아하다
소중하다
고맙다
위하다
달콤하다
따뜻하다
19. SEMMA – Modeling : 감성 사전 구축
세부 감성 분류
감성 분류
긍정/ 중립 / 부정
행위의 주요 동기 요인
국립 국어원 사전API를 기반으로 감성 사전을 구축하였으며 Text Mining 결과 빈도수가 높은 감성 단어들을 추가하였습니다.
Russell의 Emotion Classification Model을 활용해 소비자들의 감성을 좀 더 면밀히 분석합니다.
20. SEMMA – Modeling : 연관 분석
문서- 단어 행렬화
웹데이터
NLP
세종사전
형태소분석기
형용사, 명사, 동사
등의 단어들로 추출
상관 계수가 높은 단어 나열
주제어와 함께 발현한 키워드 중에서 연관도가 높은 키워드를 색인하고 조회하는 기능입니다.
구문 분석을 포함한 Deep Level NLP에 기반한 정교한 키페어를 추출하였습니다.
추출된 키페어들에 대해 구문 분석 기반의 Association Rule을 적용하여 연관도가 높은 유의미한 연관어를 추출하였습니다.
[Term DocumentMatrix]
21. SEMMA – Modeling : 기업분석
행위의 주요한 동기 요인을 분석 한 Censydiam Model을 적용하여 BrandPositioning 전략을 도출합니다.
Express(Enjoyment)
감정에 대한 표현이 크고 충동적인 행동을 야기하는 영역
Belonging
깊이 있고 진정한 친구 관계나 넓은 계층에서의 단합과
서로에 대한 공감과 돌봄을 강조하는 영역
Control
욕구를 조절하며 충동을 억제하는 영역
Power
우리로서의 만족감보다는 강한 자기 과시의 욕구로서
최고로 인정 받으면서 명예를 중요시 여기는 영역
기업의 브랜드 포지셔닝 전략은 고객 충성도와 직접적으로 연관되며 소비자 관점의 브랜드 자산이 됩니다.
효과적인 브랜드 포지셔닝 전략은 고객 관점에서 브랜드가 어떻게 인식되고 있는지를 분석해야 합니다.
심리학자 알프레드 아들러의<Censydiam Social Dimension>
26. 구분 도구
OS
- Windows 7 Professional K
- Red Hat CentOS 7 리눅스
개발 언어
- Java 1.8.0
- R 3.4.1
- SQL
- HTML
개발 도구
- Eclipse Neon.3 4.6.3
- SQL Developer 4.2.0.17
- Spring Tool Suit 3.9.0
- R-Studio 1.0.143
Database - Oracle Database 11g
모델링 도구 - Enterprise Architect
WAS - Apache-Tomcat 9
Framework
- Spring Framework
- Bootstrap 3.3.7
Web 기술
- HTML5
- CSS3
- jQuery
- JSP
- Spring Web MVC
처리 기술
- Hive 2.8.0
- Flume 1.7.0
개발 환경
28. 데이터 전처리&분석 - Class Diagram
수집한 데이터를 분석, 전처리해 DB로 저장하기 위한 패키지와 메서드 입니다.
29. 데이터 전처리&분석 - Activity Diagram
수집한 데이터를 분석, 전처리해 DB에 저장하는 과정입니다.
30. 테이블 명세
수집, 분석된 결과를 저장한 데이터 테이블입니다.
SocialData 테이블 SentimentDictionary 테이블
Analytics 테이블 FinalResult 테이블
SocialData 채널별로 수집된 데이터를 최초로 저장
SentimentDictionary 구축한 감성사전을 csv파일로 변환해 DB에 저장
Analytics 분석 과정 중 임시로 사용되는 테이블
FinalResult 키워드에 따른 감성분석, 기업분석, 워드카운트 결과를 최종적으로 저장
31. VMWare를
사용한 가상화
Hadoop 설치
Hive 설치
Flume 설치
Flume 환경변수
설정
리눅스 설치
Twitter API
권한 받기
설정 파일 생성
Flume 실행
(대용량 데이터
수집)
Hive를 통해 수집
파일 병합
Hive로 1차
전처리
(Text부분추출)
External
Table에 전처리
데이터 저장
Hadoop에서
getmerge로
txt파일로 저장
Window로
가져와 2차
전처리 수행
준비 수집 처리 완료
Hadoop 데이터 수집 및 처리 과정