		단순 베이즈 분류기를 이용한 신문기사 인기 글 분류
		이석원, 김성민, 김유나, 박정열, 이지훈, 강태원* 국립강릉원주대학교 컴퓨터공학과 (*)교신저자 swlee1014@gmail.com, smina2005@naver.com, estrellakyn@gmail.com, toy0456@naver.com, xhddlf861359@naver.com, twkang@gwnu.ac.kr
		Popular article classification of newspaper article using Naive Bayesian classifier
		SeokWon Lee, SungMin Kim, YuNa Kim JeongYul Park, JiHun Lee, TaeWon Kang* Department of Computer Engineering, Gangneung-Wonju National University
	요 약 단순 베이즈 분류기(Naive Bayesian classifier)를 이용하여 사람들에게 인기 있는 기사들과 인기 없는 기사들을 학습시킨다. 그 후, 새로운 신문 기사에 있는 내용의 단어들이 인기 있는 기사와의 공통된 단어 개수와 인기 없는 기사들에 포함되어 있는 공통된 단어 개수를 비교하여 이 기사가 사람들에게 인기가 있는지 없는지 유추한다.

1. 서론

과거부터 현재까지 사회 이슈에 대한 막대한 관심은 남녀노소 할 것 없이 이야기 소재로서 종종 사용되었다. 현대 들어서 인터넷이 사회적 공론의 장으로서의 역할이 커지면서 사람들이 겪은 부당한 사건이나 아름다운 사건들이 빠르고 널리 전파되고 그 영향력도 강해졌다. [1] [2] 만약 그 영향력을 끼치는 소재를 알아내어 분석할 수 있다면, 시기에 따라서 어떤 소재들이 사람들로 하여금 이목을 집중시키고 관심을 이끌어냈는지에 대한 지표를 나타 낼 수 있을 것이라 판단하였다. 또한, 이러한 지표는 그 시대에 대한 이슈의 기준이 될 수 있다.

본 논문에서 특정 기간 내에 사람들의 이목을 끈 뉴스 기사와 그렇지 않은 뉴스 기사를 수집하고 단순 베이즈 분류기(Navie Bayes classifier)를 통하여 사람들에게 인기 있는 글과 인기 없는 글을 분류할 것이다.

2. 배경 이론

R의 텍스트 마이닝 패키지를 사용하여 인기 있는 글과 인기 없는 글을 구별하기 위해 인기 있는 글을  true로, 인기 없는 글을 false로 부호화하여 원본 텍스트를 특성 값들로 변환한다. 텍스트 분류 알고리즘은 ‘단순 베이즈 분류기(Navie Bayes classifier)’ 기법을 사용하며 (a) 인기 있는 글에서 현저하게 출현 빈도가 높거나 (b) 인기 없는 글에서 현저하게 출현 빈도가 높은 단어를 검색하여 그 차이를 본다. 또한, 어떤 글이 인기 있는 글로 분류될 가능성이 얼마나 높은지 추정하기 위해 인기 있는 글의 기저율(base rate)  즉, 사전 확률(prior)를 조정하여 그 변화를 추론한다. [3]

데이터 분석에는 R 프로그램을  사용하였다.  프로그램 버전은 R i386 (Ver 3.5.1), OS X 10.11.4Windows 10 64bit 환경에서 실행했다.

3. 단어 빈도수에 대한 분류

3.1 학습 및 검증용 데이터 수집

네이버 뉴스 기준으로 7월 1일 부터 10월 8일까지 정치, 세계, 사회 세 개의 항목에서 수집했다. 인기 기사는 네이버 뉴스 랭킹 순위 중 1, 2위에서 학습용 데이터 300개와 검증용 데이터 300개 그리고 29, 30위에서 학습용 데이터 300개와 검증용 데이터 300개를 수집했고, 비인기 기사는 정치, 세계, 사회 각 항목에 속하는 기사들 중 댓글 수와 공감 수 모두 0~2개인 글만 학습 데이터 300개, 검증데이터 300개를 수집했다. [4]

3.2 인기 기사와 비인기 기사 학습 및 실행 결과

(그림 1) 인기 기사 데이터 분석 결과

(Figure 1) Data analysis result of popular articles

(그림 1)은 인기 기사의 단어의 빈도수 및 밀도를 계산한 후 정렬한 결과의 최상 5개의 데이터를 출력한 것이다. term은 학습 데이터에서 출현한 단어를 의미하며 조사, 불용어, 따옴표, 구두점 등을 제외했으며, 그 중에서도 한 번 이상 나타난 단어만 고려하는 옵션을 사용하였다. 빈도수는 전체 학습 데이터에서 단어가 출현한 횟수이다. density는 전체 단어 뭉치의 출현을 1이라고 할 때, 해당 단어 뭉치가 차지하는 빈도수를 의미하고 occurrence는 전체 학습데이터에 대한 해당 단어의 출현 문서 비율을 나타낸다.

(그림 2) 비인기 기사 데이터 분석 결과

(Figure 2) Data analysis result of not popular articles articles

(그림 2)는 비인기 기사를 (그림 1)의 과정을 접목시켜 나타낸 결과이다. 학습 데이터세트에 있는 단어와 없는 단어를 자연 언어 처리(natural language processing, NLP) 기법을 사용하여 데이터의 성향을 추정하였다. 본 논문에서는 학습 데이터세트에 없는 단어는 1e-5(0.00001) 값을 기본 값으로 주었다. 또한, 인기 기사의 데이터와 비인기 기사의 데이터를 동일하다고 가정하여 prior 값을 0.5로 주었다. 즉, 사전확률을 50%로 가정하였으며 후에 사전 확률을 바꿀 수 있도록 함수 변경 기능을 추가하였다.

(그림 3) 0.18 이상의 occurrence 제거 후 실행 결과

(Figure 3) cut over 0.18 occurrence from learned words

추가적으로 occurrence 비율이 0.18 이상인 데이터를 제외하는 작업을 시행하였다. 이는 인기 기사의 상위 occurrence 비율의 부분과 비인기 기사의 상위 occurrence의 비율의 부분 상당수가 일치하는 부분이 많았기 때문에 제외하였다.

(그림 4) 인기기사 사전확률 0.5 비인기 기사 사전확률 0.5

(Figure 4) Prior probability each 0.5

(그림 5) 인기기사 사전확률 0.5 비인기 기사 사전확률 0.5

(Figure 5) popular article prior probability 0.2, not popular 0.8

(그림 6) 인기 기사 사전확률 0.05 비인기 기사 사전확률 0.95

(Figure 6) popular article prior probability 0.5, not popular 0.95

(그림 7) 인기 기사와 비인기 기사에 대한 산포도

(Figure 7) Dispersion of popular, not popular articles

(그림 7) 은 비인기 기사에 대해 87%의 적중률을 가지며, 반면에 인기 기사에 대해서는 11%의 적중률을 가진다. 각기 다른 사전확률에 따라 큰 변화는 없다. 인기 기사는 y축에 많이 붙어있는 것으로 보아 검증데이터에서 출현한 단어가 학습한 단어 뭉치에 거의 없기 때문인데 이는 학습 데이터가 부족하기 때문일 것이라고 추측된다.

3.3 학습데이터와 검증데이터 300개씩 추가한 후 실행 결과

(그림 8) 0.18이상의 occurrence를 제거한 후의 학습 결과

(Figure 8) cut over 0.18 occurrence from learned not popular articles

네이버 랭킹 뉴스 29, 30위에서 학습용 데이터 300개와 검증용 데이터 300개를 추가로 수집했다. 마찬가지로 조사, 불용어, 따옴표, 구두점등을 제외했으며, 그 중에서도 한 번 이상 나타난 단어만 고려하는 옵션을 사용하였다. 열의 자세한 의미는 3.1의 내용과 같다.

(그림 9) 인기 기사 300개를 추가 학습한 후 학습데이터로 분류기를 실행한 결과

(Figure 9) cut over 0.18 occurrence from learned popular articles

학습한 비인기 기사는 약 99.3%, 인기 있는 기사는 약 27.1%의 적중률을 보인다. 더 많은 인기 기사를 학습했음에도 불구하고 학습한 인기 기사 자체를 제대로 분류하지 못 한다. 비인기 기사에서 현저하게 자주 나오는 단어들은 학습했지만, 인기 있는 기사에서 자주 나오는 특징적인 단어들을 제대로 학습하지 못한 것으로 보인다. 이 결과는 학습한 데이터에서 인기가 있다고 판단할 만한 지표를 제대로 발견하지 못 했다는 뜻으로 볼 수 있다.

(그림 10) 인기 기사 300개를 추가 학습 후 검증데이터 분류기로 실행한 결과

(Figure 10) added 300 popular articles and execute learned data

300개를 추가 학습 후 분류기를 실행한 결과 인기 있는 기사의 적중률이 14.5%, 인기 없는 기사의 적중률이 79.3%로 두 가지 경우 모두의 적중률이 저하된 결과를 얻었다.

(그림 11) 인기 기사 300개를 추가 후 인기 기사와 비인기 기사에 대한 산포도)

(Figure 11) Dispersion after learned more than 300 popular articles added

(그림 12) 인기 기사 사전확률 0.8, 비인기 기사 사전확률 0.2 실행 결과

(Figure 12)popular article prior probability 0.8, not popular 0.2

(그림 13) 인기 기사 사전확률 0.2, 비인기 기사 사전확률 0.8 실행 결과

(Figure 13) popular article prior probability 0.2, not popular 0.8

(그림 11) 을 볼 때 검증용 비인기 기사는 약 79.3%의 적중률로 데이터 300개를 추가로 학습하기 전보다 8% 낮아졌으며 인기 있는 기사는 약 14.5%의 전보다 3% 높아졌다. 검증용 인기 기사는 학습 데이터조차 제대로 분류를 못했으니 검증데이터 또한 분류를 못하는 것으로 보인다.

비인기 기사는 비교적 적은 데이터로도 약 80%의 정확도로 분류했다. 그러나 인기 기사는 더 많은 데이터를 학습 시켰음에도 분류기 성능이 크게 좋아지지 않았다. 이를 통해 비인기 기사에 포함된 단어는 일정하며 비인기 기사는 특정 단어에 따라 비인기 기사로 결정된다는 것을 알 수 있다. 인기 기사에 포함된 단어는 일정하지 않고 기사의 단어가 아니라  추가적인 요소에 따라 인기 기사가 결정 된다고 할 수 있다. 각기 다른 사전확률에 따라 큰 차이는 없다.

4. 결론

인터넷 기사는 바쁜 현대인들을 위하여 신문지를 통하여 전달되었던 기사 내용들이 인터넷을 통하여 어디서든 전달될 수 있도록 변화하였다. 이러한 변화는 여러 사건들이 이전에 비하여 빠르고 널리 전파되며 영향력 또한 강해졌다.

본 논문에서는 영향력을 끼치는 소재를 알아내어 분석하여 지표로 나타낼 수 있다면 그 지표를 바탕으로 시대에 대한 이슈의 기준을 알아내어 사용자로 하여금 유익하고 필요한 정보들을 보다 손쉬운 방향으로 접근할 수 있을 것이라 판단하였다.

인기 기사와 비인기 기사의 기준은 경우에 따라 모호한 기준이 될 수도 있지만 본 논문에서 정한 기준에 의거하여 분류한 결과, 비인기 기사의 한하여 좋은 성능으로 분류해 내었다. 인기 기사의 경우에는 좋은 성능으로 분류하지는 못하였으나 비인기 기사와 비교하여 분석해보았을 때 비인기 기사는 단어 빈도수를 정량화 한 것만으로도 분류를 할 수 있는 반면에 인기 기사가 되기 위해서는 단어 빈도수뿐만이 아닌 추가적인 요소들이 접목되어 결합된 결과라고 추측할 수 있다.

참고문헌

[1]

http://view.asiae.co.kr/news/view.htm?idxno=2018062108350352654

[2] 배경 이론 근거 :

http://mn.kbs.co.kr/news/view.do?ncd=1572236

[3] 해커 스타일로 배우는 기계학습 (Machine Learning for Hackers) - Oreilly

[4] 자료수집 : https://news.naver.com/