うまい飯食いたい

うまい飯食えるようにガンバリマス

仕様変更したpixiv公式APIを扱う

以前、非公式のpixivAPIが使えなくなったと言いましたが、
理由としては春に公式APIの仕様変更があったためらしいです

この辺を参照に
PHP - pixivのAPIにアクセスする - Qiita

また、よく探してみると、APIラッパーがあったので使ってみることに
upbit/pixivpy · GitHub

from pixivpy3 import PixivAPI

def search_pixiv(word)
    api = PixivAPI()
    api.login('username', 'password')

    PER_PAGE = 500
    
    i = 1
    while 1:
        results = api.search_works(word, page=i, per_page=PER_PAGE, mode='tag')
        
        for illust in results.response:
            print illust['title']

        p = results.pagination
      
        if p['next']:
            i = p['next']
            time.sleep(1.5)
        else:
            break

大体こんな感じ 待機時間は適当です
ただ、検索によってアクセスできるのは、検索上位20000件までなので、
その辺はうまくやる必要があります

ヒット数が40000件までなら、ソートオプションで降順・昇順の両方で検索すれば扱えます
しかし、例えば「艦これ」だと30万件ほどありますので、
艦これ AND (艦娘名)」を検索ワードとして今のところやっています

前回は、データ数が40000件程度しかなかったのですが、今度はより詳細な解析ができそうで楽しみです

スナップショット検索APIから収集したデータでなんかする

 

前回の続きというか、本編というか

前みたいに共起でネットワークでもよかったんだけど、その前に基礎的な解析をやることに

 

集まったデータ

艦これ」OR「艦隊これくしょん」で収集した動画データ数
64383 (9/12時点 以下の解析もこのデータに基づいています)
 
次のグラフは、月ごとの動画数の遷移
 f:id:calderarie:20150912152500p:plain

サービス開始は13年4月ですが、動画がなかったので13年5月から始まっています。
厳密には、13年4月以前の動画も含まれるんだけれど、ゲームとは直接的に関係がないので除去

グラフを見ると分かりますが、定期的に動画数が急増する山が見られます
プレイヤーの方なら、グラフから予想つくかもしれませんが、
それぞれイベントの時期に対応しています

ここでは詳細なデータを出しませんが、全期間を通してよく出てくるタグとして、
「ゲーム」「MMD艦これ」に続き「実況プレイ動画」などが頻出するため、妥当な結果と言えるでしょう
また、各月ではイベント名のタグが多く見られます
(2014年8月なら「AL/MI作戦」など)

 

艦娘のタグ付け数

全期間での艦娘名のタグ数をカウントした結果が次の表です 

順位 艦娘 タグ数
1位 金剛 1342
2位 島風 1241
3位 吹雪 823
4位 那珂 712
5位 689
6位 時雨 684
7位 夕立 682
8位 榛名 652
9位 大和 645
10位 赤城 554

大体納得の結果 やっぱ、金剛・島風は強い(確信)
あと、マイラブリーエンジェル夕張ちゃんは46位でした・・・

月ごとの変化を見てみます

順位 2013年8月 2013年12月 2014年4月 2014年8月 2014年12月 2015年4月 2015年8月
1位 島風 金剛 大和 金剛 プリンツ・オイゲン 吹雪 金剛
2位 金剛 島風 金剛 島風 金剛 島風 時雨
3位 鈴谷 ビスマルク 時津風 時雨 夕立 摩耶
4位 那珂 矢矧 赤城 島風 金剛
5位 那珂 熊野 島風 川内 叢雲 プリンツ・オイゲン
6位 時雨 赤城 武蔵 大和 ビスマルク 時雨 阿武隈
7位 大和 雪風 那珂 叢雲 那珂 吹雪
8位 天龍 加賀 赤城 神通 龍驤 川内 榛名
9位 伊168 長門 五十鈴 春雨 秋月 速吸
10位 北上 大鳳 比叡 大和 大和 夕立

全体を通して、金剛強すぎw
その他にぱっと見でわかることとして、
大鳳(2013年12月実装)やビスマルク(2014年3月実装)、時津風(2014年8月実装)など、
実装直後は上位へ入ってくる傾向が見られます
(阿武隈など、改二も同様の傾向)

それ以外に、色々と特徴的なのが矢矧
2014年3月時点ではTOP10に入っていない矢矧ですが、
翌月2014年4月には4位へとランクインしています
原因を調べてみると、2014年4月から矢矧を始め、阿賀野型のMMD動画が多数見られます
遡ってみると、どうやら矢矧のMMD配布が影響しているらしい

矢矧有する阿賀野型と大和有する大和型のタグ数変化です
f:id:calderarie:20150912175102p:plain
同時期に大和のモデル配布も行われていることから、矢矧と大和の史実上の関係からの動画作成や、
姉妹艦のモデル作成などの効果で、タグ数が伸びている側面が見られます
(酒匂は2014年4月実装なので若干ズレが見られる)

このような傾向は、2014年8月の川内型3姉妹や2015年8月の摩耶にも同様の現象が見られ、
フリーのMMDモデル配布が、その艦娘の動画数の増加に寄与していることがわかります。


2015年4月に、吹雪が増えているのは、アニメの影響です
2014年12月~2015年4月の変動を見ると、よくわかります

順位 2014年12月 2015年1月 2015年2月 2015年3月 2015年4月
1位 プリンツ・オイゲン 如月 吹雪 吹雪 吹雪
2位 金剛 吹雪 鈴谷 夕立 島風
3位 時雨 金剛 大和 金剛 夕立
4位 島風 夕立 金剛 大和 金剛
5位 島風 武蔵 叢雲
6位 ビスマルク 時雨 時雨 鈴谷 時雨
7位 叢雲 初霜 夕立 熊野 那珂
8位 龍驤 那珂 熊野 時雨 川内
9位 秋月 榛名 瑞鶴 島風
10位 大和 プリンツ・オイゲン 北上 呂500 大和

吹雪、如月、夕立を始めとして、北上や瑞鶴もアニメの影響でランクイン
1月に初霜改二の実装が埋もれてしまっています
鈴谷や熊野が上位にいるのは、MMD効果っぽいです

連続1位を記録しているブッキーですが、この4ヶ月で全期間の動画数の半数以上を稼いでいます

アニメで中心となっていたキャラに対して、タグ数の変動をグラフにします
f:id:calderarie:20150912175510p:plain
金剛の安定した人気っぷりとアニメシーズンの吹雪の急増化っぷりが目立ちます
また、夕立、睦月、大和も多少ではありますが、増加していることがわかります

一方、赤城さんはあんまり変動が見られないです
アニメの赤城さんはネタにあふれていたと思うんだけど・・・
 

ちなみに、現時点での15年9月の一位は浜風です

 

次は多分ネットワーク解析します

pixiv APIの代替となる何かを考える

結構前のことだが、4月末くらいから非公式のpixivのAPIが使えなくなっている。

 

 

とりあえず、ニコニコのスナップショット検索を使ってみようかと思い、

データ集め中.....

 

どのくらいで制限来るかわからないけど、

艦これ | 艦隊これくしょん」で10秒間隔で絶えず叩いてるけどまだ制限きてないです

 

pixivのより、オプションで色々できるので捗りそう

(とれるデータ全部突っ込んでから考えるから関係ないけど)

 

懸念してる事案として、

・イラストと違ってキャラ名のタグ付けがあまりされてない

・タグが10個までという制約があるため、姉妹艦などは<◯◯型>などで括られやすい

 

とりあえず土日にでもなんかやってみよう

ツイート履歴からワードクラウドを作る

凄く今更感があるけど、自分のツイートデータでワードクラウドを作った

 

ダウンロードの仕方&入手できるデータについては、

以下を参考されたし

Twitterの新機能「全ツイート履歴をダウンロード」を使ってみた - Logic Delight

 

ツイートは、csvjsonの2形式でアクセス可能だが、それぞれ面倒事がある

csv形式は、1ファイルに全データが収められているが、

カンマが混じってる場合の処理に注意する必要がある

json形式は、利用しやすいが月ごとにファイルが分かれており、

ファイルの文頭に余分な文字列が入っているので、読み込み時に面倒

 

やったこととしては、

だけなので、省略

以下できたもの

 

f:id:calderarie:20150403185303p:plain

 

とりあえず、「ワキガ」は「Wake Up Girls!」を指しているので、

僕自身の腋とは関係がないとだけ言っておきたい

 

この記事を書いてる途中で思ったけど、

IDやurlの除去してないですね・・・

 

後、形態素の切り分けが非常に難しい

今はMeCabで解析してるけど、kuromojiとか使ったほうがいいのかしら

(普段英語テキストを使うことが多いので、その辺疎い)

 

色々考えた結果、yahooの キーフレーズ抽出API を使えばいいんじゃね?となった

ということで、多分次はキーフレーズ抽出をしてみたいと思う