2017년 상반기 블로깅 회고를 위한 텍스트마이닝 (1) 실패로그

2017년 상반기 블로깅 회고를 위한 텍스트마이닝 (1) 실패로그

Summary:

파이썬을 이용해서 내 블로깅 습관을 알아보자!


‘상반기 회고’ 하고싶다

상반기 회고가 조금 많이 늦었다. 올해 3월에 블로그 작심백개 포스팅 후기를 쓸 때까지만 해도 6월 쯤엔 포스팅 200개를 달성하고 회고록을 남길 자신이 있었던 것 같은데 오늘(9월 11일) 기준 169번째 글을 쓰고 있다. 초기에 비해 글 하나 당 들이는 시간이 많아지고 생각하는 정도가 깊어진 건 칭찬할 일이지만, 그와 동시에 힘이 많이 들어가고 가볍게 커밋 하나 하기가 어려워졌다.

그래도 올해가 가기 전에 중간 점검은 하고 가야겠다. 내가 연초의 다짐을 잘 이어가고 있는지, 나의 관심사가 변했는지, 내 글쓰기 습관은 어떤지 궁금했다. 그리고 이번엔 정량적인 결과치를 얻고 싶었다. 이왕이면 좋아하는 파이썬을 이용해서!


알고 싶은 것

  1. 내가 어떤 키워드에 관심이 많았는가? 내가 다뤘던 핵심 이슈는 무엇인가?
  2. 그 키워드들에 내가 어떤 수식어를 덧대었는가?
  3. 특정 키워드가 시간의 흐름에 따라 나타났다가 사라지는가?
  4. 글을 주기적으로 썼나?
  5. 나의 글쓰기 리듬은?
  6. 분량은 일정한가? 바뀌나?
  7. 각 포스팅이 내가 정한 카테고리 외의 기준으로 그룹지어질 수 있을까?
  8. 나는 문장을 길게 쓰는 편인가?
  9. 카테고리 별 포스팅 빈도, 주기는?
  10. 포스팅 커밋을 가장 열성적으로 하던 때는 언제인가?
  11. 포스팅 커밋을 가장 오랫동안 안 한 때는 언제인가?
  12. 나의 글쓰기 체력을 고려했을 때 앞으로 어느 정도 간격과 분량으로 포스팅하는 것을 목표로 잡아야 할까?

파이썬을 이용한 텍스트마이닝

파이썬을 통한 데이터 분석이 대중화되어가는 만큼 위 10가지 궁금증을 파이썬으로 알 수 있지 않을까?

텍스트 마이닝: 비정형 데이터 마이닝(여기부터 문제. 비정형은 아무나 건드리는 거 아니랬는데..)의 유형 중 하나로, 텍스트로부터 유의미한 정보를 얻는 과정을 말한다. 입력된 텍스트를 구조화시킨 후 패턴을 도출하여 결과를 해석하는 행위이다.

KoNLPY로 텍스트 분석하기 첫번째 시도

KoNLPY(코엔엘파이)는 한국어 텍스트를 분석할 때 쓰는 파이썬 모듈로, 쉽게 말해 한글 형태소 분석기다.

파이썬을 이용한 텍스트 마이닝 기법 중 단어 사용 빈도를 계산해주는 코드를 발견했다. 이 코드를 응용하면 첫 번째 궁금증을 해결할 수 있을 것 같았다. [데이터 분석] 파이썬으로 특정 키워드를 포함하는 신문기사 웹크롤링 & 워드클라우드 시각화 분석 - 4Python(파이썬) 명사 분리 추출 후, 단어 사용 빈도 계산기(Web Cralwer) 글을 보고 시키는 대로 해봤다.

코드

from konlpy.tag import Twitter
from collections import Counter

def get_tags(text, ntags=50):
    spliter = Twitter()
    nouns = spliter.nouns(text)
    count = Counter(nouns)
    return_list = []
    for n, c in count.most_common(ntags):
        temp = {'tag': n, 'count': c}
        return_list.append(temp)
    return return_list


def main():
    text_file_name = "out.txt"
    noun_count = 20
    output_file_name = "count.txt"
    open_text_file = open(text_file_name, 'r',-1,"utf-8")
    text = open_text_file.read()
    tags = get_tags(text, noun_count)
    open_text_file.close()  
    open_output_file = open(output_file_name, 'w',-1,"utf-8")
    for tag in tags:
        noun = tag['tag']
        count = tag['count']
        open_output_file.write('{} {}\n'.format(noun, count))
    open_output_file.close()

if __name__ == '__main__':
    main()

실행결과

그럼 그렇지..


ImportError: No module named tag란다. KoNLPY가 제대로 설치되지 않아서 이런 오류가 나나 싶어 홈페이지에서 시키는 대로 다운받아보고, 오류메세지를 구글링해보기도 하고, 컴퓨터를 껐다 켜보고, 코엔엘파이를 지웠다가 깔아보고, jpype 세팅을 다시 해보고, numpy도 깔아보고.. 구글 검색결과에 있는 사람들이 해본 건 다 해봤다.


KoNLPY로 텍스트 분석하기 두번째 시도

알고보면 별 문제 아닌 거 같은데… 왜 이럴까.

konlpy 설치 문제가 맞는지 파이썬 실행코드 문제인지 알기 위해 다른 코엔엘파이 형태소분석 실습 예제를 가지고 터미널에서 실행해봤다. KoNLPY 실습 - 형태소 분석 및 품사 태깅에서 가져왔다. 아까보다 더 간단한 예제다.

코드

from konlpy.tag import Twitter

sentence = '아버지가 방에 들어가신다.'
twt = Twitter()
tagging = twt.pos(sentence)
tagging

실행결과

이것 마저 배신


ImportError: No module named 'konlpy.tag'; 'konlpy' is not a package

이번엔 konlpy가 패키지가 아니라고 한다. 두 가지 에러 메세지를 구글에서 아무리 뒤져봐도 나와 똑같은 오류를 겪은 사람을 찾기가 어렵다. 대부분 자바 관련해서 부딪치던데 흠. 분명 큰 문제가 아닐 것 같은데.. 뭐 하나 살짝 바꾸면 금방 없어질 것 같긴 하다. 며칠만 더 삽질해보고 파이썬 고수에게 물어봐야겠다.


삽질하면서 얻은 자료들

텍스트 마이닝 활용 사례

텍스트 분석(with. Python) 관련 자료

자바, 미안하다! 파이썬 한국어 NLP from Eunjeong (Lucy) Park


자습해도 모르겠던 딥러닝, 머리속에 인스톨 시켜드립니다. from Yongho Ha

Hyeyeon

A Blog about E-Commerce and Product Management

comments powered by Disqus

    rss facebook twitter github youtube mail spotify instagram linkedin google google-plus pinterest medium vimeo stackoverflow reddit quora