はじめに
[アカデメイア]自然言語処理勉強会 #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"
オプションについては下記を参考にしました。
下記のように、ツイートを分解したものが取得できます。
今日,名詞,副詞可能,*,*,*,*,今日,キョウ,キョー
の,助詞,連体化,*,*,*,*,の,ノ,ノ
エンジニア,名詞,一般,*,*,*,*,エンジニア,エンジニア,エンジニア
飲み,動詞,自立,*,*,五段・マ行,連用形,飲む,ノミ,ノミ
会,名詞,接尾,一般,*,*,*,会,カイ,カイ
Pythonで集計する
下記のように、形態素解析したもののうち一般名詞のみ抽出した上で集計しました。
雑すぎてゴメンなさい。
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
(以下略)
ビジュアライズ
勉強会ではワードとそのカウント数でビジュアライズできるスクリプトを配布いただきました。
それを用いてビジュアライズしたものがこちら。
ゲーム、漫画、映画など、自分の興味のあるワードが表現されていたので良かったです。
ありがとうございました。