다빈치 SW 공모전

'언택트 시대에 유용한 앱 혹은 서비스를 주제로한 SW 공모전으로
2020-2학기 비공학 전공 재학생 2인 이상이면 참가 가능합니다.

자세히 알아보기

캡스톤 디자인 경진대회

캡스톤 디자인 교과목 수행 결과물 또는 졸업 작품 심사
2019년 2학기, 2020년 1학기 중 한 학기 이상 캡스톤 디자인 교과목을
수강한 학생만 참가 가능합니다.

자세히 알아보기

PE연구활동 발표대회

PE연구/개발 활동을 수행하면서 얻어진 다양한 형태의 결과물
(논문형태의 결과보고서, 논문, 발명품, 작품, 콘텐츠 등)을 심사

자세히 알아보기

SW·AI 창업아이디어경진대회

SW 관련 전공 학부생 여러분!
반짝이는 SW창업 아이디어로 여러분의 미래를 바꾸십시오!

자세히 알아보기

SW·AI융합우수성과 발표회

SW융합전공 / 복수 전공 학생 여러분!
SW융합전공 / 복수전공을 이수하는 과정에서 얻어진 성과를 뽐내 주세요.

자세히 알아보기

다빈치 주니어 SW 작품대회

창의적인 아이디어와 소프트웨어를 활용한
멋진 SW 작품을 만들어 보세요!

자세히 알아보기

다빈치오픈소스 SW·AI 딥러닝 해커톤

4차 산업혁명을 견인하는 심층학습을 주제로한 SW·AI 딥러닝 해커톤으로
소프트웨어대학 재학생으로 구성된 2인 이하 팀으로 참가 가능합니다.

자세히 알아보기

코딩경진대회

소프트웨어 중심 대학으로서 중앙대학교의 소프트웨어 관련
교육 프로그램 성과를 공유합니다.

자세히 알아보기

캡스톤 디자인 경진대회

  • 레몬그라스

    팀장
    염승윤 (소프트웨어학부 | 4학년)
    팀원
    최지혁 (소프트웨어학부 | 4학년)
    정재형 (소프트웨어학부 | 4학년)
좋아요 45
답변 수 14

작품영상

작품사진

작품(아이디어)명 : 네이버 블로그 광고성 판단 크롬 확장 프로그램
  • 작품 소개
  • 블로그는 초기에 개인적인 생각을 다수의 사람들과 공유하는 공간이였습니다. 현재 블로그 서비스는 대부분 Naver에서 제공하고 있습니다. Naver의 검색 포탈과 관련이 있기 때문에 블로그를 웹 사용자에게 쉽게 배포 할 수 있다는 장점이 있습니다. 그러나 이러한 장점을 악용하여 광고사에서 특정 제품에 대한 광고를 하기도 합니다. 문제는 이러한 블로그들에 정보가 정직한 리뷰가 아니라 광고주의 이익을 위해 의도된 리뷰일 수 있다는 것에 있습니다. 요즘 광고글을 교묘하게 작성하여 블로그 사용자들은 리뷰와 광고글을 구분하기 힘듭니다. 따라서 우리 팀은 블로그 사용자들에게 해당 블로그가 믿을 만한 리뷰인지 광고글인지 판단하기 위한 척도를 제공해주는 것을 목표로 하고 있습니다. 또한 사용자들이 추가적인 설치 없이 편하게 이용할 수 있도록 하기 위해서 사람들이 많이 쓰는 크롬 브라우저에 추가 기능을 만들어주는 크롬 확장프로그램으로 개발을 했습니다.
  • 세부내용
  • 광고성 판별을 위해 사용하는 라이브러리 및 기술들 

    - konlpy : 한국어 정보처리를 위한 오픈소스 api입니다. 한국어로 된 문장을 입력할 경우 해당 API에서 각각 어떤 형태소로 이루어져 있는지를 출력해주거나, 특정 형태소만 추출할 수 있는 등 한글 문장 분석을 돕는 라이브러리입니다. Ad Blog Finder에서는 블로그 게시글의 내용을 광고성 판단 알고리즘에 입력하기 위해 전에 정해진 입력 포맷을 만드는 용도로 쓰일 예정입니다.

    - TF-IDF : 여러 문서로 이루어진 문서 집단이 있을 때 어떤 단어가 특정 문서 내에서 얼마나 중요한 것인지를 나타내는 통계적 수치입니다. 문서의 핵심어를 추출하거나, 검색 엔진에서 검색 결과의 순위를 결정하거나, 문서들 사이의 비슷한 정도를 구하는 등의 용도로 사용할 수 있습니다. 해당 프로그램에서는 두 가지 용도로 사용될 예정입니다. 먼저 카테고리(뷰티, 병원, 헤어, 전자제품 등등) 별로 광고성 블로그 게시글과 비광고성 게시글을 각각 TF-IDF 연산을 통하여 광고성으로 대표되는 단어(A그룹)와 비광고성으로 대표되는 단어(B그룹)으로 분류하여 광고성, 비광고성 구별하는 용도입니다. 또한, A, B 두 그룹 모두 특정 카테고리로 분류되어 있기에 프로그램 실행 시 입력받는 블로그 게시글이 어떤 카테고리에 해당하는지 판단하는 용도로도 쓰일 예정입니다.

    - SVM (Support Vector Machine) : VM은 패턴 인식 또는 자료 분석을 위한 지도 학습 모델이며 특히 분류와 회귀 분석을 위해 사용됩니다. SVM 알고리즘은 주어진 데이터 집합을 바탕으로 하여 새로운 데이터가 어느 카테고리에 속할지 판단하는 비확률적이진 선형 분류 모델을 만드는 알고리즘입니다. Ad Blog Finder에서는 광고성과 비광고성 판별이 가장 중요한 부분이기에 TF-IDF 하나만으로 광고성 판별을 맡기는 것은 불안하다고 생각되어 SVM기술을 추가하여 TF-IDF에서 놓치는 부분을 보완하고자 합니다



    전체 구성도

    구성도.jpg

    크롬 확장프로그램에서 네이버 블로그의 주소를 AWS EC2 서버로 전송합니다. Nginx와 uWSGI 를 이용해 서버 관리를 용이하게 했습니다. 서버 프레임워크는 python 기반의 Flask를 사용했습니다. 왜냐하면 네이버 블로그의 광고성을 판단하기 위한 라이브러리들이 python을 기반으로 하고 있기 때문입니다.


    서버 구성도

    서버구성도.JPG

    크롬 확장프로그램에서 해당 블로그의 정보를 전송하면 konlpy를 이용해서 블로그의 글을 형태소 단위로 나누어 분석하기 편한 상태로 전처리를 진행합니다. 그후 scikits learn 라이브러리를 이용하여 광고글인지 리뷰인지를 판단합니다. 이후에 판단 결과를 다시 크롬 확장프로그램으로 전송해 사용자에게 보여줍니다.


    광고성 판단 기준

    6가지의 기준을 두어 종합적으로 광고글인지 아닌지를 판단합니다.

    판단 기준.JPG

    1. 블로그의 제목과 내용의 유사도를 측정합니다.
    대체로 광고글은 제목과 내용이 유사도가 낮습니다.
    제목과 내용의 키워드는 TF-IDF 알고리즘을 이용하여 추출합니다.

    2. 블로그의 태그와 내용의 유사도를 측정합니다.
    대체로 광고글은 태그와 내용이 유사도가 낮습니다.
    블로그 내용 대신 태그와 연관성이 얼마나 있는지 확인합니다.

    3. 외부 링크를 검사합니다.
    대체로 광고글에는 광고 업체의 링크를 본문 내용에 포함하고 있습니다.
    웹 크롤링을 통해서 광고에서 주로 나오는 업체의 URL을 추출합니다.

    4. 네이버 스티커를 검사합니다.
    광고글에서 주로 사용하는 네이버 무료 스티커가 있습니다.
    웹 크롤링을 통해서 광고글에서 주로 보이는 스티커의 URL을 가지고 있는지 확인합니다.

    5. 글의 패턴을 검사합니다. 
    광고글에서 주로 사용하는 단어나 어투, 사진 배열 등 특이한 글의 구조를 가지고 있습니다.
    konlpy로 본문 내용을 전처리 한 후 SVM으로 글의 패턴을 추출해 학습시킨 광고글과 얼만큼의 유사성을 가지고 있는지 확인합니다.

    6. 긍정, 부정 단어 사용의 비율을 측정합니다.
    대체로 광고글은 내용이 긍정으로 치우처져있습니다. (긍정으로 치우쳐져 있다고 해서 모두 광고글은 아닙니다.)
    konlpy로 본문 내용을 전처리 한 후 긍정어 부정어 사전과 비교하여 글의 내용이 긍정에 얼만큼 치우치는지 측정합니다.


    사용한 머신러닝 알고리즘

    우리팀은 글을 보고 이 글이 광고글인지 리뷰인지를 구분하기 위해 때문에 2가지 그룹으로 분류하는 것이 맞다고 생각했습니다.
    그래서 광고성을 판단하기 위해 SVM(Support Vector Machine)을 사용했습니다.
    SVM은 머신러닝의 분류(Classification) 모델에서 많이 사용되는 알고리즘입니다.
    SVM은 주로 데이터가 2개의 그룹으로 분류 될때 사용합니다.
    SVM은 학습 데이터가 벡터 공간에 위치하고 있다고 생각하며 학습 데이터의 특징 수를 조절해 경계선을 찾고 이것을 기반으로 2가지 그룹으로 분류하는 방법입니다.
    다른 분야에 사용되는 예시로 필기체 인식이나 이미지 분류등에서 학습하는 데이터의 양을 줄일 수 있도록 도와주는 역할을 합니다.

    svm 설명.JPG


    경쟁 프로그램 <사다리>와 비교

    우리팀과 유사한 프로그램으로 <사다리>가 있습니다. 
    사다리는  우리팀과는 다른 접근 방법을 사용했습니다. 글을 여러 유형별로 나눈 뒤 각 유형 중 광고가 많이 등장하는 그룹에 속한 글을 광고글로 분류하도록 했습니다. 그래서 K-평균 군집화 알고리즘을 사용한것으로 알고 있습니다.
    K-평군 군집화(K-means clustering)은 비지도 학습의 분할 기반 군집화에 속하는 방법으로 간단한 비지도 학습 알고리즘 중 하나입니다.
    K-평균 군집화는 알고리즘의 개념이 직관적이며 학습을 위해 수행할 데이터 계산 양이 적다는 장점을 가집니다.

    kmeans.JPG
    K-평균 군집화의 경우 데이터의 그룹 모양이 구형(spherical)이 아닌 그룹에 대해서 정확도가 떨어지며 기존 데이터와 동떨어져있는 데이터에 매우 민감하다는 단점을 가집니다.  또한 처음에 설정한 그룹 개수인 k에 따라 결과값이 완전히 달라질 수도 있습니다.
    따라서 신문기사처럼 정형화된 형태가 아니라 덜 형식적인 블로그글( ㅠㅠ, 맞춤법에 틀린 글 등 노이즈가 다수 있음)이기 때문에 이러한 노이즈에 상대적으로 취약한 kmeans는 지향하는 것이 옳다고 생각했고 k-평균 군집화가 학습량이 적어도 된다는 장점이 있지만 우리는 학습을 위한 데이터를 많이 모을 수 있기 때문에 의미가 없다고 생각했습니다.
    그러므로 <사다리>와 비교 했을 때 우리 프로그램이 정확하게 예측 할 수 있다는 결론을 내릴 수 있습니다.

    이처럼 어떤 글이 광고글인지 아닌지를 분류한다는 점에서 공통점이 있으나 광고글을 판단하는 것에 있어서 명확한 차이점이 있습니다.

  • 기대 효과
  • - 네이버 블로그 사용자들이 해당 내용을 어느 정도 신뢰할 수 있는지 판단의 근거를 제시합니다.
    - 크롬 확장 프로그램은 추가적인 설치 없이 바로 크롬 브라우저에서 사용할 수 있어서 편리합니다.
  • 결과물
  • 8월 10일 이후에 크롬 앱스토어에서 <광고성 블로그 파인더>로 검색하면 다운로드 받으실 수 있습니다. 
    URL : http://bitly.kr/fVnRN2FHWM5





     

    설치 방법

    1. 링크에 접속하여 Chrome에 추가 버튼을 눌러 크롬 확장프로그램을 추가합니다.
     

    01.JPG



    2. 추가 이후에 크롬 확장 프로그램에 권한을 부여합니다.

    02.JPG


    3. chrome://extensions 페이지에 접속하면 확장 프로그램 설정 페이지가 나옵니다. 이 페이지에서 크롬 확장 프로그램을 비활성화 할 수 있습니다. 
     

    03.JPG



    4. 네이버 블로그에 접속한 후 우측 상단에 크롬 확장 프로그램 이모티콘을 클릭하면 블로그 광고 가능성에 대한 결과가 출력됩니다.

    04.JPG



    5. 각 평가 항목에 대한 이유를 보고 싶다면 해당 항목에 마우스를 올려놓으면 이유가 출력됩니다.


    05.JPG

좋아요 참여 45

  • 학년 별

  • 학과 별

QnA 참여 14

중앙대학교 다빈치 sw tech fair 참가신청 닫기