Skip to content

DTM(Dynamic Topic Model)を用いてはてなブックマークを時系列トピック解析します.

License

Notifications You must be signed in to change notification settings

KenshoFujisaki/AnalyseHatenaBookmarkDTM

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 

Repository files navigation

AnalyseHatenaBookmarkDTM

はてブ記事を用いた興味分析の DTMによるトピック解析のためのスクリプトです.
事前にデータの準備が完了していることを前提とします.

本スクリプトにより,これまでに自身が登録したはてブについて,以下のような時系列トピック解析結果を出力できます.

  • トピック割合の時系列推移(積み上げ).対象トピックに対する興味の盛衰と興味の累積を確認できます. DTMによるはてブのトピック解析結果
  • トピック内における語彙割合の時系列推移.対象トピックに対する興味の変化を確認できます. DTMによるはてブのトピック解析結果

事前準備

MacOSX環境を前提に説明します.

  1. 解析対象のはてブ記事群のデータ準備
    データの準備に従って,はてブ記事群をMySQLに登録します.

  2. DTMのインストール
    David M. Bleiの"Topic modeling software"から"dtm"をダウンロードし,バイナリを「./DTM/main」となるように配置します.具体的には次のような手順を行います.

    $ wget https://princeton-statistical-learning.googlecode.com/files/dtm_release-0.8.tgz
    $ tar xvf dtm_release-0.8.tgz
    $ cd dtm_release/dtm
    $ brew install gsl
    $ make
    $ cp main ../../
    $ cd ../../
    $ rm -Rf dtm_release*
  3. R, Rパッケージ("ggplot2", "bursts")のインストール

    $ brew install R
    $ R
    > install.packages("ggplot2")
    > install.packages("bursts")
    > quit()

使い方

  1. DTMの入力ファイルの作成

    $ cd ./DTM
    $ ./mkdtminput.sh [from_date] [to_date] [interval_month] [dtm_input_name]
    • [from_date]と[to_date]には,それぞれ解析対象の開始日と終了日を指定します.例えば,[from_date]に「2008-04-01」を,[to_date]に「2015-01-01」を指定すると,2008-04-01から2015-01-01までのはてブを対象に解析します.
    • [interval_month]には,時間窓の幅を月で指定します.例えば,「3」を指定すると,3ヶ月区切り(2008-04-012008-06-30, 2008-07-012008-09-30, 2008-10-01~2008-12-31,...)で解析します.
    • [dtm_input_name]には,DTM入力名(=mkdtminput.shにおける出力名)を指定します.例えば,「./dtm_input/sample」など.
    • 例えば,$ ./mkdtminput.sh 2010-04-01 2015-01-01 3 ./dtm_input/sample3のように実行します.
  2. DTMの実行

    $ cd ./DTM
    $ ./dtm.sh [dtm_input_name] [dtm_output_name] [number_of_topics]
    • [dtm_input_name]には,1.で作成したDTM入力名を指定します.例えば「./dtm_input/sample」など.
    • [dtm_output_name]には,DTM出力名を指定します.例えば「./dtm_output/sample」など.
    • [number_of_topics]には,トピック数を指定します.例えば,「50」など.
    • 例えば,$ ./dtm.sh ./dtm_input/sample ./dtm_output/sample 50のように実行します.
  3. DTMの実行結果の可視化

    $ cd ./DTM
    $ ./parseresult.sh [dtm_output_name] [number_of_topics] [number_of_top_terms] [number_of_top_topics]
    • [dtm_output_name]には,2.のDTM出力名を指定します.例えば「./dtm_output/sample」など.
    • [number_of_top_topics]には,2.のトピック数を指定します.例えば,「50」など.
    • [number_of_top_terms]には,出力する上位の語彙数を指定します.例えば,「30」など.
    • [number_of_top_topics]には,出力する上位のトピック数を指定します.これは[number_of_topics]以下の値にする必要があります.例えば,「40」など.
    • 例えば,$ ./parseresult.sh ./dtm_output/sample 50 30 40のように実行します.
    • 結果は「./DTM/[dtm_output_name]/visualize/」に出力されます.出力ファイルは以下の2種類があります.本READMEのはじめの画像がこれに当たります.
      • topic_propotion.pdf : トピック割合の時系列推移(積み上げグラフ).対象トピックに対する興味の盛衰と興味の累積を確認できます.
      • topic[トピック番号]_topTerm.pdf : トピック内における語彙割合の時系列推移.対象トピックに対する興味の変化を確認できます.

About

DTM(Dynamic Topic Model)を用いてはてなブックマークを時系列トピック解析します.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published