Monthly Archives: 3월 2016

An Introduction to Text Analytics Using Sherlock Holmes Stories

http://cdn2.hubspot.net/hub/426799/hubfs/images/sherlock.jpg?t=1458695042709&width=306

데이터 과학자로서, 하고 싶은 과제 중 말뭉치를 분석하는 것이다.

다양한 텍스트를 분석하다보면 우리 주위에 대해서 많은 것을 배울 수 있다.

이 블로그는 텍스트 분석에 대해 흥미거리를 찾을 수 있고,  셜록 홈즈의 이야기를 통해  이것을 쉽게 이해할 수 있다.

아래, 텍스트 마이닝에 관련된 블로그

최근, 어떤 사람이 내게  “NLP를 하려면 어디서부터 배워야 합니까?”라고 요청받은 적이 있는데,

Kaggle의 대회에서 나온 문제를 풀기 한 노력과 몇 가지 주제에 대한 것을 읽어보라고 제안했다. 예를 들어, Bag of Words Meets Bags of Popcorn 그리고 StumbleUpon Evergreen Classification Challenge. 것이다.

추가로, 내가 썼던 iPython notebook은 NLP 입문자에게 되게 괜찮다. “Text Analytics Tutorial using Sherlock Holmes Stories,” 에서 대용량의 텍스트 컬렉션들을 어떻게 분석하는지를 설명한다.

Sherlock Holmes 를 다운로드 했고, 그리고, 아주 간단한 분석을 위해 파이썬의 Regular Expression 과 NLTK 패키지를 사용했다.

이를테면, 문장의 수를 세거나, 모든 이야기에서 출현하는 특별한 단어의 수를 세기 위해서이다. 그 다음 NER를 실행한다.

Stanford Named Entity Recognizer를 사용하거나 위키피디아의 인물명을 이용해서 셜록의 Social Network이 재구성이 가능한지 증명했다.

그 다음단계는 셜록 홈스 이야기에서 단락들을 어떻게 분석하는지 증명하기 위한 Create의 Topic Model Toolkit의 사용과 pyLDAvis의 사용이다.

마지막으로, 비슷한 단락을 찾기 위해 Word2Vec 를 어떻게 이용하는지 보여준다.

 

Sherlock_Topic_Model.png

그림)Topic Model for Sherlock Holmes stories.

설명) 왼) Topic들 간의 거리 , 오른쪽) 단어 최빈값

이 블로그의 주요 목적은  현존하는 도구들을 써서 현장에서 바로 사용할 수 있는 재미있고 실증적인 예를 보여주는 거다.

이 tutorial을 읽고 나면 스스로 서로 다른 데이터셋에서 흥미로운 insight를 찾아내고, 필요한 NLP처리를 할 수 있을 거다~ (진짜??@@)

 

 

용어 설명

NLP

  • natural language processing (NLP)
  • 컴퓨터가 이해할 수 있는 형태로 표현하고자 한다는 점에서 인공지능과 대단히 밀접한 관련이 있으며, 전산언어학과 거의 구별없이 비슷한 의미로 사용된다.
  • 자연 언어 처리(自然言語處理) 또는 자연어 처리(自然語處理)는 인간이 발화하는 언어 현상을 기계적으로 분석해서 컴퓨터가 이해할 수 있는 형태로 만드는 자연 언어 이해 혹은 그러한 형태를 다시 인간이 이해할 수 있는 언어로 표현하는 제반 기술을 의미한다.

 

text corpora

  • 말뭉치 또는 코퍼스(영어corpus, 복수형: corpora)는 언어학에서 크고 구조를 이루고 있는 텍스트(요즘에는 보통 전자적인 방식으로 저장되거나 또는 처리됨) 집합이다. 통계 분석 및 가설 검증을 수행하거나, 특정한 언어 영역 내에서 언어 규칙 발생의 검사와 그 규칙의 정당성 입증에 사용된다.
  • 출처 : https://ko.wikipedia.org/wiki/%EB%A7%90%EB%AD%89%EC%B9%98

Kaggle’s competitions

NER

  • NER(Named Entity Recognition)
  • NER 기술은 문서, 이메일 등의 원문의 내용에서 문맥 및 패턴 분석과 기계학습을 통해 개체명을 인식하고 분석해 인명, 지명, 기관, 일자 및 장소 등 고유 식별 개체를 추출해주는 기술로, 인공지능(AI) 및 머신러닝 등의 기초가 되는 기술이다.