すのふら

すのふら

日々の備忘録

engineer meeting podcast vol.112の曽山さんの話がかなり良かった

聞いてて久々にすごい放送聞いたなって思ったので取り急ぎ書いておく。

engineer meeting podcast株式会社サイバーエージェントに所属している方が技術論やリーダー論を話しているラジオ番組。

vol.112は株式会社サイバーエージェントの取締役 人事統括、株式会社CyCAST代表取締役社長の曽山哲人さんがゲスト。

この人の話が本当によかったので、自分の琴線に触れたところを簡単にまとめつつ、感想を書いておく。
エンジニアとかコンサルの人、それ以外の人もかなり面白い話をしているので聞いてみたほうがいい。

soundcloud.com



人を効率よく回せるのは6人程度がちょうどよい。

5、6人の小さい単位で成果が出るメソッドを確立するということにこだわったほうがいい。
50人とか大きい範囲は無理だと認めたうえで、小さい軸で機能させていく。人数が増えた場合は小さく割っていく。

人が見られる数で自分の目で面倒みられる限界値も6人とかそういうレベルなんだと思う。

6人超えると業務上、互いにかかわらない人も出始めてきて、ひとつの集団としてやっていくのはなかなかむつかしいのかなと。

進捗確認の朝会や夕会やるにしても6人以上の参加者がいると情報共有の内容よりも時間をロスしているなってことが多い。

単なる作業進捗は小さい単位でなるたつ手法かなと思っていて、多いと単純に自分の番が回ってくるのも遅いし、何も言わなくてもいいかなという当事者意識も薄れていくので。
ファシリテートするほうも人数が多いということは、なめていく量も多いのでそれだけだらだらやってるのと変わりない。

少人数で互いを補い合うような体制作りを目指したほうが、自分がいないとだめだと思って当事者意識もって取り組めるのかなと。

それがこの回で話されている

育てるために心がけることは、小さい集団で自分でやっているという経験を早く持ってもらう。リーダー経験をしないとそれが身につかない。

というのにつながってくるのかなと。

大人数の場合はリーダー経験積みたくてもある程度レベル分けされているので、上の人が自然とその立ち位置につくことがおおく、
若手のチャンスはなかなか降りてこない。


よいエンジニアは意味づけの力をもつエンジニア

自分の仕事にどんな意味があって、これが広がるとどうプラスになるのか自分なりに考えてる人は活躍する。

これも当事者意識につながってくるんだと思うんだけど、自分の割り当てられた作業をいかに楽しくやるかって、今やっている作業っていったん何だろうと想像して答え合わせしていくことなんだと思う。

答え合わせは直接的に聞くものだったり、自分の中の別のプロジェクト経験と紐づけて新しいものを組み合わせたりとか。


フィードバックとか評価の心がけ

人と人は立場関係なくずれていくもの。
ずれていくことを前提に途中で月1回面談する等で互いに経験チェックをする。
そしてずれを補正しあうことで心理的安全性を高めることができる。互いに心理的安全性を担保したほうが組織がまとまる。
実施する頻度や時間は成果を出すために必要な時間。それは上司と部下で合意が取れる頻度にして、相手に確認したほうが良い。
伸びる組織はアンド思考。AとZを共に生かす。どうやったらアンドになるかを考えて、落とせるのが伸びる組織。

これはほんとそうで、人と人は基本認識が合わないものだと俺も思っている。

だからこそフィードバックするときはきちんと、互いのずれなく話すべきだし俺は話すの苦手なので絵を使ったりして話すように心がけてる。
やっぱ絵描いたほうが変に空中戦するよりも分かりやすいと思っている。

学生の人にアドバイスするなら

とりあえずなんでもいいからリスクをとる
研究やるなら話題なりそうものをやる。そのうち自分でサービスやりたいならこの1年でサービスだす。
リスクをとったらとった分だけ、自分にしかわからない学びがある。
リスクとはその人がいつもやっていることと違うことをやることで感じる「ひやひや」。

これはもう心が痛い話で、俺はあまりリスクとっていかない人間なんだけど、それだと知識も地位もアドバンテージとりにくいってのはすごく感じてる。

ただやっぱ勇気がいるっていうのもそのとおりで、伸びていくのってその勇気の最初の一歩をいかに踏み出せるかって感じだと思う。

ダメならダメでしょうがないという感覚だったり、誰かが助けてくれるだろみたいな楽観視がある程度は必要なのかもなあと。


選択肢を広げる(キャリアオプション)

今は変化が激しいのでキャリアパスやキャリアデザインができる時代ではなくなってきている。
キャリアの選択肢を複数持ちながら、その中で今自分に来ているオファーや部署移動の案内などから自分にはまるものを選んでいく。

またキャリアはアップデートし続けることで成長するが、掛け算でアップデートしていくことが一番伸びる。
自分の武器×新しい分野×新しい分野……と掛け算していくことで、常に強みが残っている。掛け算にすることで他社に真似できないキャリアになる。

もしオファーが想定外のものの場合乗ったほうがよい。会社やチーム、上司の期待に応えるだけでも関係性はよくなる。
わざわざ自分を選んでいるので、このオファーで伸びる要素があると思われている。
そのため、想定外のオファーは乗るだけで他者の官舎や期待が掛け算で乗ってくる。これだけで価値がある。

自分のキャリアオプションを持ちながら想定外の依頼は乗っかってみるのがおススメ。

自分はこれ強みかなって思うことって結構あったりするんだけど、それ単体だと意外に大したことなく終わっていくことが多い気がする。

それってその強みの枠の一歩外を出てないから、結果普通なんだよなあと。
その不変である強み、視点に対して、別の視点を置いていくことで自分にとって新しいコラボレーションになるのかな。
その層の蓄積をし続けることでほかの人と圧倒的に違う感じが出てくるのかなあと。

自分と「アイカツ!」というコンテンツについて改めて感じたこと

そういう星のもとに生まれているのか、年に1回は酒の場でハラスメントに遭って揉めるのだが、謎の気づきがあったのでメモする。


TL;DR

自分が自分の想像以上に「アイカツ!」というコンテンツが好きで大事にしているものであったかを自分が初めて理解できた。


顛末

今回はアイカツ!を1回も見てない上司のおっさんから、ごみだとクズだの言われたっていう、一見したら別に何ともない話だったりする。

そのおっさんは俺のバックボーンをあまり理解できていないというのもあって、何も考えてないだろうしネタみたいな話だと思ったんだろう。


俺のバックボーンを知るチームメンバーから見たら、

  • チームに入ってきた直接的要因が「アイカツ!」というコンテンツであった
  • それがどれだけ好きなのか

ということは知っていただろうから、(内心ごみだとは思っているが)特段何も触れなかったんだろうと思う。

言われたときに、俺の好きなコンテンツを否定するとは何事だ!みたいな気持ちではなく、純粋に悲しいという感覚のみ介在している感覚だった。


俺は「アイカツ!」というコンテンツをもっと理解したいなという経緯から、分析等のアナリティクス世界に入ってきたということもあり技術的側面、
アイカツ!」シリーズのアニメから自分の精神的なものを支えているという認識はあった。

それが自分の中でどの程度の比重を占めているのかなんて考えたこともなかった。
自分が悲しみに暮れてしまうほど、自分の中で重要なものになっているなんて思ってもいなかったので、それに一番驚いた。


正直

アルハラしてくる会社に在籍し続けるってのは、善良な人に対してもこいつらも俺を人格攻撃してくるんかと思ってしまうし正直きつい。*1
取り敢えず2年連続ヒットしたので、会社の飲み会はもう行かない。

信用値も底値だし、とっとと辞めようとは思っている。

北海道の企業転職きつめだけど探し始めるところにきたかなと。
とりあえずアニメ好きなおっさんを許容してくれる会社な。

*1:多様性を考えてますとか言ってる会社でアニメ好きなのはディスってOKの傾向なんなん?

【技術編】『ラジカツスターズ!』全102回とコーナー全364問から見えてくるもの

先週書いた『ラジカツスターズ!』の分析で使用したpytonコードをメモとして記載しておく。 snofra.hatenablog.com

実装


ロード部

import pandas as pd
import matplotlib.pyplot as plt
import statsmodels.api as sm
import numpy as np
import datetime
%pylab inline --no-import-all

#csvファイルのロード
df = pd.read_csv('C:/Users/xxxx/radikatsu_stars_list.csv', index_col=0, parse_dates=[1], engine='python')
df = df.fillna(0)
radikatsu = df.loc[0:] # todo 正解数の抽出できなかったので加工


データ加工部

on_air = radikatsu.index # 放送回数
series_correct_num = radikatsu['正解数'].astype(int) # 正解数全量
series_question_num = radikatsu['出題数'].astype(int) # 出題数全量

# 正解数と出題数をそれぞれ累計
list_cumulative_correct = [] # 正解数
list_cumulative_question = [] # 出題数
list_cumulative_correct_rate = [] # 正解率
cumulative_correct = 0
cumulative_question = 0
cumulative_correct_rate = 0

for x, y in zip(series_correct_num, series_question_num):
    cumulative_correct = cumulative_correct + x
    cumulative_question = cumulative_question + y
    # 暫く0が続くのでその場合は処理を行わない
    if x != 0 and y !=0:
        cumulative_correct_rate = (cumulative_correct / cumulative_question) * 100
    list_cumulative_correct.append(cumulative_correct) # 正解数累計
    list_cumulative_question.append(cumulative_question) # 問題数累計
    list_cumulative_correct_rate.append(cumulative_correct_rate) # 正解率累計

# 各累計数をDataFrameにする
cumulative = pd.DataFrame(
    {'01.on_air': on_air,
     '02.question': list_cumulative_question,
     '03.correct': list_cumulative_correct,
     '04.rate': list_cumulative_correct_rate})
print(cumulative)
cumulative.to_csv("cumulative.csv")

こんな感じで出力 f:id:snofra:20180409003650p:plain


データ加工部(メンバー別)

def member_answer(member):

    #担当回チェック
    list_question = [] #問題数
    list_correct = [] #正解数
    list_date = [] #放送年月
    list_cast = [] #パーソナリティ回数
    bfr_date = None
    question_num = 0
    answer_num = 0
    cast_num = 0
    len_cur = len(radikatsu) 
    # DataFrameの行単位でループ
    for index, i in enumerate(radikatsu.iterrows()):
        # tupleの値部分の取得
        series_row = i[1]

        target = series_row['公開日'].strftime("%Y-%m")

        # パーソナリティ回だった場合
        if series_row[member] == 1:
            # 同年月だった場合累計
            if target == bfr_date:
                question_num = question_num + series_row['出題数']
                answer_num = answer_num + series_row['正解数']
                cast_num = cast_num + 1

        # 1行目もしくは年月が切り替わった場合
        if target != bfr_date and bfr_date is not None:
            list_date.append(bfr_date)
            list_question.append(question_num)
            list_correct.append(answer_num)
            list_cast.append(cast_num)
            # パーソナリティ回だった場合、その年月を設定しなおす。
            if series_row[member] == 1:
                question_num = series_row['出題数']
                answer_num = series_row['正解数']
                cast_num = 1
            else:
                question_num = 0
                answer_num = 0
                cast_num = 0

        bfr_date = target

        # 最終行の追加
        if len_cur == index + 1:
            list_date.append(target)
            list_question.append(question_num)
            list_correct.append(answer_num)
            list_cast.append(cast_num)

    # 年月別の問題/回答数
    member_correct = pd.DataFrame(
        {'01.year': list_date,
         '02.question': list_question,
         '03.correct': list_correct,
         '04.parsonarty': list_cast})
    print(member_correct)
    member_correct.to_csv("member_correct" + member + ".csv")
    
    # 問題数/正解数/正解率の最大値の取得
    question_crr = 0
    answer_crr = 0
    cast_crr = 0
    for x, y, z in zip(list_question, list_correct, list_cast):
        question_crr = question_crr + x
        answer_crr = answer_crr + y
        cast_crr = cast_crr + z
    crr_ans_rate = (answer_crr / question_crr) * 100
   
    # jupiterを日本語対応していないので、適当にタイトルを設定
    if member == "るか":
        title = "Ruka's Question/Correct num"
    elif member == "みき":
        title = "Miki's Question/Correct num"
    elif member == "かな":
        title = "Kana's Question/Correct num"
    elif member == "みほ":
        title = "Miho's Question/Correct num"
    elif member == "ななせ":
        title = "Nanase's Question/Correct num"
    elif member == "せな":
        title = "Sena's Question/Correct num"
    else:
        title = "Rie's Question/Answer num"
        
    # X軸表示用に年月分連番を設定しておく
    serial_no = [index + 1 for index, i in enumerate(list_date)]
    
    # plot
    plt.figure(figsize=(20, 10), dpi=100, linewidth = 100)
    ax = plt.subplot()
    ax.bar(serial_no, list_question, color='#44A5CB', align="center", label="Question num") # 問題数
    ax.bar(serial_no, list_correct, color='#EDAD0B', align="center", label="Correct num") # 正解数
    plt.ylabel("Question/Correct num", fontsize=15)
    ax.legend(loc=2) # 凡例
    plt.title(title, fontsize=15)
    plt.yticks( np.arange(0, 20, 1) )
    plt.xticks(serial_no, list_date, rotation = 90)
    plt.savefig(member + '.png') # グラフのダウンロード
    plt.show()

    return question_crr, answer_crr, crr_ans_rate, cast_crr


メンバー別の表示

list_question_cum = []
list_answer_cum = []
list_crr_ans_rate = []
list_cast_cum =[]

# るか
question_ruka, answer_ruka, rate_ruka, cast_ruka = member_answer('るか')
list_question_cum.append(question_ruka)
list_answer_cum.append(answer_ruka)
list_crr_ans_rate.append(rate_ruka)
list_cast_cum.append(cast_ruka)
# みき
question_miki, answer_miki, rate_miki, cast_miki = member_answer('みき')
list_question_cum.append(question_miki)
list_answer_cum.append(answer_miki)
list_crr_ans_rate.append(rate_miki)
list_cast_cum.append(cast_miki)
# かな
question_kana, answer_kana, rate_kana, cast_kana = member_answer('かな')
list_question_cum.append(question_kana)
list_answer_cum.append(answer_kana)
list_crr_ans_rate.append(rate_kana)
list_cast_cum.append(cast_kana)
# みほ
question_miho, answer_miho, rate_miho, cast_miho = member_answer('みほ')
list_question_cum.append(question_miho)
list_answer_cum.append(answer_miho)
list_crr_ans_rate.append(rate_miho)
list_cast_cum.append(cast_miho)
# ななせ
question_nanase, answer_nanase, rate_nanase, cast_nanase = member_answer('ななせ')
list_question_cum.append(question_nanase)
list_answer_cum.append(answer_nanase)
list_crr_ans_rate.append(rate_nanase)
list_cast_cum.append(cast_nanase)
# せな
question_sena, answer_sena, rate_sena, cast_sena = member_answer('せな')
list_question_cum.append(question_sena)
list_answer_cum.append(answer_sena)
list_crr_ans_rate.append(rate_sena)
list_cast_cum.append(cast_sena)
# りえ
question_rie, answer_rie, rate_rie, cast_rie = member_answer('りえ')
list_question_cum.append(question_rie)
list_answer_cum.append(answer_rie)
list_crr_ans_rate.append(rate_rie)
list_cast_cum.append(cast_rie)

# メンバー別の問題数/正解数/正解率
crr_ans_rate = pd.DataFrame(
    {'01.member': ['るか', 'みき', 'かな', 'みほ', 'ななせ', 'せな', 'りえ'],
     '02.question': list_question_cum,
     '03.answer': list_answer_cum,
     '04.correct_rate': list_crr_ans_rate,
     '05.parsonaroty': list_cast_cum
    })
print(crr_ans_rate)
crr_ans_rate.to_csv("crr_ans_rate.csv")

メンバー別、月別で問題数と正解数を作ったんだけど。分析するにはいまいち言うこともないし、微妙じゃね?ということで結局載せなかった。

f:id:snofra:20180409004757p:plain f:id:snofra:20180409004841p:plain f:id:snofra:20180409004806p:plain f:id:snofra:20180409004815p:plain f:id:snofra:20180409004823p:plain f:id:snofra:20180409004829p:plain f:id:snofra:20180409004835p:plain


せなとみほの正解数推移比較

# せな
list_sena = []
# DataFrameの行単位でループ
for index, i in enumerate(radikatsu.iterrows()):
    # tupleの値部分の取得
    series_row = i[1]

    target = series_row['公開日'].strftime("%Y-%m")

    # パーソナリティ回だった場合
    if series_row['せな'] == 1:
        list_sena.append(series_row['正解数'])

# みほ
list_miho = []
# DataFrameの行単位でループ
for index, i in enumerate(radikatsu.iterrows()):
    # tupleの値部分の取得
    series_row = i[1]

    target = series_row['公開日'].strftime("%Y-%m")

    # パーソナリティ回だった場合
    if series_row['みほ'] == 1:
        list_miho.append(series_row['正解数'])

# seabornでせなとみほの結果をカーネル密度推計でplot
import matplotlib.pyplot as plt
import seaborn as sns

plt.figure(figsize=(20, 10), dpi=100, linewidth = 100)
plt.xticks([0,1,2,3,4,5])
plt.tick_params(labelsize=18)
plt.xlabel('Answer', fontsize=18)

sns.distplot(pd.DataFrame({'sena':list_sena}), rug=True, hist=False, color = 'pink', kde_kws={'label':'sena'})

sns.distplot(pd.DataFrame({'sena':list_miho}), rug=True, hist=False, color = 'purple', kde_kws={'label':'miho'})
plt.legend(fontsize=18)
plt.savefig('sena_vs_miho.png')

できた画像を多少加工しているけど、こんな感じのグラフができる。 f:id:snofra:20180403000309p:plain

みほ、せなコンビで今度ライブをやるとのことで、ラジカツ優秀勢きたなって思いました(小並感)


メンバー別の表示

# メンバー別質問数と正解数、正解率
appr_member = [1,2,3,4,5,6,7] # X軸の表示用

# plot
plt.figure(figsize=(20, 10), dpi=100, linewidth = 100)
ax = plt.subplot()
ax.bar(appr_member, list_question_cum, color='#44A5CB', align="center", label="Question num") # 問題数
ax.bar(appr_member, list_answer_cum, color='#EDAD0B', align="center", label="Correct num") # 正解数
ax.legend(loc=2) # 凡例
plt.yticks( np.arange(0, max(list_question_cum)+3, 10) )
plt.xticks(appr_member, ['ruka', 'miki', 'kana', 'miho', 'nanase', 'sena', 'rie'], rotation = 90, fontsize=15)
plt.ylabel("Question num", fontsize=15)

ax2 = ax.twinx()
ax2.plot(appr_member, list_crr_ans_rate, linewidth=5, marker='o', markersize=10, color='#C7243A') # 正解率
plt.ylabel("Correct answer rate", fontsize=15)
plt.savefig('Correct answer rate.png') # グラフのダウンロード
plt.show()

すでに用意していたのをベースに作業していたんだけど、ここはmatplotlibよりもbokehにしようと思ってた。
だけど、bokehだとグラフを複数使用したときのY軸が左右にでなくて、右のY軸にメモリなきゃ雰囲気グラフやんと思って、結局matplotlibのままでいくことにした。

ちなみにこんなグラフが出る。
f:id:snofra:20180402010014p:plain


番組への貢献度表示

# 番組への貢献度をbokehでプロット
from bokeh.plotting import figure, output_file, show
from bokeh.io import output_notebook
from bokeh.models import ColumnDataSource, LabelSet, Range1d
output_notebook()

source = ColumnDataSource(data=dict(ans=list_crr_ans_rate,
                                    cast=list_cast_cum,
                                    names=['るか', 'みき', 'かな', 'みほ', 'ななせ', 'せな', 'りえ'],
                                    colors=['orange', 'green', '#ef5285', 'purple', 'blue', 'pink', '#00b9f1']))

p = figure(title = "誰が番組に貢献したか", x_range=Range1d(30, 40),y_range=Range1d(10, 40))
p.xaxis[0].axis_label = 'パーソナリティ回数'
p.yaxis[0].axis_label = '正解率(%)'

p.scatter(x='cast', y='ans', size=8, source=source, color='colors')
labels = LabelSet(x='cast', y='ans', text='names', level='glyph',
              x_offset=5, y_offset=5, source=source, render_mode='canvas')
p.add_layout(labels)

show(p)

こんな感じのグラフが出る。 f:id:snofra:20180402005825p:plain

matplotlibとどう違うんだってのも見てみたけど、実装の楽さや見栄え見てもbokehがいいね。
matplotlibはDataFrame使えないし、色をこまめに変えたい場合実装行数が多くなるのが難点。

matplotlibでの散布図実装

お試しでやってみたので併せて載せておく。

# dataFrameの作成
cumulative = pd.DataFrame(
    {'names': ['るか', 'みき', 'かな', 'みほ', 'ななせ', 'せな', 'りえ'],
     'ans': list_crr_ans_rate,
     'cast': list_cast_cum,
     'colors': ['orange', 'green', '#ef5285', 'purple', 'blue', 'pink', '#00b9f1']})

# メンバー別にパージしておく
ruka = cumulative[0:1]
miki = cumulative[1:2]
kana = cumulative[2:3]
miho= cumulative[3:4]
nanase = cumulative[4:5]
sena = cumulative[5:6]
rie = cumulative[6:7]

# plot
fig = plt.figure()
ax = fig.add_subplot(1,1,1)

ax.scatter(ruka["cast"], ruka["ans"], c=ruka["colors"])
ax.annotate("ruka",xy=(ruka["cast"], ruka["ans"]),size=10)

ax.scatter(miki["cast"], miki["ans"], c=miki["colors"])
ax.annotate("miki",xy=(miki["cast"], miki["ans"]),size=10)

ax.scatter(kana["cast"], kana["ans"], c=kana["colors"])
ax.annotate("kana",xy=(kana["cast"], kana["ans"]),size=10)

ax.scatter(miho["cast"], miho["ans"], c=miho["colors"])
ax.annotate("miho",xy=(miho["cast"], miho["ans"]),size=10)

ax.scatter(nanase["cast"], nanase["ans"], c=nanase["colors"])
ax.annotate("nanase",xy=(nanase["cast"], nanase["ans"]),size=10)

ax.scatter(sena["cast"], sena["ans"], c=sena["colors"])
ax.annotate("sena",xy=(sena["cast"], sena["ans"]),size=10)

ax.scatter(rie["cast"], rie["ans"], c=rie["colors"])
ax.annotate("rie",xy=(rie["cast"], rie["ans"]),size=10)
ax.set_xlabel('parsonality num')
ax.set_ylabel('correct per')

plt.savefig('matplotlib.png') # グラフのダウンロード
plt.show()

f:id:snofra:20180409010928p:plain
これだったらbokehでいいかなー

『ラジカツスターズ!』全102回とコーナー全364問から見えてくるもの

アニメ『アイカツスターズ!』までの歌唱担当「AIKATSU☆STARS!」がやっていたインターネットラジオラジカツスターズ!』が先日3月26日に終了。

2年近く欠かさず聞いていたので悲しい。

この番組は毎週月曜日に更新されていたので、『Mia REGINAのTHAT'S A RADIO~千里の道はラジオから~』と共に、俺の週の始まりを知らせる番組で、共に3月で終了してしまった。

終わってしまったものを俺が何とかすることはできないので、俺が唯一できる『ラジカツスターズ!』から見えてきたものについて、確認したいと思う。

  • そもそも「ラジカツスターズ!」とは
  • 「ラジカツスターズ!」は誰がよく出ているのか
    • メンバー別のラジオのパーソナリティ担当回数
    • 各メンバーは誰とペアを組んでいることが多いのか
  • コーナー「私達、AIKATSU☆STARS!です!!スターズ!!!」
    • メンバー別正解数と正解率
    • みほとせなの正解数の傾向
  • 結局誰が一番番組に貢献したのか
    • 結果
  • 調査内容一覧
    • 全102回のパーソナリティとon air曲一覧
    • 全364問のコーナー回答一覧


そもそも「ラジカツスターズ!」とは

アニメ『アイカツスターズ!』までの歌唱担当をされてきた「AIKATSU☆STARS!」の7人が週代わりでトークしていた番組。
彼女らはディアステージ所属のアイドル。
ラジオに登場するメンバーは毎週違っていて、2016年9月以降はランダム?で2名が担当している。

まあラジオの感じはアイドルとか声優のラジオのそれ。


「ラジカツスターズ!」は誰がよく出ているのか

メンバー別のラジオのパーソナリティ担当回数

まず初めにラジオのパーソナリティを担当した回数を見てみる。


<メンバー別パーソナリティ回数>
f:id:snofra:20180401235607p:plain

全102回中で一番パーソナリティを担当したのは、せな
とはいえメンバー全員30回以上担当しているので、パーソナリティを担当した数としてはほぼ誤差かなと。

るか、せな、りえの3人がトップ3だが、佐藤監督や、歌唱担当の声優さんがゲストのときにパーソナリティをやっていることが多いのが要因かな。

各メンバーは誰とペアを組んでいることが多いのか

もう少し掘り下げて、各メンバー別で誰と一緒にパーソナリティをやっているかを見てみる。


<メンバー別 他メンバーとのペア数>
f:id:snofra:20180403005952p:plain

ここでも、るかとせな、せなとりえが一緒にパーソナリティをやっていることは非常に多いことが分かる。
それぞれパーソナリティの約半分は一緒にやっている。

みきは見事に均等。


コーナー「私達、AIKATSU☆STARS!です!!スターズ!!!」

メンバー別正解数と正解率



<メンバー別正解数と正解率>
f:id:snofra:20180402003012p:plain


<メンバー別問題数/正解数>
f:id:snofra:20180402010014p:plain
縦棒グラフの青が問題数。オレンジが正解数。
折れ線グラフが正解率。

メンバー別での正解率が高いのは、せなとみほ。周りのメンバーと比べて圧倒的。

逆に正解率が一番低いのはるか
るかに関しては他メンバーと比べて5パーセント以上違うんだけど、このラジオを聞いたことある人はそりゃそうだよなという結果に。

るかと言えば珍回答で、そのおかげ?で異常な正答率の低さ。期待裏切りませんね(笑)

みほとせなの正解数の傾向

みほとせなの正解率が高いのは分かったが、この二人の正解数はどう違うのかというところに注目して見てみる。



<みほとせなの正解数の分布>
f:id:snofra:20180402234655p:plain
ピンクがせな、紫がみほ。

このグラフを見ると2人の1回あたりの正解数の違いが見える。
これを見ると両者はかなり正解の傾向が違うということが分かる。

みほは、1問正解が多く、全問不正解は少ない傾向がある。ただ、2問以上の正解数も高くなく、必ず1問は正解するコツコツタイプ。

せなは、全問不正解であることも多いが、正解すると波に乗るのか2問正解することが多い。ブレが結構あるタイプ。


結局誰が一番番組に貢献したのか

パーソナリティを多く担当した人と、コーナー回答率が高い人を確認したけど、結局誰が一番番組に貢献したの?って観点で見てみる。


<グラフのイメージ>
f:id:snofra:20180402005808p:plain

左下の青以外はどこかで番組に貢献ができている。
右上の赤にいるメンバーがパーソナリティ回数、コーナー正解率ともに番組を牽引していると言える。

結果

<結局誰が一番番組に貢献したのか>
f:id:snofra:20180402005825p:plain

一番番組に貢献したのはせなとりえ!
特にせなについては、パーソナリティ回数、コーナー正解率ともにトップ帯にいるため、圧倒的な状況に。

コーナー正解率でみほもトップにいたが、パーソナリティ回数は特別多いわけではない。
もしかして、せなと同じ問題数だった場合、正解率がせなとほぼ同じにならないのかも。

るかは、ご存知の通りコーナーでは全く貢献できていないので(笑)、パーソナリティ回数で番組に貢献していたのかなと。

調査内容一覧

全102回のパーソナリティとon air曲と、全364問のコーナー回答一覧を掲載しておきます。
長いです。

続きを読む

リモートワークを実施して思うこと

リモートワークについての記事を見て、悲観的な記事だなと思いつつもそうだなって思うことがある。
postd.cc

俺は前日までに申請したらリモートワーク可という会社で働いているので、リモートワークしていて思うことをメモしておく。

俺は関東圏在住ではないので参考になるかは不明だが、一つのケースとして見てもらえればと。

ちなみに俺は家から会社までDoor to Doorで1時間30分くらいかかる。
自分の会社では遠距離通勤者に該当する。
関東だと遠距離通勤に該当するのかな?


人によっては全然出社してなかったりする人もいるが、俺は特別用事がない限りは意識的に出勤するようにしている。
なぜかというかリモートワークの微妙だなっていう点から、向いてないかもなと思っているから。


リモートワークのよいところ

「わざわざ会社に行かなくていい」、「嫁さんの負荷を分散できる」という点に尽きる。

具体的には

  • 翌日、猛吹雪予報の日に雪まみれになりながら出勤しなくてよい
  • ギリギリまで寝てられる
  • 子供の看病しながら仕事ができる
  • 子供の保育園の迎えができる
  • 家族と長い時間いられる

あたり


わざわざ会社に行かなくていい

マジで大雨や猛吹雪だけど出社しなければならないとか、マジでやってらんない。
関東圏の通勤ラッシュとかは基本ないし、座れなくともすし詰めになることはないが通勤するだけで体力を使うのを防げる。

俺は朝早起きするの苦手なので、始業5分前まで寝てられるのは最高。

去年のアイカツ!ミュージックフェスタ流してSTART DASH SENSATIONでめちゃくそ泣きながら仕事だってできる。


嫁さんの負荷を分散できる

共働きなので、負荷をいかにバランスしていくかって観点は必要。
そういう点でリモートは基本いいことしかないのかなーと。

特に子どもの保育園の迎えをするためにリモートワークするって、俺にとっても会社にとってもいいことしかないと(勝手に)思ってる。

通勤に1時間30分かかるということは、保育園の保育時間延長をギリギリまで粘ったとしても早退をしなければならないんだけど、リモートワークすると普通に終業まで働けるのが強い。


あとは家族と長い時間いられるというのも、リモートワークの強みかなと。
毎日終電まで働いていると家族とすれ違う生活になるので、一緒に夕食を食べられるというのはいいことなのかなと。


リモートワークの微妙なところ

やっぱり「働く時間」と「コミュニケーション」の2点だと思う。

具体的には

  • 働く時間が曖昧になる
  • 働きすぎる
  • 病気でも仕事をする
  • メンバーとのコミュニケーションロスから状況が見えにくい
  • チームの温度感が伝わりにくい

かなー。


働く時間

会社で働かなくなって家で働くと、夕方まで仕事→家族が寝始めたらまた仕事となるケースが多い。

そうなると「あそこはああやるべき」みたいな瞬間に作業ができてしまう。
仕事をしないときとするときの線引きが曖昧になって、いつでもreadyみたいになりがちかなと。

そして日本人の特性なのか分からないけど、基本働きすぎる傾向にあると思う。

最初はリモートワークするとサボっちゃうんじゃないかなーって思っていたんだけど、実はそんなことはなかった。
というのもサボると成果出してなくてサボってたってバレるんだけど、働きすぎるってバレにくいんだよなーと。

絶対に間に合わなくてスケジュールを再調整しなければならないのに、それをこっそり働くことでカバーできるという。

リモートワークって精神と時の部屋じゃねえからと思うが、手段としてできるのであればやってしまう人もいる。というか俺もその中のひとり。


リモートワークどんだけ自由なんだよって、病気でも仕事できちゃうのがな。
熱出て意識もうろうとしてるのに仕事せないかんとか成果まったくでないのにやっちゃう感じ。むしろそっちが病気。


コミュニケーション

俺がリモートワーク微妙だなと思う一番の要素がここ。
とにかくコミュニケーション、というか温度感が伝わりにくいってのがある。

リモートワークすると粛々と作業するみたいな形になりがちかなと。

会社にいるときによくある「これやばそう」みたいな、燃え上がりそうなものへの火消ししなきゃ!みたいなのが肌で感じられない。

「何かが起きている?」っていうのはなんとなくわかるんだけど、そういう時はslackとかで「何か起きてます?」みたいな質問に返答するほど時間もないだろうし、ただただ察するしかない。

雰囲気を見て、入ったほうがいいかなって思って仕事を巻き取ったりすることが多いので、温度感が感じられないのは結構ディスアドバンテージに思うことが多い。

あとはずっと会社に来なくて、slackとかにもリアクションない人はホントこの人何やってんだろ?って思うし、存在感なくなっちゃうと質問もされなくなるし作業はしやすいんだけど、今後につながらんのかなーとか。

キミとつなぐ光のライン――感想「アイカツ!ミュージックフェスタ in アイカツ武道館」

f:id:snofra:20180228162908j:plain

アイカツ!ミュージックフェスタ in アイカツ武道館」に行ってきた。

去年はDay1のみの参加だったけど、今年は絶対に全通したいと心に決めて1年かけてもろもろ調整してぎりぎりで何とか両日とも参加できた。

このライブにて今までの歌唱担当だった「STAR☆ANIS」と「AIKATU☆STARS」が卒業という発表もあり、このメンバーを見れるのは今回限り。
本当に両日参加できてよかった。

両日参加した感想としては、当然最高だったんだが、それとはまた違う気持ちもあって、あの場にいた人は皆感じただろう「確かにバトンを受け取った」という気持ちだと思う。


2Daysともに最後は「AIKATSU GENERATION」からの「SHINING LINE*」で締めくくっていて、「この出会いにありがとう」「もらうバトン キミとつなぐ光のライン」という自分たちへのメッセージだと思ったから。

いつも「SHINING LINE*」はコールもするし盛り上がる曲だと思うけど、今回ばかりは意味合いがだいぶ違っていたし、歌詞を胸に刻んていた人も多かったと思う。

俺もその中の一人で、正直あの状況下でコールする気持ちなんて起きなくて、終わってしまうもの託されるものをしっかり受け取りたい。そんな気持ちだった。

そういう気持ちにさせてくれる素晴らしいライブだったと思う。

最後に「ありがとう」という言葉何度も言ったけど、本当にそう思って自然と口にできた言葉だった。

それぞれの感想も書いておく。


Day1

2階スタンド席のほぼ一番上の席で、ステージからはものすごい遠かったんだけど十分に楽しめた。

感想としてはクラブイベントで人気な曲が採用されていたなあと。
「Kira・pata・shining」や「恋するみたいなキャラメリゼ」、「薄紅デイトリッパー」とか。「Chica×Chica」は2日ともなかったのが残念。期待して剣持っている人もいたけど。


ドーリーデビルの衣装を着たみほさん、ななせさん――ののリサコンビでの「lucky train!」は好きな曲もあって、すごいテンション上がった。
いつ聞いてもいい曲。この曲は2日目にはやらなかったので両日参加してよかった。


夏樹みくるの歌唱担当がふうりさんに変わった後「笑顔のSuncatcher」を初めて聞いたんだけど、アニメの声にだいぶ寄っていて、これホントみくるだ!と感じた。

歌唱担当変更という点では氷上スミレの歌唱担当がりえさんに変わったんだけど、本人が氷上スミレ好きで髪型も寄せているということもあり、姿はもう完全にスミレちゃんだった。
歌についてもスミレちゃんで、歌唱担当の人たちのプロ意識というかそういうのを強く感じた。

ライブでしか聞けないのが本当に残念。歌唱担当変更版でCD出してほしい。


Day2

人生初のアリーナ席。
スタンド席とは違うアリーナ席の雰囲気も楽しめたし、なにより最終日、最後のライブでスタンド席にいられることが幸せだった。
最後ということもあってDay1の1.5倍のテンションになった。


Day2はなにより「輝きのエチュード」。
俺はこの曲を聞くと感動してしまうんだけど、武道館、そしてリラフェアリーコーデで歌うわかの姿を見て感極まってしまい。めちゃくちゃ泣いた。

あの時の「輝きのエチュード」の歌詞が、新しいステージへ進もうとする「STAR☆ANIS」と「AIKATU☆STARS」からの言葉のように聞こえたから。

輝きに包まれながら あなたの温もりを感じているの
同じ光のなかこれからも 迷わないでわたし歩いていける

輝きのエチュードを今 確かな足取りで歩いているね
あなたが好きでいてくれるから わたしはいつだって強くなれるの

終わってしまうんだという気持ちと、ここから新しい場所へ旅立とうとしているという気持ちが入り混じった涙だったと思う。


「prism spiral」は霧矢あおい大好きな俺にとって、ホント最後の最後にご褒美ありがとう!な曲で大満足。
Day1になくてもしかして今回はないかもなと思っていた「1,2,Sing for You!」もしっかり聞けた。

「ラン・ラン・ドゥ・ラン・ラン!」から「ダイヤモンドハッピー」のテンション爆上げ曲が続いて、俺はいつもより高く飛べたw


最後に

今まで俺を導いてくれたのは「アイカツ!」シリーズ、「STAR☆ANIS」と「AIKATU☆STARS」の皆さんがいたからだと思う。

今まで道しるべでいてくれてありがとう。

そしていつまでもわたしの道しるべ。

STAR☆ANIS」と「AIKATU☆STARS」の皆さんから受け取ったバトン

次はわたしから渡せるように

もらうバトン キミとつなぐ光のライン

あこがれのSHINING LINE* チカラにして

アイカツスターズ!の歌は何を語っているのか37曲から分析する

f:id:snofra:20180222125010j:plain

次の『アイカツフレンズ!』の情報も流れてきて『アイカツスターズ!』の最終回も近づいてきたなあと寂しさを感じる。

来週には「アイカツ!ミュージック フェスタ in アイカツ武道館!」も近づいてきたということもあって、俺のアイカツ熱も上がってきたので、できるだけ「アイカツ!」シリーズの話題をやっていきたいと思っている。

その一環として、依然やった『アイカツ!』がどういう歌を歌っているのかという分析の『アイカツスターズ!』バージョンをやってみる

snofra.hatenablog.com*1


分析内容について


頻出150ワード

f:id:snofra:20180222023046p:plain

ベスト5は
 1.夢
 2.ラン
 3.世界
 4.未来
 5.心

アイカツスターズ!』の頻出150語で面白いのは「アイカツ」というワードがトップ10以内に入っているところ。

アイカツ!』の歌詞には意外に「アイカツ」というワードがあまりないので、2つ目のシリーズになってコンテンツ自体を押してきているのかなとか。


歌詞から見る『アイカツスターズ!』とは

トップ5のワードをつなげると「夢」の「世界」、「未来」へ向かう「心」を歌うアニメなのかなと。

本編でもキャラクターたちは自分らしさとは何か、自分のなりたいアイドルとはという観点でアイドル活動(アイカツ!)していることが多かった気がするし、自分自身に降りかかる試練を乗り越えていく気持ちが歌に込められていることが多いような気がする。


アイカツ!」シリーズで共通のテーマは

アイカツ!』の曲のベスト5は
 1.夢
 2.未来
 3.ラン
 3.今日
 5.笑顔

ここから見るに、どうやら「アイカツ!」シリーズで共通のテーマは「夢」と「未来」であることが分かる。

トップアイドルになる夢と、それに向かってアイドル活動に励む姿はこのテーマに沿っていると思える。

ここで「ラン」を入れないのは、『アイカツスターズ!』では「ラン・ラン・ドゥ・ラン・ラン! ~NEXT LAP~」1曲だけで44回なので、例外(外れ値)に近いワードなので。


共起ネットワーク図

じゃあ歌詞同士のつながりはどうなのかということで、共起ネットワーク図で確認してみる。

f:id:snofra:20180222023103p:plain

関連性を見ると「夢」という言葉と「空」という言葉に対しポジティブなワードが付与されているのが見える。
ここから見るに夢は光り輝くものであるというのが根底としてあげられるよう。


アイカツ!』の分析の場合も同様に夢というワードに対し、ポジティブなワードが付与されていたので、アイカツ!」シリーズ全体でも夢はポジティブなものとして捉えられているのだと思う。

作品のターゲット層も女児向けということもあり、ネガティブな要素は除外されているということは十分考えらえる。


ただ、個人的にこの結果は興味深い。
アイカツスターズ!』は『アイカツ!』に比べ勝ち負けがはっきりとしていることが多いし、割とシビアな現実を突きつけられることも多かったので、物語的にはネガティブといったら語弊があるが手放しでポジティブであることは言い難いかなって思っていたので。


アイカツスターズ!』を現している曲とは

頻出150ワードのベスト10を使って『アイカツスターズ!』を現している5曲をセレクトしてみた。


1.「ラン・ラン・ドゥ・ラン・ラン! ~NEXT LAP~」
2.「Message of a Rainbow」
3. 「STARDOM!」
4. 「アイカツ☆ステップ!」
5. 「Miracle Force Magic」

「ラン・ラン・ドゥ・ラン・ラン! ~NEXT LAP~」は上にも書いた通りほぼ「ラン」で占められているので例外として置いておく。

俺は桜庭ローラ推しなので、ツバサ先輩から引き継いだ「Miracle Force Magic」が『アイカツスターズ!』っぽい曲ってホンマありがとうな感で一杯。

「Message of a Rainbow」

「ラン・ラン・ドゥ・ラン・ラン! ~NEXT LAP~」の次に上位ワードを使用しているのが「Message of a Rainbow」。

主人公である虹野ゆめが七倉小春と一緒にブランドを立ち上げ、星のツバサを手に入れた2期中盤での一番の盛り上がりだった場面での曲。

Let's go! 未来へ 一緒に一緒に Say Ho-! 虹まで 届け想いよ この夢は ひとつじゃない ひとりじゃない 声を合わせれば どこまでも響くよ

この歌詞は「アイカツ!」らしいなと。
この曲は「一緒」というワードが多く、虹野ゆめと七倉小春の関連性を強く出している曲だと思う。
ただ、それだけではなく虹野ゆめとアイカツ!をしたみんなというのも要素に多分に含んでいるのではと思う。


「STARDOM!」

第2期の前期オープニング。

俺は個人的に『アイカツスターズ!』を説明する曲ってこいつなんじゃないかって思っているので、作品を表している曲のひとつというのも頷けると思っている。

あこがれは次のあこがれを生む わたしはここだよ 震えるような高みへと 夢は夢を超えていく
きれいな物だけ見るんじゃなくて 全部抱きしめて
光はもっと遠い空 願いは負けたりしない 本気の君を待ってる

無謀と言われた あの日の夢も今では この腕の中に… わたしの中にある…!

ここの歌詞は個人的にかなり好き。


アイカツスターズ!』の世界は誰が担うのか

この5曲中「STARDOM!」と「アイカツ☆ステップ!」の2曲は唐沢美帆さんの作詞。
アイカツスターズ!』の世界は唐沢美帆さんが担っているといっても過言ではない。


俺個人的には

上でも書いた通り桜庭ローラ推しっていうのもあるんだけど、『アイカツスターズ!』で一番好きな曲は「1,2,Sing for You!」。

たどり着くまでは上手くいかずに 時に転んだりつまずいたりしたけど
ツライってうつむいたら 夢なんてかなわない
もう涙を拭いたら ほ・ら キラめく太陽見えた!!

こことか完全に桜庭ローラのこと言ってんじゃん! 最高!

*1:俺のブログで唯一バズったやつなので思い入れもある