데이터이야기

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

[기술9기] 정보 포털 자료의 키워드 분석 및 군집화

데이터 이야기
작성자
dataonair
작성일
2016-12-21 00:00
조회
3270


머신러닝으로 검증한 기술문서 분류 자동화의 가능성

정보 포털 자료의 키워드 분석 및 군집화



기술전문가 과정 9기는 공공기관에서 운영중인 IT 정보 포탈의 데이터를 기계학습으로 분류·검 증하는 프로젝트를 우여곡절 끝에 시작했다. 일명 ‘IT 정보 포털 자료의 키워드 분석 및 군집화’ 프로젝트다. 주제를 놓고 긴 시간 고민을 하고, 중간에 원인 모를 이유로 하둡 플랫폼이 유실되는 사건도 있었지만 한발 한발 전진을 멈추지 않았다. 덕분에 우수조로 선정되는 성과를 올렸고, 빅 데이터 플랫폼 기술과 분석의 재미를 한껏 만끽할 수 있었다.



The Challenges

분석 초짜들과의 첫만남 ‘정말 분석할 수 있을까’

기술전문가 과정 9기는 거의 막바지에 프로젝트 조를 구성했고, 주제도 그때 정했다. ‘정말 분석을 해야 할까’라는 의구심 이 떠올랐다. 강의를 듣는 2주 내내 같은 자리에 앉아 주변 사람들과 대화를 나누거나 식사를 했는데, 수료 프로젝트는 그 동안 많은 이야기를 나누지 못했던 분들과 한 조를 이뤄 진행하게 됐다

처음에는 다들 서먹하고 무슨 얘기부터 꺼내야 할지 막막했다. 게다가 우리 조 인원이 가장 적다는 것을 알고 좌절! 서로 얘기를 나누다가 데이터 분석을 해 본 경험자는 조원 중 한 명도 없다는 점을 알게 되어 다시 한번 좌절! 이번에는 ‘정말 분 석을 할 수 있을까’라는 의문이 강하게 밀려들었다. 결국 우리 조는 그 동안 배웠던 하둡 에코시스템의 설치를 체계적으 로 복습하면서 문제점을 파악한 후 보고 프로젝트를 마치기로 했다.

기대를 내려놓으니 마음은 조금이나마 편해졌다. 그래서 하둡 에코시스템에서 돌려볼 만한 데이터 세트를 각자 찾아보고 주중에 만나 의견을 나눠볼 생각이었다. 하지만 뚜렷한 목적이 없는 상황에서 데이터 세트를 구하는 일 또한 쉽지 않았다. 교육 중에 배웠던 내용을 리플레이하기 위한 충분한 크기의 데이터 세트라는 기준에 맞는 데이터 구하기가 당면과제로 떠 올랐다. 요즘 자주 회자되는 공공 데이터를 입수·분석하기로 합의하고, 각자 조사하며 몇 가지 주제 후보를 선정했다. 하 나는 웹로그 분석이었고, 다른 하나는 미세먼지 데이터를 수집해 공단지역의 대기오염도와의 상관관계를 분석해보는 것 이었다.

그런데 주중에도 한번 만났지만 여전히 데이터를 구하기가 쉽지 않다는 결론에 이르렀다. 그렇게 일주일이 지나갔고 멘토 와 첫 만남을 가져야 하는 토요일이 됐다. 강의를 할 때부터 분석 경험이 많은 분이라고 생각했던 멘토에게 우리 조에서 분 석하고 싶은 주제와 데이터 구하기의 어려움을 토로했다. 이때 멘토는 “교육과정에서 배운걸 단순 복습하는 것보다는 현 업에서 어려움을 겪고 있는 내용을 과제로 도전해 보는 게 어떻겠냐”는 제안을 해왔다. 성패를 떠나 이왕 하는건데 실무 를 하면서 배웠던 것을 검증해 보는게 더 흥미롭겠다는 쪽으로 조원들의 의견이 모아졌다.



‘어떻게’보다 ‘무엇’이 분명해야 하는 이유

조원들이 당초 생각했던 주제들 대신 한 공공기관에서 운영중인 IT 정보 포탈의 데이터를 기계학습으로 분류·검증해 볼 수 있는 주제로 확정했다. 이 사이트는 기술 문서를 담당자가 일일이 읽어보고 분류하는 형태로 서비스를 운영중이었다. 우리가 구축하고자 했던 것은 기계학습(Machine Learning)으로 이들 내용을 분류해 수작업으로 분류한 결과와 비교해 자동화 가능성을 확인하는 시스템이었다. 목표가 사람을 움직인다고 했던가! 도전적인 프로젝트 주제가 정해지자 당초 덤 덤했던 조원들의 태도와 눈빛이 달라지기 시작했다. 어떤 일이든 ‘어떻게’보다는 ‘무엇’이 분명해야 하고 싶은 마음도 생기 는 법이라고 했던가. 빅데이터 분석에서 흔히 생각하기 쉬운 ‘무작정’은 위험할 수 있다는 것을 체험하는 순간이었다. 대용량 데이터 분석 플랫폼을 직접 구축해 현업 데이터를 분석하기로 한 이상, 대충 해서는 안될 것 같았다. 그래서 지금까 지 크게 신경쓰지 않았던 데이터 분석을 공부할 수밖에 없는 상황에 몰렸다.

IT 분야에 몸담고 있는 사람이라면 누구나 새로운 공부거리를 앞에 두고 의지를 다져보기를 수없이 했을 것이다. 하지만 결과는 어떠한가 늘 현실과 타협하기에 바빴을 것이고 그런 자신을 보면서 자괴감마저 들었을 것이다. 데이터 분석을 배 워보겠다고 다짐한 이상, 여기서 물러서면 또 다른 ‘무시무시한 자괴감’이 나를 덮쳐올 거라는 생각까지 들었다.

분석에 집중하기 위해 우리 조는 아파치 하둡 에코시스템을 일일이 구축하려던 당초의 계획을 바꿔 클라우데라 하둡 배포 판으로 쉽게 접근해 보기로 했다. 분석 인프라 구축을 담당했던 이우희 조원이 하루 만에 뚝딱 설치를 끝냈다. 쉽게 설치되 는 것을 보고 ‘교육 과정에서는 왜 그렇게 복잡하고 어렵게 설치했을까’라는 생각마저 들었다. 주제도 정해졌고 하둡 플랫 폼 설치도 생각보다 쉽게 마무리됐다. 이제 분석할 데이터를 어떻게 수집하고 어떻게 분석할지 고민하면 될 것 같았다.



The Approach

수료 프로젝트이지만 이 것도 엄연한 하나의 프로젝트였으므로 어떻게, 누가 일을 해야 할지 정해야 했고, 작업분류체계 (WBS)도 제출해야 했다. 팀원들 모두 IT 영역에서 일한 지 오래 되서 주제를 정한 그날부터 어떤 일을 해야 할지 정리해 기본적인 WBS를 도출했다. 필자는 다음날인 일요일부터 열흘간 일본 출장을 가야 했으므로 조원들에게 주중에 기본적인 데이터 수집 테스트와 데이터 클린징(cleansing; 정제) 방법에 대한 조사를 부탁했다.

조장이 부재중일 때 조직은 두 가지 성향을 보인다고 한다. 첫 번째는 팀장이 보이지 않기 때문에 대충 시간을 때우고 온갖 핑계를 대면서 하지 못한 일에 대해 정당성을 부여하는 조직이고, 두 번째는 주인의식을 갖고 팀장의 공백을 채워주는 조 직이다.

다행스럽게도 우리 조는 후자에 속했다. 일본 출장 중에 고객사의 보안 규정으로 인터넷은 물론 전화도 제대로 사용하지 못해 연락이 원활하지 못했다. 그럼에도 조원들은 가장 어려운 단계인 데이터 수집을 성공적으로 마무리해 주었다.



뭔가 일낼 거 같은 확실한 예감

데이터 수집은 웹 크롤링을 이용해 우리가 분석할 사이트인 www.itfind.or.kr에서 직접 가져오기로 했다. 우리 조에서 가 장 젊은 박범서 조원이 데이터 크롤링 프로그램을 개발하기로 하고 여러 방법을 조사해 보았다. 기술전문가 과정의 교재 인 『빅데이터 실무 기술 가이드』에 소개된 ‘scrapy framework’이 개발 부담을 줄일 수 있다는 점에서 유리하겠다는 생 각이 들었다. 그래서 파이썬이 익숙하지 않았음에도 도전해 보기로 했다. 시간이 부족했기에 scrapy가 제대로 되지 않을 경우를 대비해 이우희 조원이 node4j를 이용해 별도 크롤링 테스트를 해보기로 했다. 결론적으로 둘 다 성공했다. 다만 node4j는 병렬로 처리되면서 itfind 사이트에 많은 부하를 일으켜 일단 중지시키고 scrapy만으로 수집했다.

재미있는 사실은 우리 조에서 node4j로 크롤링 했던 주말, itfind 사이트에 1년치의 트래픽이 발생했다는 사실이다. 빨리 중단했기에 망정이지 아무 생각 없이 그대로 진행했다면 어떤 일이 발생했을지 떠올리기도 싫을 정도다.

어디부터 뭘 해야 할지 막막했던 우리 조원들은 한 단계 한 단계 앞으로 나아가기 시작했다. 직접 경험해보면서 길을 찾아 가는 것이 우리 조원에게 적절했나 보다. 갈수록 자신감이 붙으면서 뭔가 일을 낼 거 같다는 느낌이 들기 시작했다.



커다란 장벽 ‘데이터 전처리 작업’

Itfind 사이트는 다양한 IT 정보를 제공하는 포털 사이트에 가깝다. 이 사이트준, 미디어관은 기준에 의해 분류되는 성격이 아니고 검색을 통해 제공하거나 VOD 형태로 제공되고 있었기에 우리 조의 분석 대상이 아니었다. 결국 분석 보고서, 정기간행물, 연구결 과 보고서로 분류된 문서들을 대상으로 분석에 나섰다.

그 중에서 분석 보고서에는 ICT 정책, 유무선 통신 등 16개의 분류코드가 있었다. 이것을 담당자들이 일일이 분류하고 있 었다. 분석 대상의 경우 초기 데이터(seed data)의 양이 많지 않았을 수 있다. 하지만 키워드 분석을 하려면 데이터를 정제 하고 로드하는 과정에서 데이터 양이 기하급수적으로 커진다. 이제부터가 문제다. Scrapy를 이용해 별 문제 없이 데이터 를 수집할 때까지는 가벼웠던 분위기가 차분해지더니 조원들의 표정에 긴장감이 돌기 시작했다.

커다란 바위가 앞을 막고 있는 느낌마저 들었다. 그 장벽은 바로 데이터 정제 작업이었다. 소셜미디어 분석에서는 크롤링 후 만들어진 원천 데이터를 의미 단위로 쪼개 자연어 처리를 해 텍스트 분석(감성 사전, 연관어 분석 등)과 시각화를 하게 된다. 우리가 다루는 데이터는 어느 정도 정형화된 자료일 거라고 생각했다. 그래서 소셜미디어 분석법을 일부 변형해 진 행했다.

크롤링한 자료를 플룸(flume)을 통해 하둡에 로드한 후 맵 리듀스로 워드 카운트를 하는 등 기초적인 분석 작업을 진행했 다. 이어서 하이브(hive)에 테이블을 생성해 쿼리를 통해 데이터를 추출하는 과정을 거쳤다.

하지만 텍스트 분석은 말처럼 그리 만만하지 않았다. 분석을 하기 위해 여러 참고서를 살펴보던 중 『비즈니스를 위한 데이 터 과학』이라는 책에서 텍스트 처리가 얼마나 어려운 작업인지 소개한 부분을 보면서 공감할 수 있었다.



‘건너 본 사람만 알 수 있는’ 데이터 클린징의 어려움

‘아! 그렇겠구나’ 정도로 생각했지, 얼마나 어려운 과정인지는 부딪쳐 봐야 알 수 있다. 텍스트 처리 부분은 김의승 조원이 담당했는데 해결해야 할 문제가 한 두 가지가 아니었다. 텍스트의 비정형성 때문에 데이터를 직접 클린징하면서(예: 조사, 관용어 등의 삭제) 불용어를 제거하거나 품사별로 단어를 분류하는 방법들을 동원했다.

그런데도 이렇다 할 결과가 나오지 않았다. 완료 날짜가 점점 다가오고 있어 기한 내에 해결은 불가능처럼 보였다. 될 것도 같은데 그러기엔 시간이 너무 촉박했다. 무엇보다 불용어를 제거하는 과정이 문제였다. 사람이 직접 하기에는 원 데이터 의 왜곡 위험 등 오류 가능성이 너무 높아 보였다. 데이터는 다 구해 놓았는데 처리가 이렇게나 힘들 줄이야! ‘텍스트는 데 이터 마이닝 알고리즘을 적용하기 전에 많은 전처리 과정을 거쳐야 한다’는 책에서 읽었던 내용이 뼈에 사무치게 다가왔 다. 너무 쉽게 생각했다는 자책감마저 들면서 온갖 비관적인 생각이 다 떠오르며 머리가 복잡해지기 시작했다.

분석 과정도 중요하지만 데이터를 수집하고 전처리하는 과정이 제대로 되지 않으면, 실제 분석하기 위한 준비시간이 길어 지고 잘못된 전처리로 인해 ‘garbage in garbage out(불필요한 정보를 입력하면 불필요한 정보밖에 나오지 않는다는 의 미)’ 문제까지 만날 수 있다. 우리 조의 목표는 <표> 같은 데이터 프레임을 만들어 R 코드로 묶고(클러스터링) 분류(클래시 피케이션)하는 것이었다. 하지만 앞서 해야 할 일이 있었다. 텍스트를 빠르고 정확하게 전처리하는 작업이 그것이다.



dbin_565.jpg

KoNLPy를 만나 ‘단어주머니’를 생성하다

데이터 전처리를 위해 여러 형태의 쿼리를 수행해 보고 심지어 RDBMS에 로드해 데이터 성격을 분석해 보기도 했다. 그 사이 시간은 흘러 프로젝트 완료 일이 일주일 밖에 남지 않았을 때다. 전처리 과정 중 문서를 하나의 단어 집합으로 보고 문법, 문장구조, 구두점 등을 무시하는 ‘단어주머니’를 생성하기 위해 귀중한 시간을 보내던 중 KoNLPy를 알게 됐다.

KoNLPy는 파이썬으로 만든 한국어 정보처리 패키지다. 깔끔하게 단어를 품사별로 분류해 주는 예제를 보고 우리 조가 하 려는 목적과 너무나 잘 맞아 떨어진다는 생각에 만든 사람들에게 절이라도 하고 싶은 심정이었다. 이 부분 역시 박범서 조 원이 파이썬으로 개발했다. 적지 않은 양이었지만 패키지의 성능이 뛰어나 예상보다 짧은 시간에 우리가 원했던 대로 한 글 문서를 품사별로 쪼개 주었다.

텍스트 처리의 1단계인 단어주머니를 만드는 작업이 성공하는 감격적인 순간이었다. 텍스트를 KoNLPy를 이용해 처리하 게 되면 <그림 1>과 같은 아웃풋을 얻게 된다. 이렇게 해서 단어주머니(Bag of Word)를 얻을 수 있었다



dbin_566.jpg

발표 일주일 전 usr 디렉토리 유실

단어 빈도와 역문서 빈도를 구한 다음, 실제 분류된 것과의 일치도를 알아보고 R로 클러스터링하기 위해 데이터 프레임만 만들면 되는 단계에 이르렀던 때였다. 빠듯하겠지만 이틀에 하나씩 과제를 해결하면 발표일까지 가까스로 맞출 수 있겠다 는 생각이 들었다. 우리 조의 프로젝트가 성공의 길로 갈 수 있겠다는 희망도 생겼다. 그런데 발표를 한 주 정도 앞둔 금요 일, 일이 터졌다.

퇴근 무렵 김의승 조원이 다급하게 메시지를 보내왔다. Namenode에 sftp 접속이 불가하다는 내용이었다. 퇴근 준비를 하 다가 원격 접속을 해보니 ssh는 접속되긴 하는데, 프롬프트가 깔끔하게 떨어지지 않고 오류 메시지와 함께 로그인이 됐다. 아무튼 접속이 되서 sftp 명령을 입력해 보았더니 ‘Cannot connect to sFTP server with subsystem’라는 메시지가 떴다. ftp, hadoop, yum 등 생각나는 것들을 입력해 보았지만 모두 실행되지 않았다. 순간 뇌리를 스치는 불길한 예감... 루트 디 렉토리로 이동해 ls 명령을 입력해보니 usr 디렉토리가 없는 게 아닌가!

히스토리를 조회해 봐도 지우거나 이동한 흔적이 나타나지 않았다. 도무지 이해할 수 없는 상황이 벌어진 것이다. 구성해 놓은 클라우데라 하둡(CDH) 배포판은 물론 하둡에 로딩해 놨던 자료들까지 고스란히 사라져 버렸다. 퇴근을 미루고 복구 를 시도해 보았으나 디스크를 직접 마운트해 유실된 usr 디렉토리를 카피하는 해결책만 제시했다. VM으로 구성되어 어찌 할 수 없는 상황이었지만, 침착하게 대응해야 한다는 생각 저편에서는 이 일을 어찌할 것인지 미로를 헤매는 기분이었다.



수 차례의 재설치로 ‘하둡 설치의 도사’ 되다

실수이거나 시스템 문제이거나 둘 가운데 하나 때문에 터진 문제였을 것이다. 누구의 잘잘못을 따지거나 원인 규명에 나 설 수 있는 시간조차 없었다. 빨리 복구하고 다시 시작하는 수밖에는 방법이 없었다. 일단 멘토에게 상황을 알리고, 다음날 로 예정된 프로젝트 최종 미팅에서 대책을 강구하기로 했다.

밤새 뒤척이다가 다음날 충혈된 눈을 하고 모임에 참석했다. 팀원들 모두 망연자실한 표정이었다. 간단한 비상대책에 대 해 의견을 나누고 CDH 복구에 들어갔다. 강의실 개방 시간이 끝날 때까지 재설치를 반복하는 지루한 작업이 이어졌다. VM을 초기화하고, 새로운 네임 노드를 구성하기 위해 별도의 VM을 배정 받았다.



dbin_567.jpg

우여곡절 끝에 재설치를 마무리했다. 하둡 배포판이 사용하기에는 편리하지만, 문제가 발생할 경우 대응하기 힘들겠다는 생각이 들었다. 분석 시스템에서 문제가 발생하면 하둡 구성 요소를 하나씩 확인해 보면서 문제를 찾을 수밖에 없다. CDH 설치가 너무 쉽게 되는 바람에 ‘기술과정’이 시간낭비는 아닌지 생각했던 게 큰 오산이었다.

문제를 해결하는 과정에서 교육 당시 배웠던 내용들이 큰 도움이 됐다. 새롭게 설치한 후에도 문제를 몇 번 일으켜서 진주 로 출장을 간 이우희 조원 대신에 박범서 조원이 수 차례 설치를 반복했다. 본인은 “하둡 설치의 도사가 됐다”며 웃음으로 넘기려 했지만, 그 고생은 겪어본 사람만이 알 수 있을 것이다.

귀중한 시간이 그렇게 흘러가서 결국 R을 통한 클러스터링과 분류 작업은 뒤로 미뤄두고, 우리 조에서 보유하고 있던 소중 한 재산인 단어주머니를 이용해 분석을 하기로 했다. 프로젝트는 한정된 기간에 목표를 이루어 내는 과정이라고 볼 수 있 다. 우리가 바라보는 목표는 저 멀리에 있지만 어떻게 해서든 가까이에 다가가야 한다. 프로젝트의 1차 목표인 기본 분석 완료를 위해 힘을 쏟았다. 앞 단계에서 만들었던 단어주머니를 이용해 단어 빈도(TF: Term Frequency)와 희박성 측정:역 문서 빈도(IDF: Inverse Document Frequency), 두 값을 곱한 TF-IDF를 구했다(그림 2 참고).



결과물에 대한 자부심으로 개선작업 적극 추진

데이터 분석 전문가들은 단어주머니를 이용해 위에 나열한 여러 가지 방법 중 어떤 것을 사용할지 직관적으로 도출하겠지 만, 우리 조 같은 분석 초보자들은 텍스트를 위 방법으로 수 차례 반복하면서 결과를 찾아 나가는 것이 현실적인 접근법이 라고 생각했다.

팀원들이 마지막 남은 기간에 TF-IDF를 구하는 데에 전력을 다한 결과, 샘플링해 기존 분류 체계와의 일치도를 확인하는 작업까지 극적으로 마쳤다. 이 때의 일치 정도는 90%였다. 하지만 이것으로 프로젝트가 끝이 난 것은 아니었다.

빅데이터 분석이라는 제목에 걸맞게 전수검사를 해서 정확도도 평가해야 하고, TF-IDF를 정규화 하는 등의 방법으로 일 치도를 좀 더 검증해 보아야 했다. 이미 확보한 IT 용어사전과 공문을 통해 요청해 놓은 국어대사전을 이용해 불용어 처리 등의 작업을 좀 더 진행해야 하는 등 해결 과제가 남아 있었다. 하지만 팀원들은 우리가 이루어 놓은 결과물에 대한 자부심 으로 충만했고, 추가의 개선작업을 적극 추진해볼 각오가 되어 있었다.

CDH는 네임 노드에 클라우데라 매니저를 설치하고 웹으로 접속해 클릭만 해주면 데이터 노드를 구성하는 등 별다른 환경 설정을 하지 않고도 쉽게 설치된다. 웹 크롤링은 『빅데이터 실무 기술 가이드』에 소개된 scrapy framework를 사용했다.

dbin_568.jpg

우리 조의 전체 분석 시스템 구성도는 <그림 4>와 같다. Scrapy로 웹 크롤링을 하고 플룸으로 hdfs에 로드한다. 하이브 등을 이용해 로드된 데이터의 기본 속성을 파악하고, 머하웃으로 머신러닝을 진행한다. 우지로 하둡에서 데이터 처리 워 크플로우를 관리하면서 최종 데이터 세트가 만들어지면 R에서 분석작업을 한다.

dbin_569.jpg



머리를 맞대면 아이디어가 꼬리를 문다

다른 조도 같은 상황이었겠지만, 우리 조도 다들 직장에서 주어진 업무를 처리하면서 틈틈이 수료 프로젝트를 진행해야 했다. 프로젝트 기간 중에는 유난히도 조원들의 지방 출장이 잦았다. 그것도 비슷한 시기에 가는 것이 아니라 릴레이 식으 로 출장이 이어지면서 조원들이 모두 모일 수 있는 시간이 절대적으로 부족했다.

그럼에도 문제없이 프로젝트를 마칠 수 있었던 원동력은 SNS 등 통신 수단을 적극적으로 활용한 덕분이다. 포털 사이트에 카페를 개설해 진행 상황을 공유했으며, 문제 사항에 대해서는 함께 해결방법을 모색했다. 여럿이 머리를 맞대자 생각하 지 못했던 아이디어가 꼬리를 물듯이 이어져 나왔다.

필자는 문제에 직면했을 때 한 가지 방법에 빠져 있다 보면 다른 생각을 하지 못하는 경우가 많았던 경험이 있다. 이번에 조원들과 함께 수료 프로젝트를 하면서 함께 하는 것의 의미를 깨닫게 된 것이 프로젝트 성공보다도 더 큰 소득이 아니었 나 싶다.



THE OUTCOME

데이터 완벽하게 다루기, 앞서가는 데이터 엔지니어의 조건

이번 프로젝트를 수행하면서 무엇보다도 소통의 중요성을 깨달았다. 조장으로서 작은 일이라도 지레짐작해서 넘기는 순 간, 팀원들은 갈피를 잡지 못하게 되고 결국 프로젝트에 마이너스 요소로 작용하고 만다. 하지만 권위를 내세우지 않고 소 통할 때 팀원들이 똘똘 뭉쳐서 불가능할 것 같던 과제를 해내는 것을 보면서 뿌듯함을 느꼈다.

우아하게 보이는 백조는 물 밑에서 끊임없이 발짓을 하고 있다고 한다. 프로젝트를 진행하면서 분석을 공부하다 보니 화 려한 시각화나 낯선 통계용어 등을 멋지게 풀어서 설명하는 게 폼 나는 일이라는 생각이 잘못됐다는 것을 알게 됐다. 백조 가 뭍 아래서 두 발로 열심히 갈퀴질하듯이 어찌 보면 고통스러운 데이터 수집과 전처리 과정을 수없이 되풀이 하는 것이 분석에서 중요하다는 생각이 들었다.

빅데이터 분석에서 데이터 전처리 등 데이터를 다루는 작업이 전체의 90%에 달한다고 한다. 실제 우리가 했던 작업들을 돌이켜 보아도 데이터 수집과 로드, 그리고 데이터를 전처리해 쓸만한 데이터를 만들기 위해 기울인 노력이 전체 프로젝 트의 80%였다. 그만큼 데이터 전처리 작업은 빛은 나지 않고 지루한 작업이지만, 프로젝트의 성패를 좌우할 수 있는 일이 기도 하다. 역으로 이 과정에 대해 노하우가 있다면 앞서 나가는 데이터 엔지니어로 성장할 수도 있을 것이라고 생각한다. 이번 프로젝트를 통해 TF-IDF로 의미있는 문서 처리 결과를 얻었으므로 당초 하고자 했던 데이터 프레임을 만들어서 R로 클러스터링 및 클래시피케이션 분석을 완성하고 싶은 생각이다. 또한 수작업으로 하던 기존 문서 분류 작업 결과와 비교 해보면서 분석 알고리즘을 업데이트해 기계학습으로 자동화할 수 있을지 가능성을 앞으로 타진해 보고 싶다. 이번에 분석 한 키워드 분석 방법은 비단 itfind 사이트에만 한정시키지 않고 유사한 서비스에도 적용할 수 있을 것으로 자신한다.



출처 : 한국데이터진흥원

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