요 약 본 |
작품 정보 | ||
프로젝트명 | 국문 | 빅데이터 댓글 분석 및 시각화(키바나), 댓글대시 서비스 |
영문 | Big-data Analysis of Comments and Visualization | |
작품 소개 | 네이버 뉴스, 영화, 쇼핑몰의 URL을 받아 댓글 혹은 리뷰를 수집하여 분석하고 결과를 시각화해서 출력해 보여주는 웹 서비스 뉴스, 영화, 쇼핑몰 분석 결과는 사용자의 니즈를 고려하여 각 성향에 맞도록 분석을 진행하여 결과를 보여줌 사용자의 입력 URL을 누적하여 화제 토픽을 보여주며 실시간으로 댓글이 많은 기사 상위 5개를 출력하여 보여줌 |
|
작품 구성도 |
||
작품의 개발배경 및 필요성 |
악의적 댓글 혹은 여론 조작 등 거짓정보를 제공하는 댓글이 늘어남에 따라, 악의적 사용자의 댓글을 사전에 예방하여 올바른 정보를 취할 필요가 있음 정보과다 사회에 있어 필요한 정보만을 추출하여 선별적으로 정보에 접근할 수 있음 |
|
작품의 특장점 |
- 다양한 분야에 대해 댓글, 리뷰 분석 기능 제공 :각기 다른 분야에 대해서는 사용자의 니즈를 파악하여 각기 다른 분석 기법과 시각화 기법을 사용 - 분석 결과 시각화 :다양한 차트와 그래프를 통해 한 눈에 알아볼 수 있도록 시각화 - 필터링 여부 설정을 통한 자유로운 정보 접근 기회 제공 |
|
작품 기능 |
- 유효 URL 확인 기능 - 데이터 수집 기능 - 주요 뉴스 랭킹 기능 - 데이터 분석 기능 - 분석 결과 시각화 기능 - 악성 댓글 필터링 기능 |
|
작품의 기대효과 및 활용분야 | - 뉴스 혹은 뉴스성 게시물의 댓글 분석을 통해 악의적 댓글을 사전에 예방하여 건강한 인터넷 문화를 만들 수 있다. - 사용자들이 필요한 정보만을 선별적으로 수용함으로써 정보과다 사회에서 보다 효율적인 정보 접근이 가능 - 댓글 페이지의 추가 기능 : 댓글 페이지 자체의 추가 기능으로 해당 분석 기능을 제공 |
본 문 |
I. 작품 개요
1. 작품 소개
1) 댓글 분석 웹페이지
- 네이버 뉴스, 쇼핑몰, 영화의 url을 입력받아 해당 기사의 댓글, 쇼핑몰 후기, 영화 리뷰 정보를 분석하고 결과를 시각화하여 보여주는 웹페이지
- 기사의 댓글 여론, 영화와 쇼핑몰의 리뷰를 한 눈에 볼 수 있도록 함
2) 기획 의도
- 인터넷상에서 많은 정보를 주고받는 현대사회에서 특히 ‘댓글’로 의견을 표출하거나 정보를 얻는 경우가 다분함. 하지만 그 양이 많아 모든 댓글을 읽고 적절한 정보를 취하기 쉽지 않음
- 본 프로젝트에서는 그러한 댓글 정보를 모아 분석 후 시각화해 출력해줌으로써 편향되지 않은 적절한 정보 수용에 도움을 줄 수 있음
- 더불어 뉴스에 대한 여론, 상품에 대한 장단점 등을 한눈에 볼 수 있도록 함
3) 작품 내용
- 인터넷 웹 서비스를 기본으로 함
- 입력받은 url의 기사, 영화, 쇼핑몰에 대하여 해당 댓글, 리뷰 정보를 수집하여 분석 결과를 웹 화면에 출력
- 악성 댓글 필터링 여부, 영화 스포일러 필터링 여부 설정
2. 작품의 개발 배경 및 필요성
- 오늘날 대다수의 정보전달 및 소통이 인터넷을 통해 이루어지고 있고, 특히 커 뮤니티나 인터넷 기사 혹은 블로그의 댓글의 형태로 활발한 소통이 이루어진다. 이러한 댓글의 양이 급속도로 증가하면서 소통의 질도 높아졌지만, 악의적 댓글 이나 허위정보 유포, 스팸 댓글이 새로운 사회적 문제로 대두되기 시작하였다.
- 댓글 혹은 리뷰는 보통 인기 댓글(리뷰), 최신 댓글(리뷰)의 순대로 나열되기 때 문에 많은 수의 댓글 중 사용자가 선별적으로 자신에게 필요한 정보를 가지고 있는 댓글을 찾기 힘들다.
- 악의적 댓글, 스팸 댓글, 허위사실을 유포하는 댓글은 네티즌이 자체적으로 선별하여 정보를 수용하기 어렵다.
- 뉴스, 영화, 쇼핑몰의 댓글을 분석하고 분류함으로써 악의적 댓글을 예방하여 건강한 인터넷 문화를 만들 수 있으며 올바른 정보 수용에 도움을 준다.
3. 작품의 특징 및 장점
1) 다양한 분야에 대해 댓글, 리뷰 분석 기능 제공
- 본 프로젝트에서는 뉴스, 영화 그리고 쇼핑몰의 댓글 및 리뷰에 대해 분석을 진행한다. 뉴스 분야에서는 사회 현상이나 사건에 대한 여론을 파악할 수 있도록 분석을 진행·제공하며, 쇼핑몰 분야에서는 상품 구매에 있어 합리적인 소비를 할 수 있도록 분석하고, 영화 분야에서는 단순 별점 리뷰에서 벗어나 여러 리뷰들과 그에 따라 취향에 맞는 영화인지를 파악할 수 있도록 정보를 제공한다. 각기 다른 분야에 대해서는 사용자의 니즈를 파악하여 각기 다른 분석 기법과 시각화 기법을 사용하여 결과를 출력한다.
2) 분석 결과 시각화
- 분석 결과를 텍스트로 단순히 보여주는 것이 아닌 다양한 차트와 그래프를 통해 한눈에 알아볼 수 있도록 시각화하여 결과를 제공한다.
3) 필터링 여부 설정을 통한 자유로운 정보 접근 기회
- 악플에 대한 필터링 여부 혹은 스포일러 포함에 대한 필터링 여부를 사용자의 설정으로 결정할 수 있도록 한다. 사용자가 수용할 정보의 범위를 자유롭게 설정할 수 있다.
II. 작품 내용
1. 작품 구성도
1) S/W 시스템 구성도
① 웹 초기 페이지가 실행되면 flask framework를 사용하는 backend에서 자동으 로 네이버 뉴스 전체 기사 중 댓글이 가장 많은 기사 상위 5개를 스크래이핑을 통해 기사 제목과 URL 링크를 가져오도록 request를 보내고, 그 결과를 받아 frontend에 출력한다.
② 사용자가 분석을 원하는 URL을 입력했을 경우
②-1. 입력된 URL이 유효하지 않은 URL이거나 분석기능을 제공하지 않는 사이 트의 URL일 경우, alert 창을 띄워 오류 메시지를 출력해준다.
②-2. 입력된 URL이 유효한 url일 경우
입력된 URL을 mongodb의 url.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. 11시 9분 기준 댓글 많은 기사 랭킹 5위 |
데이터 분석 기능 | 수집한 데이터를 분석한다. -뉴스 : 댓글 토픽 모델링, 댓글의 감성 분석을 통한 긍⦁부정 척도, 기술통계 (성별 분포, 나이 분포, 작성 시간분포) -영화 : 감성 분석을 통한 긍⦁부정 리뷰 분석 및 긍정적 리뷰에 대한 토픽 모델링과 부정적 리뷰에 대한 토픽 모델링, 리뷰 분석을 통한 평점 재평가, 기술 통계 (작성 시간 분포, 리뷰 평점, 감상 포인트 등) -쇼핑몰 : 상품 주제별 리뷰 토픽 분석, 옵션 제품별 평점, 감성분석을 통한 토픽별 평점, 기술통계 (사용자 총 평점, 재구매율, 옵션별 구매 순위, 작성 시간 분포 등) |
[그림8] 데이터 분석 코드 (R) |
분석 결과 시각화 기능 | 분석 결과를 받아 프론트엔드에서 바차트, 파이 차트, 라인 그래프, 워드 클라우드 등의 형식으로 분석 결과를 시각화한다. |
[그림9] [그림10] |
악성 댓글 필터링 기능 | 뉴스의 경우 악성댓글 필터링 여부를, 영화의 경우 스포일러 필터링 여부를 사용자가 설정한다. | - |
사용자 피드백 | 오류 신고나 QnA 등 사용자에게 피드백을 받아 서비스를 개선할 수 있도록 한다. | [그림11] 오류 신고 및 QnA 버튼 |
- 분석한 전체 글, 분석한 전체 댓글을 표현해줌으로써 사용자에게 시각적 즐거움 을 줄 수 있도록 한다.
- 스크래이핑이나 분석에 시간이 걸리는 경우에 로딩 중 표시를 띄워준다.
- 사용자들이 입력한 뉴스 기사를 바탕으로 누적 화제 토픽을 출력하여 보여준다.
3. 주요 적용 기술
1) 웹 동작에 대한 주요 적용 기술
- Frontend
- html, CSS, javascript를 이용하여 기본 화면을 구성하였고, 깔끔한 디자인을 위해 bootstrap을 사용하였으며 시각화를 위해 html5의 오픈 소스인 chart.js와 jqbar.css를 사용하여 디자인하였다.
- Backend
- frontend와의 통신을 위해 googleapi인 ajax를 사용하였으며 backend framework는 flask를 이용하여 get과 post를 컴포넌트화하기 쉽게 하였다.
- Database
- 수집 데이터의 범위가 분야에 따라 상이하므로 다양한 형태의 데이터베이스 구축을 위해 nonsql 데이터베이스를 사용하였고 주요 툴로 mongodb를 이용하였 다.
2) 데이터 수집에 대한 주요 적용 기술
- 뉴스
- 댓글 작성 성별 분포와 나이대 분포는 selenium과 beautifulsoup4를 사용하여 스크래이핑하였다.
- 댓글 내용, 작성 시간, 공감수, 비공감수에 대해서는 네이버에서 제공하는 뉴스 api를 사용하여 스크래이핑하였다.
- 악성댓글 필터링 해제를 설정할 경우 selenium을 사용하여 동적 크롤링을 진행하였으며, 이 경우 댓글 내용 및 다른 요소에 대한 데이터를 모두 selenium으로 수집하였다.
- 영화
- 스포일러 필터링을 해제할 경우 selenium을 사용하여 동적 크롤링을 진행하였으며, 필터링 여부와 관계없이 selenium과 beautifulsoup4를 이용하여 데이터를 수집하였다.
- 쇼핑몰
- selenium과 beautifulsoup4를 이용하여 데이터를 수집하였다.
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. 작품의 활용분야
- 댓글 페이지의 추가 기능 : 여론이나 상품 후기, 영화 후기가 궁금한 네티즌을 위해 댓글 페이지 자체의 추가 기능으로 해당 분석 기능을 제공하여 전반적인 댓글을 한눈에 보기 쉽도록 할 수 있다.
- 기타 활용 분야 : 뉴스 댓글 분석의 경우 해당 기사에 대한 여론을 파악할 수 있으며, 쇼핑몰의 경우 구매 여부를 결정하거나 옵션 선택에 도움을 줄 수 있 다. 또한, 영화의 경우 취향에 맞는 영화를 결정할 기회를 제공한다. 이를 통해 댓글, 리뷰를 동반하는 여러 인터넷 사이트 활동을 보다 효율적으로 할 수 있다.
'프로젝트·연구 > 프로젝트·연구' 카테고리의 다른 글
빅데이터를 이용한 주식가격 예측 시스템 만들기 (4. 모델구상추가) (0) | 2021.09.13 |
---|---|
빅데이터를 이용한 주식가격 예측 시스템 만들기 (3. 수행계획+1차보고서) (0) | 2021.08.30 |
빅데이터를 이용한 댓글 분석 및 시각화, 댓글대시 서비스(1. 개발설계) (0) | 2021.07.29 |
빅데이터를 이용한 댓글 분석 및 시각화, 댓글대시 서비스(0. 글을 올리기 전에) (0) | 2021.07.29 |
빅데이터를 이용한 주식가격 예측 시스템 만들기 (1. 개발설계) (0) | 2021.07.27 |