岡三マンは何人で構成されているか自然言語処理で解析してみた
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)
すると、このような結果が得られました。
height-1000で切ると4本線、height-2000で切ると3本線になります。
執筆数のバランスを考えると4人執筆の可能性が高いか。一人がメインで頑張っているとすると3人の可能性があります。
本来はこのあとクラスタリングされたtweet内容を精査していくのですが、今回はそこまでしておりません。
今回は簡略化のため分析対象を「助詞」「助動詞」「記号」に留めましたが、「動詞」「形容詞」を含めてもいいでしょう。
あと、こういった執筆者判別には投稿時刻、投稿曜日を分析する「タイムスタンプ解析」を組み合わせると精度がさらに上がります。今回は自然言語処理ということでそちらのほうには手を出しませんでしたが、実務でやるときにはそのあたりも視野に入れるとよいでしょう。
ビジネスに関するクラスタリングについて知りたければこちら、
データサイエンティスト養成読本 機械学習入門編 (Software Design plus)
Rを用いた自然言語処理に興味があればこちらの書籍を参考にしてください。
Rによる機械学習入門
こちらの本を読んでみました。
一言で言うと「詰め込み過ぎ」。
どれくらいギュウギュウかというと、第7章が「仮説検定」なんですが、
・仮説検定の枠組み
・ノンパラメトリック検定
・分散分析
このそれなりにボリュームのある3つの話題がたった14ページで解説されています。キツい。全ての章がこんな感じです。
内容解説には「ていねいに解説」とありますが、「数式を多用し解説を端折り過ぎている」と言った方が適切です。
正直これで独学するのは難しいでしょう。内容は充実しているので、どちらかというと教科書的に使用する、十分な知識を持った教師が解説しながら何回かに分けて読み解いていく、という使い方が適切だと思います。
Rプログラミング本格入門: 達人データサイエンティストへの道
いい本だったのでご紹介。
Rプログラミング本格入門: 達人データサイエンティストへの道
「本格入門」とありますが「入門」ではなく「本格」派です。初心者向きではありません。内容紹介でも「中級者へ向けて書いた入門書」と書かれてあり「それは入門書ではないのでは……?」という気がします。実際にRを使って既に何度か頭を打った人向けです。
第2章の「基本的なオブジェクト」で既に「あ、そーなの?」みたいな話がいっぱいありました。Rの基本的なオブジェクトである「ベクトル、行列、配列、リスト、データフレーム、関数」の6つをこれだけ理解できているひとはそんなにいないんじゃないでしょうか。
あとは第8章「Rの内部を覗く」も良かった。遅延評価、コピー修正、レキシカルスコープ、環境について解説しています。特にレキシカルスコープは自分でRの関数を作る人のハマりどころ。なかなか思った通りの挙動をせず苦しめられた人も多いのでは。この章を読むとだいぶ見通しが良くなると思います。
「初心者が実践的に学ぶ」とは? ~専門家の誤謬~
岩波データサイエンス刊行委員会メンバーによる連続する2つのツイートを見ていただきましょう。
「ベイズ統計を基礎から学ぶ」というと (1)スパムフィルタとかのナイーブベイズ近似をベイズの代表と思う (2)主観確率の公理に詳しくなる (3)無情報事前分布の通になる (4)特異モデルや漸近論を過度に重要視する,などが連想されますが,いずれも「初心者が実践的に学ぶ」とはずれるような気がします
— baibai (@ibaibabaibai) 2018年1月16日
実践的にベイズを使うとすると「小地域推定のようなサンプルの異質性に階層モデルに対応する」「ランダム効果や過分散に混合モデルで対処する」「時間を入れて状態空間モデル」というのが押さえるべき三大トピックのように思います.あとは空間モデル・欠測・有限混合分布かな. https://t.co/bRC6hLpSAL
— baibai (@ibaibabaibai) 2018年1月16日
最初のツイートは「初心者が実践的に学ぶ」の話をしています。
ところが、それを受けたはずの2つ目のツイートは完全に「実践的にベイズを使う」話になっています。
正直、2つ目のツイートの内容は全く初心者向けではありません。
「実践的」かつ「押さえるべき三大トピック」なのは確かですが、これがすんなりと理解できる初心者はいないでしょう。
専門家はこういう間違いをやりがちです。
つまり、自分が初心者だったころのことをまるで覚えていないかのように振る舞うのです。本人は初心者向きの話をしているつもりでも、実際のところは全く初心者向きではない(もしかすると、本当に頭が良くて初心者時代が無かったのかもしれませんが)。
ベイズモデリングの世界
まだ刊行されてはいませんが、『ベイズモデリングの世界』はおそらく初心者向きではなく、「最先端の研究者から見た俯瞰的な状況解説」になっていると思われます。
初心者がこの本を読んでも「何が書いてあるかほとんどわからない……」となるでしょうから、手を出すのは他のベイズ入門書を読んでからの方が良いと思います。入門書の紹介はあるみたいなのでそこだけ読むのも手かもしれません。
「科学技術立国」は幻想なのではないか?
CS、特に機械学習系の研究室はまだ企業とのつきあいが多く優遇されていますが……。
今、「日本の科学にお金が落とされていない」という話が噴出しています。
「このままでは科学技術立国を堅持できない」という日経新聞の記事もありました。
私は、これは逆だったのではないかと考えています。
「日本は科学技術によって経済的に潤った」
のではなく、
「日本に経済的余裕があったから科学技術に投資できた」
だけではないか、ということです。
つまり、「朝鮮戦争から始まる特需によって科学技術部門に投資できた」だけであって、「科学技術部門への投資によって高度経済成長が発生した」わけではないのではないかと考えています。
「科学技術」によって「立国」したのではなく、「立国」によって「科学技術」が発展した。
上の記事ではノーベル賞を取り上げていますが、それでいくと「ノーベル賞を取れるような研究をしたから経済が発展した」のではなく、「経済が発展したからノーベル賞を取れるような研究ができた」ということです。
この理論に従うと、今後中国がノーベル賞の数が増えていき、日本は減っていくと思われます。
なぜなら、中国は経済的に豊かであり、日本は相対的に貧しくなっていくからです。
「科学技術」に投資することが「経済の活性」に繋がらないのであれば、「科学技術」に投資せず「経済の活性」に投資したほうが良いということになります。なぜなら、経済が活性して初めて「科学技術」に投資されるからです。
統計的因果推論に足を踏み込むと、どうしてもこういった、「今まで思い込んでいた原因と結果が実は反対ではないか」ということを考えてしまいます。