pixivのイラスト検索の結果を使う(その3)
つづきのつづき
概要としては,
pixivのイラストにつけられてるタグが共起してたら関係ありそうだし,ネットワークを描いてみよ
といった流れ
pixivの野良apiから「艦これ」検索結果のイラストをとってきて,タグ共起を計算
一定以上のjaccard係数の組でエッジを形成し,ネットワークにしました
前回からの変更点
・ビスマルク取れてなかったのを解決
単純に艦娘名の辞書に,「Bismarck」で登録していてマッチングしなかったのが問題
・《艦娘名》(艦隊これくしょん) をマッチングするように修正
タグとの照会時に,(艦隊これくしょん)を正規表現で削除するだけのお仕事
・タグ共起からネットワークのエッジ形成の判断に,jaccard係数の他に,simpson係数を導入
エッジ形成の閾値条件を,
jaccard > =0.1 or (jaccard >= 0.05 and simpson >= 0.1)
とした
以前のように,jaccard係数のみで判定を行うと,
投稿数の多いキャラ同士のペアが密になる傾向にあった
例えば,赤城と加賀のような組は,共通集合(イラスト)が多く,エッジが形成される
しかし,赤城と吹雪の組を考えた場合,検出されない
吹雪タグがついたイラストは赤城と比較して相対的に低いため,
2つの和集合(=分母)が大きくなるが,共通集合(=分子)が小さくなることが原因
simpson係数を導入すると,分母が2つの集合のうち小さい方になるので,この問題が解決される
各係数の詳細に関しては,
集合とかベクトルの類似度の計算のメモ - 唯物是真 @Scaled_Wurm
などを参照頂けると良いかと
・コミュニティ検出を導入
形成したネットワークに対して,コミュニティ検出アルゴリズムをかけて色分けした
コミュニティ検出は,python-louvainで
アルゴリズムの中身はちゃんと理解してない そのうち覚えないと・・・
色々やった結果が次の通り
二航戦コンビとか,独立してたペアは除外してます
エッジがごちゃごちゃしてて見ずらいっすね・・・
ある程度まとめるレイアウトにしたのだけど,
エッジがどこを通ってるのかわかりにくいので反省
色々思ったこと
・吹雪周りが完全にアニメ関係のエッジ
・アニメの主要3人(吹雪,睦月,夕立)間にエッジはあるが,別コミュニティ
・金剛型と第六駆はやっぱり密
・駆逐艦は同型艦等のコミュニティがよく見られる 十七駆と十六駆とかいいっすね
・潜水艦コミュニティ内に,天城と香取
ラストのは,おそらくイラストの母数が少ない影響で,
同時期に実装された名残があるのだと思う
一定期間ごとでネットワークを形成し,その期間ごとの動的変化を見ると面白そう
後,コミュニティ検出の際にエッジ重みを考慮してないので,そこを直すともうちょい結果が変わるかも
色々やった所感としては,閾値の設定がトライアンドエラーで,非常に面倒くさい
その辺をうまく自動化できないものか