/KoreanSentimentAnalyzer

한국어 감성 분석기

Primary LanguageJavaScriptOtherNOASSERTION

한국어 감성 분석기

개요

이 패키지는 꼬꼬마 한글 형태소 분석기KOSAC(Korean Sentiment Analysis Corpus)의 감성사전 데이터를 이용한 한국어 감성 분석기이다. 형태소 분석을 위해 파이썬으로 구현된 KoNLPy 패키지를 이용하였다.

SimpleTwitterScraper 패키지를 이용해 트위터 데이터를 수집한 후 형태소 분석, 감성 분석 후에 마지막으로 R을 이용해 해당 데이터의 감성 추세 그래프를 그린다.

감성사전은 여기서 다운받을 수 있다.

사용된 패키지

KoNLPy
꼬꼬마 형태소 분석기 서버를 구성하기 위해서 사용된 패키지이다. 이 패키지는 Hannanum, Kkma, Komoran, Mecab, Twitter 등의 형태소 분석기를 지원한다.

모듈 설명

형태소 분석기(morphemeServer.py)
처음 실행 후 사전을 불러오는 시간이 많이 필요하므로 형태소 분석기 서버를 만들어 요청이 왔을 때 최초 1번 사전을 불러온 후 다음 요청 부터는 로드된 사전 데이터를 이용한다.
감성 분석기(sentiment.js)
KOSAC에서 제공하는 plarity.csv 데이터를 이용해서 감성분석을 한다. 해당 데이터를 로드한 후 한글 텍스트를 형태소 분석기로 파싱한 후 감성 사전에 해당하는 감성 데이터를 가져온다.
트위터 감성 분석기(analyzer.js)
SimpleTwitterScraper 패키지를 이용해 트윗 데이터를 다운로드 하고 해당 파일을 data/YYYY-MM-DD.json 로 저장한 후 감성분석을 시행한 결과를 results/YYYY-MM-DD.json 에 저장한다.

구동 순서 및 결과

구동 순서

  1. 트위터 데이터 수집(SimpleTwitterScraper 사용)
  2. 형태소 분석기 서버 실행
  3. 감성 분석기 실행
  4. 분석된 결과를 R을 이용해 그래프 그리기

결과

  • 문재인 키워드의 감성 추세를 나타내는 sentiment 그래프
  • 문재인 키워드의 이슈 정도를 나타낸 issue 그래프

사용 방법

설치 전 필요사항

설치

npm install -g korean-sentiment-analyzer

형태소 분석기 서버 실행

konlpy 패키지를 설치한 후 형태소 분석기 실행 (python 3.x 버전에서 테스트 완료 하였음)

형태소 분석기는 처음 실행 시 형태소 데이터를 가져오는 시간이 많이 걸리기 때문에 한번 구동 후 계속 사용할 수 있도록 서버-클라이언트 구조로 구현하였다.

pip3 install konlpy
ksa-server localhost 7000

트위터 감성 분석 실행

pip3 install konlpy
pip3 install JPype1
ksa-client localhost 7000 2017-01-01 2017-02-01 ./sourceDir ./targetDir
  • localhost : 서버 호스트 이름.
  • 7000 : 서버 포트 번호.
  • 2017-01-01 : 시작 날짜
  • 2017-02-01 : 끝나는 날짜
  • ./sourceDir : 날짜별 트윗 데이터(YYYY-MM-DD.json)가 있는 디렉토리 위치 (날짜별 트윗 데이터 수집 방법 참조)
  • ./targetDir : ./sourceDir 의 트윗 데이터를 감성 분석한 후 감성 데이터와 함께 저장되는 파일의 디렉토리 위치.(파일명 동일)

날짜별 트윗 데이터 수집 방법

이 패키지는 SimpleTwitterScraper 으로 수집한 트윗 데이터를 필요로 한다. 수집 트위터 데이터 구조와 실행 방법은 해당 패키지 참조.