데이터이야기

DB 노하우, 데이터직무, 다양한 인터뷰를 만나보세요.

[분석17기] 연구자의 시간을 아끼는 논문 분석 도구

데이터 이야기
작성자
dataonair
작성일
2018-01-03 00:00
조회
4001


논문 클러스터링을 통한 주요 연구분야 분석 도구 개발

연구자의 시간을 아끼는 논문 분석 도구



대학원생들이 학위를 취득할 때, 교수들이 연구할 때 가로놓인 가장 큰 장벽은 논문자료의 탐색이다. 어떻게 해야 논문자료를 수집하고 분석하는 시간을 줄일 수 있을까 분석전문가 17기 우수조는 제목 이나 키워드 등 항목별 조건식을 이용하는 논문 검색의 결과를 대상 으로 검색내용과 관련하여 연구되는 주요 내용과 추세를 알아보기 쉽게 제공하는 분석 도구를 개발하였다.



The Challenges

1) 박사학위 취득기간 6년 중 5년은 논문 검색!
대학에서 연구에 정진하는 대학원생들이나 대학교수들이 늘 부딪치는 문제는, 기존 논문자 료의 탐색과 연구범위의 설정이다. 연구주제를 선정하면 대개 주요 도서관의 사이트나 논 문검색시스템에서 키워드검색을 통해 필요한 논문을 검색한다.

그러나 키워드검색만 했을 때 그 속에서 연구와 관련된 의미 있는 정보들을 다 찾는 것은 어렵다. 또 단순히 찾아서 읽기만 하는 것이 아니라, 검색된 논문들 간의 관계와 연구주제 의 변화 등 여러 가지 형태의 복합적인 검토도 필요하다. 읽어야 하는 논문의 수 자체가 워 낙 많아 논문을 요약한 초록(abstract)만 읽는 데도 시간이 많이 걸린다.

그래서 분석전문가 17기 우수조는 논문의 제목이나 키워드 등 항목별 조건식으로 논문을 검색한 결과를 가지고, 검색 내용과 관련하여 연구되는 주요 내용과 추세를 알아보기 쉽게 제공하는 분석 도구를 개발하기로 하였다. 논문의 초록에 대한 텍스트 마이닝을 통해 중요 키워드를 추출하고 유사한 연구분야별로 분류함으로써 주요 연구분야를 확인할 수 있는 도 구를 개발하는 것이 이들의 목표다. 이것은 텍스트 마이닝을 통한 클러스터링 분야로서 아 마존의 도서추천이나 자동번역 등에 활용되고 있는 기술이기도 하다.

2) 텍스트 마이닝이란
텍스트 마이닝은 인간의 언어로 쓰인 비정형 텍스트에서 자연어처리 기술을 이용하여 유용 한 정보를 추출하거나 연계성을 파악하거나 분류하고, 혹은 군집화나 요약 등을 해서 빅데 이터에 숨겨진 의미 있는 정보를 발견하는 것을 말한다.

텍스트 마이닝 기술을 구현하기 위해서는 자연어 텍스트를 컴퓨터가 이해할 수 있는 요소 로 구조화하여 문장 수준의 텍스트에서 의미를 추출해야 한다. 자연어 처리 기반 텍스트 마 이닝 기술은 응답률, 해석의 정확도, 추출결과의 신뢰성 및 일관성, 처리 속도, 확장성 등으 로 성능이 측정된다.
텍스트 형태의 비정형 데이터가 엄청난 속도로 증가하고 있는 지금, 분석전문가 17기 우수 조는 이런 비정형 데이터로부터 더 가치 있는 정보를 만드는 텍스트 마이닝을 이번 프로젝 트를 통해 연구해 보고자 했다.



The Approach

1) 자료 수집
분석전문가 17기 우수조는 연구주제 중에 의학에서 사용하는 fMRI(Functional Magnetic Resonance Imaging, 기능적 자기 공명 영상)를 키워드로 검색하기로 했다. 또한 자료 검색 은 미국 국립의학도서관(https://www.ncbi.nlm.nih.gov/pubmed)을 이용하였는데, 여기서 는 각종 학술지에 게재되는 논문을 조회하고 다운로드할 수 있다. 이 사이트에서 기본으로 제공하는 키워드 검색을 사용하여 원하는 분야의 논문을 검색할 수 있다.

검색된 논문들을 대상으로 워드클라우드를 분석해보면 아래와 같이 뇌와 관련된 키워드들이 주로 나타난다.

fMRI를 키워드로 검색한 결과 등장한 논문의 수는 42만 건이 넘었다. 이 논문들의 요약자료 (summary)를 CSV 형식의 파일로 쉽게 다운로드할 수 있다. 그런데 이 요약자료에는 초록 이 포함되어 있지 않다. 따라서 초록을 수집하기 위해 Python scrapy program을 개발하여 요약자료에 포함된 논문 id를 이용한 크롤링으로 논문의 세부자료를 수집하였다.

column_img_3216.jpg

3) 분석모델 검토
수집된 자료를 기반으로 분석하기에 앞서 필요한 고려사항을 검토해보았다. 첫째, 몇 개의 토픽으로 분류해야 하는가 둘째, 어떤 알고리즘으로 주요 키워드를 추출할 것인가 셋째, 새롭게 추가되는 논문에도 적용할 수 있는가

이 고려사항을 염두에 두고 텍스트 마이닝의 토픽모델 구축 프로세스를 만들었다. 먼저 수집 된 자료에서 말풍선(Corpus)을 추출하는 과정이 이뤄져야 한다. 아래 코드는 수집된 논문에 서 말풍선을 추출하는 과정이다. 제한된 기간 안에 수행해야 하는 프로젝트의 목적에 맞춰 42만 건 중 초록에 fMRI 키워드를 포함하는 약 4만 건을 선정하여 추출했다. 공백문자나 문 자기호 등 기본적인 클리닝 작업 후 일반단어들을 제거하는 과정을 거쳐 말풍선을 추출했다

column_img_3217.jpg

그 다음 추출된 말풍선으로 DTM(Document Term Matrix)을 만든다. 각각의 문서에서 사용된 단어의 빈도수를 분석하여 문서별 유사도를 파악할 수 있다. 문서별 유사도를 바탕으로 관련 있는 문서끼리 클러스터링을 할 수 있다. 오른쪽 코드는 추출된 말풍선으로 DTM(Document Term Matrix)을 만드는 과정이다. 40,821건의 논문에서 추출된 단어는 18,171개로 방대한 크 기의 매트릭스가 만들어졌다. 각각의 문서별로 단어가 몇 번씩 사용되었는지 확인할 수 있다.

그리고 여러 개의 토픽으로 문서를 분류하는 모델링 작업을 진행한다. 토픽모델링은 LDA(Latent Dirichlet Allocation)기법을 사용했다. LDA의 개념은 각 주제별로 특정 단어를 생 성할 확률을 알고 있으면, 특정 문서가 만들어질 확률을 계산할 수 있다는 것이다. 이를 이 용하여 단어의 출현빈도로 논문을 분류하였다. 이때 몇 개로 분류할 것인지를 분석자가 정 해야 하는데 일단 임의로 10개로 분류하기로 했다. 그리고 각각의 토픽별로 관련성이 높은 키워드를 10개씩 뽑았다. LDA기법은 확률변수를 사용하므로 난수발생 SEED를 2010으로 주었고 Sampling 알고리즘은 Gibbs sampling을 사용했다.

column_img_3218.jpg

이제 다음 작업은 Topic 1, Topic 2라는 라벨을 관련 키워드를 보고 의미 있는 이름으로 Labeling해야 한다. 자동으로 정해주는 알고리즘이 있는 것은 아니고 사람이 정해야 하는 데, 관련 도메인의 지식이 있는 사람이 아니면 쉽지 않은 작업이다.

현재 문서분류뿐만 아니라 이미지 분석 등 다양한 분야에서 활용되는 LDA기법이지만, 논 문 클러스터링에 LDA기법을 토픽모델링으로 사용하는 데는 몇 가지 문제가 있었다. 첫째, 모든 논문들을 포함하는 그루핑으로는 논문별 특징을 나타내기 어렵다. 둘째, LDA는 문서 별 TF기반이므로 중요하지 않은 일반 단어가 포함되는 비율이 높다. 셋째, 전체 문서를 대 상으로 분석하므로 시간변화에 따른 토픽의 변화를 반영하지 못한다.

4) 분석모델 구축
위에서처럼 일반적인 텍스트 마이닝 기법을 적용해본 결과는 만족스럽지 못했다. 그래서 새로운 시도를 해보기로 했다. 우선 수집된 자료를 기반으로 논문 4만여 편의 초록을 문장 단위로 구분하여 논문마다 TF-IDF 분석을 통해 키워드를 상위 5개씩 추출했다. 그리고 논 문별로 수집된 키워드를 비교하여 유사한 논문들을 그룹핑하고 키워드 집합사전을 구축하 여 키워드 집합 간의 일치율을 비교함으로써 클러스DF 방식은 단어의 빈도를 중요시하지만 문서마다 자주 나타날 경우 상투적인 단어로 봐서 중요도를 낮추는 방식이다. fMRI로 검색한 논문들처럼 같은 키워드로 선택한 문서들을 대상으로 분석할 경우 상투어 이외의 단어들에 높은 가중치를 줄 수 있는 기법이다.

이제 키워드 집합을 구한 문서들을 클러스터링하는 가장 중요한 과정이 기다리고 있다. 이 문제를 해결하는데 가장 간단한 방법을 사용하기로 했는데, 바로 키워드 집합을 비교하여 유사한 것끼리 묶는 것이다. 이때 일치하지 않는 키워드는 집합의 새로운 항목으로 추가되 면서 키워드 집합이 점점 커진다. 일정한 기준 이상으로 커진 키워드 집합은 일반화가 되 었다고 판단하여 초기화시키고, 해당 그룹번호를 가졌던 문서들도 부여했던 그룹의 번호는 지워지고 다른 그룹 중에서 유사한 그룹을 찾는다. 해당되는 그룹을 찾지 못했을 경우 새로 운 그룹으로 등록된다. 이러한 과정은 비유하자면 마치 물을 끓이면서 생긴 공기방울이 기 화된 새로운 공기방울과 합쳐지며 커지다가 마침내 터지는 것과 같다.

아래 코드는 키워드 집합사전을 생성하는 코드다. 논문별 키워드의 개수는 5개였고 최대 50개의 키워드가 모이면 초기화되도록 설정했다. 60%이상의 유사도를 나타내면 같은 집합 으로 분류하도록 기준을 정했다. 이러한 기준은 분석대상 문서의 성격에 따라 다르게 정할 수 있다.

column_img_3219.jpg

5) 분석모델 결과와 검증
이런 과정을 거쳐 클러스터링한 결과는 위와 같다. 클러스터링 과정이 물이 끓어오르는 모 습처럼 보이므로 Boiling Clustering이라고 이름을 붙였다. 2개 이상의 문서가 있어야 그룹으 로 볼 수 있다. 4만여 개의 논문은 5,449개의 토픽으로 분류되었다.

이 결과의 검증을 위해 토픽 중 하나(104번)를 골라 확인해보았다. 27522069번 논문에서 추출된 5개 키워드는 patterns, semantic, words, model, sentences이다. 구글 번역을 이용 하여 원문을 한글로 변환해본 결과, ‘단어를 읽고 문장의 의미를 패턴화하는 두뇌작용에 대 한 연구’였다.

두 번째로 24259581번 논문은 semantic, words, patterns 3개의 키워드가 일치하여 같은 그 룹으로 묶였다. 일치하지 않는 entities, distances는 새로운 키워드로 추가되었을 것이다. 내 용은 역시 ‘사진을 볼 때와 단어의 의미를 떠올릴 때와의 두뇌활동을 비교하는 논문’이었다.

세 번째 19068489번 논문도 60% 이상 일치하여 같은 그룹으로 분류되었다. ‘단어와 문장 의 의미가 운동신경을 활성화하는데 중요한 역할을 한다’는 내용이다. 이상 세 논문 내용을 보면 TF-IDF기법을 통한 키워드 추출과 유사한 논문들끼리의 클러스터링이 잘 이루어진 것으로 보인다.

column_img_3220.jpg



The Outcome

이번 프로젝트로 몇 가지 의미있는 결론을 도출할 수 있었다.
첫째, 분석을 통해 클러스터의 개수를 객관적인 조건으로 결정하므로 Domain에 제한받지 않는 방식으로 구현하여 전문지식이 없는 분석가라도 시행할 수 있다. 둘째, 문서단위 키워 드 추출과 사전기반 비교 분류로 새로운 논문을 쉽게 추가할 수 있다. 이미 만들어진 키워 드 집합사전을 기반으로 새로운 논문을 분류하므로 간단한 비교작업을 통해 쉽게 추가할 수 있다. 셋째, 변화하는 모형으로 구현하여 시계열 해석에 쉽게 적용할 수 있고 지속 가능 한 모델도 제시한다.

분석 대상 전체를 한꺼번에 작업하여 결과를 내는 토픽모델링은 분석시점의 결과만을 보여 준다. 반면 보일링 클러스터링은 냄비에서 물이 끓듯 문서가 추가됨에 따라 토픽들이 새로 운 문서의 키워드를 포함하면서 점진적으로 생성·성장·소멸해나가는 토픽모델이다. 따 라서 그 과정을 시계열로 해석하고, 지속적으로 문서가 추가되는 데이터에서 토픽의 변화 를 검토하는데 유용한 모델로 발전시킬 수 있다. 예컨대 이번에 만든 키워드 집합사전은 지 속적으로 관리되며 변화하므로 분석한 모델을 서비스화하여 제공할 수 있다.

분석전문가 17기 우수조 구성원들은 관련분야의 트렌드를 쉽게 살펴볼 수 있는 자동화된 분류서비스까지 제공하는 분석 도구를 개발하였다. 향후 이 모델을 개선하여 문서자료를 쉽게 조회할 수 있는 서비스로 발전시킬 계획이다.



출처 : 한국데이터진흥원

제공 : 데이터 전문가 지식포털 DBguide.net