Mecab에서 자신의 트윗을 형태소 해석하고 빈번한 일반 명사를 나열합니다.

소개



[아카데메이아]자연언어처리공부회 #1에 참가했습니다.
여기 공부회에서는,
- 자연 언어 처리의 기초
- 비즈니스의 활용 사례
- 실습
학습하고 실시했습니다.

실습에서는 개인적으로, 자신이 트윗하고 있는 워드에는 어떠한 것이 많은가를 보았습니다.

내 트윗 다운로드



트위터 사용자 정보에서 모든 트윗 기록을 신청할 수 있습니다.
제 경우에는 신청 후 몇 분 안에 다운로드 링크가 전송되었습니다.

Mecab 설치



아래를 참고로 설치했습니다.
MeCab: Yet Another Part-of-Speech and Morphological Analyzer

Mac이라고 문자 깨져 버리는 것 같기 때문에, 하기도 참고로 했습니다.
UTF-8 설정이 필요한 것 같습니다.
Mac에 Mecab 설치 (2013.3)

쓸데없는 열 삭제



다운로드한 트윗 데이터 중 게시 내용 열만 남겨두고 다른 항목은 삭제했습니다. (투고 일시 등)

mecab로 형태소 분해



terminal에서 다음 명령을 실행하고 각 게시물을 형태소로 분해했습니다.-E ""는 트윗 당 EOS를 제거하는 옵션,-F "%m,%H\n"는 출력 형식을 설정하는 옵션입니다.
mecab tweets.csv -o mecab_tweets.txt -E "" -F "%m,%H\n"

옵션에 대해서는 아래를 참고로 했습니다.

MeCab의 명령 행 인수 목록과 실행 예

아래와 같이 트윗을 분해한 것을 얻을 수 있습니다.
今日,名詞,副詞可能,*,*,*,*,今日,キョウ,キョー
の,助詞,連体化,*,*,*,*,の,ノ,ノ
エンジニア,名詞,一般,*,*,*,*,エンジニア,エンジニア,エンジニア
飲み,動詞,自立,*,*,五段・マ行,連用形,飲む,ノミ,ノミ
会,名詞,接尾,一般,*,*,*,会,カイ,カイ

파이썬으로 집계하기



아래와 같이 형태소 해석한 것 중 일반 명사만 추출한 후 집계했습니다.
너무 잡아서 고마워.

sample.py
import pandas as pd

col_names = ['c{0:02d}'.format(i) for i in range(8)]

# ツイートデータの読み込み
tweet = pd.read_csv('mecab_tweets_only.txt',names=col_names)

# 一般名詞のみ抽出
tweet_meishi_ippan = tweet[tweet.c01 == '名詞'][tweet.c02 == '一般']

# c07には単語の原形が入っている(名詞については、辞書登録されているもののみ単語が入る?)
tweet_meishi_ippan_sort = tweet_meishi_ippan.groupby('c07')[['c07']].count().sort('c07',ascending=False)


집계 결과



아래와 같은 결과가 되었습니다.
(처음의 별표는 쓰레기입니다.)
tweet_meishi_ippan_sort

    c07
c07 
*   37147
人 807
自分  439
月 256
ゲーム   166
会社  163
(以下略)


시각화



공부회에서는 워드와 그 카운트수로 비주얼라이즈할 수 있는 스크립트를 배포해 주셨습니다.
그것을 사용하여 시각화 한 것이 여기.


게임, 만화, 영화 등 자신의 흥미있는 단어가 표현되어 좋았습니다.

고마워요.

좋은 웹페이지 즐겨찾기