北野坂備忘録

主にインストールやプログラミングのメモを載せています。

岡三マンは何人で構成されているか自然言語処理で解析してみた

Twitterで有名な「岡三マン(@okasanman)」は複数人執筆説があります。
twitter.com

そこで、本稿では統計解析環境「R」を用いて岡三マンが何人で執筆されているのか分析してみました。

今回は 2018/03/08 から 2018/03/18 までの 796tweet を分析対象とします。

分析にはRのライブラリ「RMeCab」を用いました。
この中の docMatrix()関数を用いるのですが、デフォルトでは名詞、動詞、形容詞のみを抽出するようになっています。
しかしながらtweetは短いので同じ名詞が出てくる可能性は極めて低く、あまり役に立ちません。
そこで今回は、本人判別でよく用いられる「助詞」「助動詞」と、句読点にも着目して「記号」を抽出することにしました。

library(RMeCab)
res <- docMatrix("okasand", pos = c("助詞","助動詞","記号"))

okasandはテキスト化された796tweetが全部入ったディレクトリです。

今回はward法でクラスタリングします。
(こちらの記事を参考にしました。)
RによるTwitterユーザーのクラスター分析 | 浅草橋のペンギン

okasanclust <- hclust(dist(t(res)), "ward.D")

結果をプロットしていきます。

plot(okasanclust)


すると、このような結果が得られました。
f:id:kenichia:20180321105157p:plain

height-1000で切ると4本線、height-2000で切ると3本線になります。
執筆数のバランスを考えると4人執筆の可能性が高いか。一人がメインで頑張っているとすると3人の可能性があります。

本来はこのあとクラスタリングされたtweet内容を精査していくのですが、今回はそこまでしておりません。
今回は簡略化のため分析対象を「助詞」「助動詞」「記号」に留めましたが、「動詞」「形容詞」を含めてもいいでしょう。
あと、こういった執筆者判別には投稿時刻、投稿曜日を分析する「タイムスタンプ解析」を組み合わせると精度がさらに上がります。今回は自然言語処理ということでそちらのほうには手を出しませんでしたが、実務でやるときにはそのあたりも視野に入れるとよいでしょう。


自然言語処理クラスタリングに関して学びたければこちら、


言語処理のための機械学習入門 (自然言語処理シリーズ)


ビジネスに関するクラスタリングについて知りたければこちら、


データサイエンティスト養成読本 機械学習入門編 (Software Design plus)


Rを用いた自然言語処理に興味があればこちらの書籍を参考にしてください。


Rによるやさしいテキストマイニング: 機械学習編