Program/Python

Python을 활용한 텍스트 마이닝 6.텍스트 분석-영문 텍스트 마이닝1

HEAD1TON 2017. 9. 11. 17:56

http://www.imdb.com/title/tt0110912/?ref_=nv_sr_1

영어로 된 영화 평점 사이트에서 리뷰를 크롤링하고 간단한 텍스트 마이닝을 해보겠습니다.

 

먼저 토큰화(tokenize), 기본형 형태로 만들기(lemmatize)와 stopwords를 제거하는 작업을 했습니다.

Dark knight라는 영화의 리뷰 100개를 크롤링하여 만든 텍스트 파일을 불러와서 위의 순서로 코딩했습니다. 참고로 stopwords의 경우 소문자의 형태만 인식하기 때문에 .lower()를 통해 토큰을 전부 소문자로 변환했습니다.

 

결과를 다시 텍스트 파일로 저장하고…

이제 이 리뷰에서 가장 많이 등장하는 명사를 추출해보겠습니다.

혹시 중간에 nltk패키지의 오류로 실행이 안되면 nltk.download()를 입력해서 필요한 것을 받을 수 있습니다.

[('movie', 340), ('batman', 249), ('film', 247), ('joker', 177), ('dark', 113), ('ledger', 100),('knight', 95), ('heath', 88), ('time', 83), ('action', 67)]

결과를 출력하면 다음과 같이 리뷰에서 가장 많이 등장한 10개의 단어가 빈도 순으로 출력된 것을 볼 수 있습니다.

동사와 형용사도 동일한 방법으로 추출하시면 됩니다.

 

전체 리뷰의 토큰 개수를 구할 수도 있습니다.

20575 6069

그래프를 이용해서 토큰의 등장 횟수를 시각화 할 수도 있습니다

 

‘이나 ‘s와 같은 보통의 상황에서는 불필요한 단어들이 많이 등장하는데 stopwords에서 추가적으로 옵션을 두어 필터링이 되도록 하는 방법도 있습니다.