1월, 2018의 게시물 표시

[Python mini projects] Python을 활용한 텍스트 속 유의미한 통계 산출하기 -1

이미지
Category: Python programming / Data science 예전에는 수많은 책, 잡지, 신문, 논문 등의 텍스트로 된 자료로부터 정보를 추출하고 분석하기 위해서는 일일히 자료를 모아 읽고, 단어를 세야 했을 것이다. 그렇지만 오늘날에는 그 작업이 훨씬 용이해졌다. 수많은 텍스트 형식의 자료들을 텍스트 파일 형태로 접할 수 있으며, 각기 다른 형태, 다른 기호들, 다른 표현 방식을 사용하는 문서들을 깔끔하게 Parse할 수 있는 기술이 발전했기 때문이다.  이번에는 책, 논문, 등 수많은 텍스트가 포함되어있는 문서를 단어 단위로 쪼개고, 분석하여 유의미한 통계를 산출하는 미니 프로젝트를 진행해 보았다. (사실 이미 이와 유사한 프로젝트는 구글 검색만 해 보아도 충분히 많이 있을거라 생각된다) 모든 텍스트 (글)은 저마다의 주제와 내용을 담고 있다. 그렇다면 주제와 내용은 어떻게 알 수 있을까? 우리가 책을 읽지 않고 주제와 내용을 어떻게 유추할 수 있을까? 모든 책은 글로 구성되어있으며 글은 단락, 문장으로, 그리고 문장은 결국 최소한의 의미를 담은 단어들로 구성된다. 그렇다면 아마 높은 확률로 각기 다른 주제의 책마다 주제와 연관된 단어를 많이 등장시킬 것이다. 만일 한두 페이지가 아닌, 수많은 단어를  담고 있는 긴 텍스트를 분석해서 단어의 통계를 낸다면 그 책의 주제와 연관된 단어들의 빈도가 유의미하게 높음과 동시에, 유사한 주제를 가진 서적의 경우 출현빈도가 높은 단어사이에 연관성이 있지 않을까? 그렇다면 우리는 이 분석을 통해 책들(혹은 논문, 기사, 무엇이 되었건) 사이의 네트워크를 만들 수 있을 것이다. 이와 동시에 분야에 상관없이 많이 쓰이는 단어가 무엇인지도 알 수 있지 않을까?  기본적인 아이디어는 다음과 같다:  파이썬을 통해 매우 긴 (책 혹은 적어도 논문 분량 정도는 되는) 텍스트 파일을 통째로 불러와 단어를 구성하는 자모 이외의 특수문자를 모두 제거하며, 대소문자를 통일이키기 위해 모든 단어