見出し画像

ネット上の怖い話をトピックモデルで自動分類してみた(1)

皆さんは怖い話は好きでしょうか?
ぼくは怖い話が大好きで、ネット上の有名な怖い話はだいたい既読という状態です。コトリバコとか八尺様とかクネクネとか、そういうやつです。

今回はテキスト分析の練習台として、自分がよく知っている文書集合である「ネット上の怖い話」を対象にして文書の自動分類にトライしてみました。ゆくゆくは自動生成とかもやってみたいのですが、まずは分類です。

今回トライしたのは、LDA(潜在的ディリクレ配分法)を用いたトピックモデルによる分類です。解説が目的ではないのでものすごくいい加減にまとめると、次のような感じです。

● 文書にはトピック(主題、話題)があって、トピックから確率的に生じる単語によって文書が生成されると仮定する。
● 文書は複数のトピックを持つ(ただしトピックごとに重みが違う)と仮定する。
● 上記のように仮定したとき、与えられた文書のデータセットを最も生み出しそうないい感じのトピックの集合(モデル)を最適化計算によって推定する。
● そうやって推定されたトピックのモデルを使って文書を分類する。

文書のデータセットは2chオカルト板の「死ぬ程洒落にならない怖い話を集めてみない?」スレッドに投稿された14,000件の怖い話を使いました。一昔前に趣味のために集めていて自分のPCの中に溜め込まれていたものです。

それを分析するための準備としてクレンジングというなかなかやっかいな作業があったのですが、ここでは割愛します。とりあえず、なんとかして分析に堪えうるデータセットを用意しました。全部怖い話です。

とにかく、結果を見てみましょう。下の図は14,000件の怖い話から推定した30個のトピックです。各トピックに含まれる語をワードクラウドという方法で表示しました。大きく表示されている単語ほどそのトピックの文書によく現れると思えばだいたいOKです。

wordcloud_ページ_1

wordcloud_ページ_2

wordcloud_ページ_3

wordcloud_ページ_4

wordcloud_ページ_5

さすがに怖い話1.4万件から生成しただけあって、なかなか不穏な言葉が多くて恐ろしいですね。

Topic 3 の顔・鏡・恐怖…や Topic 5 の霊・幽霊・呪い…などは誰が見ても、いかにも怖い話っていう感じがします。

Topic 16 の箱・娘・屋敷…や Topic 23のおっさん・おじさん・ホテル…などはあまり知らない人が見たらピンとこないかもしれませんが、箱にまつわる怖い話や、旅先で見知らぬおっさんを見かけるところからはじまる怖い話は、洒落怖民には馴染みの深いものです。

他にも10個のトピックに分けた場合と100個のトピックに分けた場合もやってみたのですが、30個の場合が一番しっくりきました。上記の30個のトピックにはそれぞれタイトルをつけることができそうです。

いくつのトピックに分けるといいのかはちょっと難しい問題で、本来ならディリクレ分布のハイパーパラメータとかを見ながらいろいろ考えたりします。しかし今回は「良く知っているテーマだったから、適した分割になっているのかどうかが分かる」という状況だったので、その辺はスキップできました。これが練習台として洒落怖を選んだ理由です。

次の回では、新しい文書がどの怖いトピックに分類されるかなどを見てみます。


 

この記事が気に入ったらサポートをしてみませんか?