요 약 본
작품 정보
프로젝트명 국문 빅데이터 댓글 분석 및 시각화(키바나), 댓글대시 서비스
영문 Big-data Analysis of Comments and Visualization
작품 소개 네이버 뉴스, 영화, 쇼핑몰의 URL을 받아 댓글 혹은 리뷰를 수집하여 분석하고 결과를 시각화해서 출력해 보여주는 웹 서비스
뉴스, 영화, 쇼핑몰 분석 결과는 사용자의 니즈를 고려하여 각 성향에 맞도록 분석을 진행하여 결과를 보여줌
사용자의 입력 URL을 누적하여 화제 토픽을 보여주며 실시간으로 댓글이 많은 기사 상위 5개를 출력하여 보여줌
작품
구성도
작품의
개발배경 및 필요성
악의적 댓글 혹은 여론 조작 등 거짓정보를 제공하는 댓글이 늘어남에 따라, 악의적 사용자의 댓글을 사전에 예방하여 올바른 정보를 취할 필요가 있음
정보과다 사회에 있어 필요한 정보만을 추출하여 선별적으로 정보에 접근할 수 있음
작품의
특장점
- 다양한 분야에 대해 댓글, 리뷰 분석 기능 제공 :각기 다른 분야에 대해서는 사용자의 니즈를 파악하여 각기 다른 분석 기법과 시각화 기법을 사용
- 분석 결과 시각화 :다양한 차트와 그래프를 통해 한 눈에 알아볼 수 있도록 시각화
- 필터링 여부 설정을 통한 자유로운 정보 접근 기회 제공
작품
기능
- 유효 URL 확인 기능
- 데이터 수집 기능
- 주요 뉴스 랭킹 기능
- 데이터 분석 기능
- 분석 결과 시각화 기능
- 악성 댓글 필터링 기능
작품의 기대효과 및 활용분야 - 뉴스 혹은 뉴스성 게시물의 댓글 분석을 통해 악의적 댓글을 사전에 예방하여 건강한 인터넷 문화를 만들 수 있다.
- 사용자들이 필요한 정보만을 선별적으로 수용함으로써 정보과다 사회에서 보다 효율적인 정보 접근이 가능
- 댓글 페이지의 추가 기능 : 댓글 페이지 자체의 추가 기능으로 해당 분석 기능을 제공

 

본 문

I. 작품 개요

1. 작품 소개

1) 댓글 분석 웹페이지

- 네이버 뉴스, 쇼핑몰, 영화의 url을 입력받아 해당 기사의 댓글, 쇼핑몰 후기, 영화 리뷰 정보를 분석하고 결과를 시각화하여 보여주는 웹페이지

- 기사의 댓글 여론, 영화와 쇼핑몰의 리뷰를 한 눈에 볼 수 있도록 함

[그림 1] 웹 초기 페이지, [그림2] 웹 분석 결과 페이지 

 

2) 기획 의도

- 인터넷상에서 많은 정보를 주고받는 현대사회에서 특히 댓글로 의견을 표출하거나 정보를 얻는 경우가 다분함. 하지만 그 양이 많아 모든 댓글을 읽고 적절한 정보를 취하기 쉽지 않음

- 본 프로젝트에서는 그러한 댓글 정보를 모아 분석 후 시각화해 출력해줌으로써 편향되지 않은 적절한 정보 수용에 도움을 줄 수 있음

- 더불어 뉴스에 대한 여론, 상품에 대한 장단점 등을 한눈에 볼 수 있도록 함

3) 작품 내용

- 인터넷 웹 서비스를 기본으로 함

- 입력받은 url의 기사, 영화, 쇼핑몰에 대하여 해당 댓글, 리뷰 정보를 수집하여 분석 결과를 웹 화면에 출력

- 악성 댓글 필터링 여부, 영화 스포일러 필터링 여부 설정

 

2. 작품의 개발 배경 및 필요성

- 오늘날 대다수의 정보전달 및 소통이 인터넷을 통해 이루어지고 있고, 특히 커 뮤니티나 인터넷 기사 혹은 블로그의 댓글의 형태로 활발한 소통이 이루어진다. 이러한 댓글의 양이 급속도로 증가하면서 소통의 질도 높아졌지만, 악의적 댓글 이나 허위정보 유포, 스팸 댓글이 새로운 사회적 문제로 대두되기 시작하였다.

- 댓글 혹은 리뷰는 보통 인기 댓글(리뷰), 최신 댓글(리뷰)의 순대로 나열되기 때 문에 많은 수의 댓글 중 사용자가 선별적으로 자신에게 필요한 정보를 가지고 있는 댓글을 찾기 힘들다.

- 악의적 댓글, 스팸 댓글, 허위사실을 유포하는 댓글은 네티즌이 자체적으로 선별하여 정보를 수용하기 어렵다.

- 뉴스, 영화, 쇼핑몰의 댓글을 분석하고 분류함으로써 악의적 댓글을 예방하여 건강한 인터넷 문화를 만들 수 있으며 올바른 정보 수용에 도움을 준다.

 

3. 작품의 특징 및 장점

1) 다양한 분야에 대해 댓글, 리뷰 분석 기능 제공

- 본 프로젝트에서는 뉴스, 영화 그리고 쇼핑몰의 댓글 및 리뷰에 대해 분석을 진행한다. 뉴스 분야에서는 사회 현상이나 사건에 대한 여론을 파악할 수 있도록 분석을 진행·제공하며, 쇼핑몰 분야에서는 상품 구매에 있어 합리적인 소비를 할 수 있도록 분석하고, 영화 분야에서는 단순 별점 리뷰에서 벗어나 여러 리뷰들과 그에 따라 취향에 맞는 영화인지를 파악할 수 있도록 정보를 제공한다. 각기 다른 분야에 대해서는 사용자의 니즈를 파악하여 각기 다른 분석 기법과 시각화 기법을 사용하여 결과를 출력한다.

2) 분석 결과 시각화

- 분석 결과를 텍스트로 단순히 보여주는 것이 아닌 다양한 차트와 그래프를 통해 한눈에 알아볼 수 있도록 시각화하여 결과를 제공한다.

3) 필터링 여부 설정을 통한 자유로운 정보 접근 기회

- 악플에 대한 필터링 여부 혹은 스포일러 포함에 대한 필터링 여부를 사용자의 설정으로 결정할 수 있도록 한다. 사용자가 수용할 정보의 범위를 자유롭게 설정할 수 있다.

 

II. 작품 내용

1. 작품 구성도

1) S/W 시스템 구성도

  [그림3] 시스템 구성도

웹 초기 페이지가 실행되면 flask framework를 사용하는 backend에서 자동으 로 네이버 뉴스 전체 기사 중 댓글이 가장 많은 기사 상위 5개를 스크래이핑을 통해 기사 제목과 URL 링크를 가져오도록 request를 보내고, 그 결과를 받아 frontend에 출력한다.

사용자가 분석을 원하는 URL을 입력했을 경우

-1. 입력된 URL이 유효하지 않은 URL이거나 분석기능을 제공하지 않는 사이 트의 URL일 경우, alert 창을 띄워 오류 메시지를 출력해준다.

-2. 입력된 URL이 유효한 url일 경우

입력된 URLmongodburl.db에 저장한다. 이때 과거에 저장되어있던 URL 정보는 drop 한다.

Rest API로 수집 모듈을 실행 시켜 데이터를 수집한다.

수집된 데이터에 대한 분석 모듈을 실행시킨 후 실행 결과를 mongodb에 저장 한다.

frontend에서 mongodb에 저장된 분석 결과 html, CSS, chart.js 등을 이용하여 시각화한다.

 

2. 작품 기능

1) 전체 기능 목록

구분 기능 설명 현재진척도(%)
S/W 유효 URL 확인 기능 사용자가 입력한 URL이 유효한 URL인지 체크하는 기능 100%
데이터 수집 기능 유효한 URL인 경우 해당 URL을 분석하여 뉴스, 쇼핑몰, 영화인지 알아보고 각 분류에 따라 필요한 데이터 (댓글, 성별 분포, 나이 분포 등)를 수집하여 데이터베이스에 저장하는 기능 100%
주요 뉴스 랭킹 기능 실시간으로 댓글이 많은 기사 상위 5개를 출력하여 보여주는 기능 100%
데이터 분석 기능 수집된 데이터를 기준으로 논란이 많은 댓글 분석, 댓글 주요 토픽 분석, 댓글 리스트의 감성 분석 등 댓글을 분석하는 기능
-완성 가능 시점(9/4)
80%
분석 결과 시각화 기능 분석된 정보를 서버에 보내고, 웹에서 각각 최적화된 그래프, 차트로 시각화하여 보여주는 기능 100%
악성 댓글 / 스포일러 필터링 기능 악성 댓글 / 스포일러 필터링을 설정 혹은 해제하는 기능
-완성 가능 시점 (9/7)
70%
사용자 피드백 사용자로부터 오류를 신고받고, 피드백 받는 기능
-완성 가능 시점 (8/31)
30%

2) S/W 주요 기능

 

기능 설명 작품실물사진
유효 URL 확인 기능 사용자가 입력한 URL이 유효한 URL인지 혹은 분석 서비스를 지원하는 UR:인지 체크한다.



[그림4] 분석을 지원하지 않거나 유효하지 않은 URL인 경우
데이터 수집 기능 유효한 URL인 경우 해당 URL을 분석하여 뉴스, 쇼핑몰, 영화인지 알아보고 각 분류에 따라 필요한 데이터 (댓글, 성별 분포, 나이 분포 등)를 수집하여 데이터베이스에 저장한다.

[
그림5] mongodb에 저장된 URL


[그림6] 필요한 데이터 수집
주요 뉴스 랭킹 기능 사이트를 새로 들어가거나, 새로 고침을 할 경우 실시간으로 댓글이 많은 기사 상위 5개를 가져와서 출력한다. 각 기사 제목을 클릭 시 해당 기사로 이동한다.

[그림7] 2021.08.28. 119분 기준 댓글 많은 기사 랭킹 5
데이터 분석 기능 수집한 데이터를 분석한다.
-뉴스 : 댓글 토픽 모델링, 댓글의 감성 분석을 통한 긍부정 척도, 기술통계 (성별 분포, 나이 분포, 작성 시간분포)
-영화 : 감성 분석을 통한 긍부정 리뷰 분석 및 긍정적 리뷰에 대한 토픽 모델링과 부정적 리뷰에 대한 토픽 모델링, 리뷰 분석을 통한 평점 재평가, 기술 통계 (작성 시간 분포, 리뷰 평점, 감상 포인트 등)
-쇼핑몰 : 상품 주제별 리뷰 토픽 분석, 옵션 제품별 평점, 감성분석을 통한 토픽별 평점, 기술통계 (사용자 총 평점, 재구매율, 옵션별 구매 순위, 작성 시간 분포 등)
[그림8] 데이터 분석 코드 (R)
분석 결과 시각화 기능 분석 결과를 받아 프론트엔드에서 바차트, 파이 차트, 라인 그래프, 워드 클라우드 등의 형식으로 분석 결과를 시각화한다.

[
그림9]


[그림10]
악성 댓글 필터링 기능 뉴스의 경우 악성댓글 필터링 여부를, 영화의 경우 스포일러 필터링 여부를 사용자가 설정한다. -
사용자 피드백 오류 신고나 QnA 등 사용자에게 피드백을 받아 서비스를 개선할 수 있도록 한다.
[그림11] 오류 신고 및 QnA 버튼

- 분석한 전체 글, 분석한 전체 댓글을 표현해줌으로써 사용자에게 시각적 즐거움 을 줄 수 있도록 한다.

- 스크래이핑이나 분석에 시간이 걸리는 경우에 로딩 중 표시를 띄워준다.

- 사용자들이 입력한 뉴스 기사를 바탕으로 누적 화제 토픽을 출력하여 보여준다.

 

3. 주요 적용 기술

1) 웹 동작에 대한 주요 적용 기술

- Frontend

- html, CSS, javascript를 이용하여 기본 화면을 구성하였고, 깔끔한 디자인을 위해 bootstrap을 사용하였으며 시각화를 위해 html5의 오픈 소스인 chart.js jqbar.css를 사용하여 디자인하였다.

- Backend

- frontend와의 통신을 위해 googleapiajax를 사용하였으며 backend frameworkflask를 이용하여 getpost를 컴포넌트화하기 쉽게 하였다.

- Database

- 수집 데이터의 범위가 분야에 따라 상이하므로 다양한 형태의 데이터베이스 구축을 위해 nonsql 데이터베이스를 사용하였고 주요 툴로 mongodb를 이용하였 .

2) 데이터 수집에 대한 주요 적용 기술

- 뉴스

- 댓글 작성 성별 분포와 나이대 분포는 seleniumbeautifulsoup4를 사용하여 스크래이핑하였다.

- 댓글 내용, 작성 시간, 공감수, 비공감수에 대해서는 네이버에서 제공하는 뉴스 api를 사용하여 스크래이핑하였다.

- 악성댓글 필터링 해제를 설정할 경우 selenium을 사용하여 동적 크롤링을 진행하였으며, 이 경우 댓글 내용 및 다른 요소에 대한 데이터를 모두 selenium으로 수집하였다.

- 영화

- 스포일러 필터링을 해제할 경우 selenium을 사용하여 동적 크롤링을 진행하였으며, 필터링 여부와 관계없이 seleniumbeautifulsoup4를 이용하여 데이터를 수집하였다.

- 쇼핑몰

- seleniumbeautifulsoup4를 이용하여 데이터를 수집하였다.

3) 데이터 분석에 대한 주요 적용 기술

- 수집된 텍스트에 대해 텍스트 전처리와 토큰화 그리고 형태소 분석기를 이용한 단어빈도 분석은 R을 사용하였으며 python에서 R 언어를 사용하기 위해 rpy2 사용하였다.

- 토픽모델링 알고리즘인 LDA 모델을 이용하여 토픽 모델링을 하였으며 LDA 델은 DTM (문서 단어 행렬)을 이용하여 만들었다.

- 긍부정 여론을 분석하기 위해 감성 사전을 이용한 감정 분석을 진행하였으며 감정을 긍정, 부정, 중립으로 나눠 감정 점수를 부여하여 긍부정 여부를 판단하 였다. 이와 더불어 LSTM, Convolution을 이용하여 긍부정 단어를 학습시키고 분 석 텍스트를 predict 하여 나온 결과를 가중치로 더하여 결과를 도출하였다.

 

4. 작품 개발 환경

구분 상세내용
S/W
개발환경
OS mac, windows10
개발환경(IDE) pycharm, visual studio code, jupyter notebook
개발도구 python 3.9.6, html5, css, javascript, jquery, flask
개발언어 python, R
기타사항  
H/W
구성장비
디바이스  
센서  
통신  
언어  
기타사항  
프로젝트
관리환경
형상관리 GitLab
의사소통관리 GitLab, kakaotalk, zoom, googlemeet, 오프라인 미팅
기타사항 코로나 19에 따라 오프라인 미팅이 불가할 때는 zoom meeting으로 온라인 미팅 진행

 

5. 기타 사항 [본문에서 표현되지 못한 작품의 가치(Value)] 및 제작 노력

- 본 프로젝트에서는 실제 사용자가 웹서비스를 사용할 때, 어떻게 하면 보다 유 익한 정보를 서비스할 수 있을지에 대한 많이 고민하였음. 이에 초기에 계획하 였던 네이버 뉴스 URL에서 확장해, 네이버 쇼핑/네이버 뉴스/네이버 영화 후기 URL까지 포괄하는 프로그램을 개발함.

- URL의 입력 시, 모두 동일한 분석이 진행되는 것이 아니라 각 주제에 적합 한 분석 기법이 적용되도록 하였고, 제공되는 기본 통계 정보 또한 각 페이지에 최적화된 통계를 제공할 수 있도록 세분화하였음. 사용자의 의도에 따라 네이버 영화에서는 스포일러 차단 후 분석, 뉴스에서는 악성 댓글 차단 후 분석 기능을 제공함.

- 간단하고 깔끔한 UI와 인터페이스로 누구든 쉽게 사용할 수 있게 만들었으며, 추후 주기적으로 기존 분석 기능의 보완 및 분석 기능의 추가가 이루어질 예정 .

 

III. 프로젝트 수행 내용

1. 프로젝트 수행일정

프로젝트 기간 2021.04.13. ~ 2021.11.30.

 

구분 추진내용
계획 프로젝트 기획 및 일정 계획 수립
분석 데이터 수집 및 모델링
설계 댓글 수집 시스템 설계
시각화 대시보드, 웹페이지 설계
개발 크롤링, 스크래핑 기반 댓글 수집 시스템 개발
자연어처리, 텍스트마이닝을 통한 분석
부트스트랩, DB, 웹 등을 활용한 시각화 개발
테스트 테스트 결과 분석 및 오류 수정
종료 한이음 공모전 출품, 결과 보고

 

2. 프로젝트 추진 과정에서의 문제점 및 해결방안

1) 프로젝트 관리 측면

- 오프라인 미팅 제한 : 코로나 19 상황으로 오프라인 미팅에 제약이 있었다. 카카 오톡 채팅방을 통한 활발한 소통과 매주 온라인 화상 회의를 진행하여 진행상 황을 공유하여 오프라인 미팅의 한계점을 극복하였다.

- 7월 전까지 수행 일정 계획과 비교해 프로젝트의 진척도가 다소 늦어졌으나 방 학을 이용하여 일주일에 한 번씩 미팅을 잡고 프로젝트를 진행하는 등 진척도 보완에 힘씀

2) 작품 개발 측면

- [크롤링] 스포일러 여부 선택 및 페이지 수 넘기기 작동을 위해 selenium을 사용 했으나 리뷰 데이터를 가져오는 데 시간이 많이 소요되어 beaitufulsoup 라이브 러리 하나만 사용하고 replace 함수를 이용하여 사이트 주소를 변경해가며 진행 한 결과 시간 단축에 성공함

- [토픽모델링] lda.collapsed.gibs.sampler 함수를 이용하여 토픽을 추출했을 때 제 대로 된 결과가 나오지 않아 최적의 토픽 수를 찾기 위해 perplexity coherence 기법으로 최적의 토픽 수와 파라미터값을 도출해 내 만족스러운 결 과를 얻음

 

IV. 작품의 기대효과 및 활용분야

1. 작품의 기대효과

- 다양한 분야(뉴스, 쇼핑몰, 영화)의 댓글 분석 결과를 제공한다는 점에서 여러 용도 (. 여론 분석, 제품 구매 여부 결정 등) 로 사용될 것으로 기대된다. 기 다른 분야에 대해 해당 분야에 최적화된 분석 모델을 사용하여 분석하고 결 과를 도출하므로 사용자의 니즈를 충족시킬 수 있는 서비스가 될 수 있다.

- 사용자가 입력한 URL 분석 결과를 누적하여 인기 토픽을 도출함으로써 사이트 이용자들의 관심 토픽을 확인할 수 있으며 이는 플랫폼에서 사라진 실시간 검색어와 유사한 기능을 할 수 있다.

- 사용자에게 댓글에 대한 종합적인 정보를 시각화하여 전달함으로써 적절한 정보 수용에 도움을 줄 뿐만 아니라 사용자의 흥미를 끌어 서비스 활용을 적극적으 로 끌어낼 것으로 기대된다.

 

2. 작품의 활용분야

- 댓글 페이지의 추가 기능 : 여론이나 상품 후기, 영화 후기가 궁금한 네티즌을 위해 댓글 페이지 자체의 추가 기능으로 해당 분석 기능을 제공하여 전반적인 댓글을 한눈에 보기 쉽도록 할 수 있다.

- 기타 활용 분야 : 뉴스 댓글 분석의 경우 해당 기사에 대한 여론을 파악할 수 있으며, 쇼핑몰의 경우 구매 여부를 결정하거나 옵션 선택에 도움을 줄 수 있 . 또한, 영화의 경우 취향에 맞는 영화를 결정할 기회를 제공한다. 이를 통해 댓글, 리뷰를 동반하는 여러 인터넷 사이트 활동을 보다 효율적으로 할 수 있.

 

+ Recent posts