グラフの修正

 前回作成したグラフを修正し、全てのポスターについて、各トピックへのエッジを分類確率に応じた長さでひいて、ポスターがグラフ全体でどのように配置されるのかを確認してみました。

 各トピックを示すノードに向かってエッジをひくのですが、全てのトピックへのエッジを描画するとグラフが汚くなるので、分類確率の上位2つまでのトピックに線を引き、他は線を作成しても見えないように設定しました。
 このためには、Graphvizの「style」の項目を「invis」に設定すれば良いようでした。Gvizでは、

@gv.edge :"p#{host_poster}_t#{topic_id}", len:(1.0-theta), style:"invis"

と記述して設定できました。
 これでグラフを作成しましたが、各ノードがトピックに対する位置関係のバランスを保ちながら配置されました。この後グラフの見せ方を調整し、トピックを表すノードを色線で囲ったり、各ノードの色を、分類確率が高ければ濃い色、低ければ薄い色になるように記述しました。

@color_list = ["purd6", "blues6", "greens6", "purples6", "oranges6"]

@gv.node :"t#{topic_id}", label:"T#{topic_id}", colorscheme:@color_list[topic_id-1], color:4, style:"bold", penwidth:5

color_number = (vector[0][1]*5).to_i
color_name = @color_list[vector[0][0]- 1]
@gv.node :"p#{host_poster}", label: "#{host_poster}:#{@poster_author[host_poster]}", colorscheme:color_name, color:color_number

といったように設定しました。
 以上まででグラフは作成できるようになったので、今後はトピック解析にかける単語やパラメータを調整して、グラフの出力がどう変わるかを確認していこうと思います。
 また、最終的なグラフ図として、各トピックに分類された単語のリストものせたファイルをkeynoteで作成していきました。後はこのグラフをどのように作成したのか、簡単なDocumentを下に配置しようかと思っています。