社員用に作った文書校正ツールを一般公開した

f:id:gecko655:20210504184350g:plain
スクリーンショット

これはなに

会社で「PR用の文章を人力でチェックする工数が重くて、めっちゃ残業が発生している。なんとか自動化できないか」との依頼を受け、Word等のファイルをGUIでそのままtextlintできるツールをちゃちゃっと作って社内公開しました。その結果、いい感じに社内で有効利用してもらうことができたので、外部公開に踏み切ることにしました。

github.com

インストール&設定

1. インストーラーでツールをインストールする

GitHub上で配布しています。 https://github.com/gecko655/proofreading-tool/releases

Mac版で「開発元が未確認のため開けません」が出た方へ

https://support.apple.com/ja-jp/guide/mac-help/mh40616/mac を参考に、アプリケーションをセキュリティ設定の例外として扱うようにしてください。

Windows版で「WindowsによってPCが保護されました」が出た方へ

「詳細情報」からファイルを実行してください。

2. 校正設定ファイルを変更する

アプリを起動し、「設定ファイルを開く」ボタンで設定ファイルの配置してあるフォルダが開く。 prh.yml (使ってはいけない単語を設定するファイル)を、設定方法 を参考にしながら設定する。

  • prh.yml はなるべくバックアップを取っておいてください。(バージョンアップ時に消える可能性があるので)

アンインストール

Windows

Windowsの設定」→「アプリ」→「アプリと機能」で、「文書校正ツール.app」を右クリック→「アンインストール」

Mac

「文書校正ツール.app」をゴミ箱に移動等して削除

使い方

校正したい文書ファイルを、文書校正ツールのウインドウ上にドラッグ&ドロップする。

対応しているファイル形式

  • pdf
  • docx
  • pptx
  • xlsx
  • html
  • txt
  • epub
  • etc...

  • pdfのみxpdfを、それ以外はtextractを使用している。

技術的な説明

一言でいうと、「docx, pptx, pdf等のファイルのテキスト部分をtextractxpdfで抽出し、textlintしてくれるGUI(electron)ツール」です。

GUI部分を除くと、このツールの機能は以下のコマンドとほぼ同等です。

npm install textract  # https://github.com/dbashford/textract
npm install textlint  # https://github.com/textlint/textlint

npx textract input_file.docx | npx textlint --stdin

Related works

関連するツール群とこのツールの位置づけについて議論します。

textlintをリアルタイムで行なうWebアプリ

azu.github.io

https://textlint-editor.netlify.app/

  • テキストをサーバーに送る必要はなく、すべてローカルで動作する
  • pdfやdocx等をそのままtextlintすることはできない

textlintをローカルPC上でリアルタイムで行なうテキストエディタ

github.com

  • ローカルPCで動作する
  • pdfやdocx等をそのままtextlintすることはできない

textlintをローカルPC上でリアルタイムで行なうテキストエディタ拡張(VSCode)

marketplace.visualstudio.com

  • ローカルPCで動作する
  • 安心と信頼のVSCode上での実装なので、簡単に導入できそう。また、テキストエディタとして使いやすいはず。文書を書きながら校正したい場合はこれ使ったほうが良い気がします。
  • pdfやdocx等をそのままtextlintすることはできない

pdfやdocx等をそのままtextlintするCUIツール(CIツール含む)

たくさん事例がある。GUIではないのでshellに慣れてない人に使わせるのは難しい。

pdfやdocx等をそのままtextlintするGUIツール

このツールしかまだこの世に存在しないはず。多分。

FAQ

なんでGitHubの会社organizationじゃなくて個人アカウント配下にリポジトリがあるの

会社としてはどっちでもいい&どちらかというと社員で開発保守するより個人で保守・レビューするほうが都合が良さそうな気がしたので、個人アカウント配下で公開することにしました。

バグを見つけたんだけど

Issues and Pull Requests are welcome!

xxxな機能も実装してほしい

Issues and Pull Requests are welcome!


ここから追記

textlintルールの追加はできるの?

一般のtextlintルールは、ビルドからやり直さないと追加できない仕様になっています。日本語の文書を書くときに必要なものは大体入れたつもりですが、なにか要望があれば追加で入れようかなと思います。

例外として、prh.ymlは編集可能なので、prhの機能を使って、社内独自の使ってはいけない単語を設定することができます。 例えば200万ダウンロード突破したスマホアプリのPR文書を校正する際に、以下のようにprh.ymlを設定しておくと、古いダウンロード数の文書を校正に引っ掛けることができるようになります。

rules:
  - expected: 200万ダウンロード
    patterns:
      - 100万ダウンロード
prh.ymlを、GUIしか触れないような人に書かせるのキツくない?

実際ちょっとキツいと思うので、prh.ymlの雛形はこちらで用意して、ユーザー側で自由にprh.ymlを編集してもらいつつバグったらフォローしていくのが良いかなと思います。。 この辺をいい感じにするPull Requestもお待ちしてます

pdfの校正をさせてもうまく動かないんだけど

pdfファイルに文章を載っける際(いわゆる組版)に、文章がそのままpdfに載っていない場合は、pdfファイルのパースがうまくできず校正できない場合があります。

  • 要するに、xpdfがpdfファイルをパースして文章部分を抽出できるか否かにかかっている。

また、xpdfのパース結果にはBell(\u0007), Form Feed(\u000c)等の特殊文字が混ざったりすることがあります。これらは前処理で消すようにしていますが、特殊文字を網羅的に消せているわけではないので、pdfファイルを生成したソフトによっては校正がうまく動作しない場合があります。

2020年@gecko655まとめ

1年の間に何をやってきたかをまとめておかないと、Twitterに記録するだけでは忘れてしまいそうなので、メモしていこうと思います。

役に立ちそうなら来年も続ける。

フォロワーがこういうのを毎年やってて真似したくなったので

今年初めてやったこと

アニクラ現場へ行った

ぼっちで。(フォロワーが何人か同じ会場に居たらしい)

陰キャなので唯一撮った写真が建物の外観だけだった。

異文化に触れたが、それなりに楽しかった。

同人音楽のレコーディングに参加した

前年の本番が台風で吹き飛んだり、前年末の本番の乗り番を断ったりして暇だったので、Twitter上で見たアイカツの同人吹奏楽録音企画に参加させていただくなどしました。

twipla.jp www.youtube.com

知り合い一人も居ない中ではありましたが、クラリネットパート内にコミュ力魔神がいらっしゃったおかげもあって、楽しく収録することができました。 次回もよろしくお願いします。

アイカツ!は良い。

ギターを買った

au PAYの20%還元で6万ほどするアコースティックギターを買った。

www.au.com

たまーに弾いているものの、死ぬほど指が痛いし指が動かないしで全然弾けない。

多重録音

ぼくは結局クラリネットとかいう同時に1音しかならない楽器しかできないので、 コロナで暇な間に多重録音して遊んだりしてました。 GarageBandの使い方が勉強できた。

一瞬だけ婚活した

二度とやらねえとなった

Windows機を買った

キーマウでFPSしてみたかったので。 買って半年経つが、ヘタクソのまま。

布団の洗濯

近所に「敷布団対応」を謳うコインランドリーがあったので使ってみた。 5年使って汗とか染みてた敷布団だったのがきれいになった。 敷布団はたまには洗濯したほうが良い。

株を買った

NISA(not つみたてNISA)の設定をしたもののめんどくさくて株を買ってなかったので、年末駆け込みで枠めいいっぱいの株を買った。 5年はホールドするつもりなので、来年末に含み益が出ているか見直したい。

VTuber配信を見るようになった

沼 韓国語勉強しなきゃ…… 最近は台湾中文を理解する必要も感じている。

今年買ってよかったもの

食洗機

最高。もう手放せない。 リモートワーク開始も相まって自炊率が一気に上がった一年だった。

Nature remo

前はLive○martという別のスマートリモコンを使っていたが、 月1でサーバーが落ちて辛かった&GPSトリガーが使えなかったので買い替えた。 エアコン絶対に消し忘れないので良い。

ゲーミングチェア

COUGAR ARMORという名前のブランド。 リモートワーク中の腰を労れるので良い。 思ったより座面の横幅が大きくて、机の中に収納できないのが若干困っている。 来年は机買い換えようかな…?

洗濯機水道の分岐水栓

加湿器への給水がめっちゃ楽。

www.instagram.com

モニターヘッドホン

ふるさと納税産。 録音されたままの音が聞こえるので、いままで使っていたヘッドホンよりもより「「生」」な音が聞こえる(気がする)(しらんけど)。

たこ焼き器

家で作るたこ焼きはおいしい。 ホットプレートのたこ焼き器は許せないので直火OKの鉄製たこ焼き器にした。

仕事について

なんか知らんがめっちゃ昇給している。身に余る感じがしている。 業務特化な知識をつけようとしがちなので、もっと普遍的な勉強をしないとなと思っている。 今の会社にはとても満足しているので、よほど会社が傾かない限りしばらくこの会社にいるんじゃないかと思う。

来年について

  • FPSうまくなりたい
  • ピアノ(キーボード)をやり直す機運がある。
    • フォロワーが最近ピアノをやり始めているのを見てモチベが上がったので
    • ピアノ買ってしまうとデカいので、買うのを躊躇っている
  • 仕事以外の友人関係を頑張って維持していきたい

    • 信頼していた人々がどんどん結婚してしまって、絶望している
  • 独身だと稼いだお金が余ってしかたがないので、使いみちを考えたい

    • 今年はコロ某で桶の演奏会も同人誌即売会も中止になっている上GOTO Travelも機会を逃したので、余計にお金が貯まってしまった。お金が貯まりすぎるのも、人生うまくいっていない感じがして精神衛生上よくない。
  • 結婚式ラッシュが来そうなので、全部お断りしていかないといけないと思うと気が滅入る。
    • マジで結婚式の招待も個別の結婚報告も要らないし不快なだけなのでよろしくお願いします。

書き忘れていることがある気がする

アイカツ!楽曲の音楽的特徴をSpotifyに教えてもらう

この記事は「アイカツ! Advent Calendar 2019」17日目の記事です。

5日目16日目に続き3回目の記事投稿です。

担当が埋まっていなかったため自分で自分にバトンを繋いでしまいました。ぼくが星宮いちごでぼくが大空あかりです。つまりぼくがコスモスです。

Spotify audio feature APIについて

Spotifyに登録されている楽曲はすべてSpotifyすごい機械学習 によっていろんな特徴づけがされており、これを取得するAPIが提供されています。

developer.spotify.com

具体的には以下の12個の特徴量をAPIで取得することができます。

  • acousticness: アコースティック性
  • danceability: ダンサビリティ
  • energy: エネルギー
  • instrumentalness: インスト系
  • key: キー(調性、Cなら0,C#/D♭なら1とのこと)
  • liveness: ライブ感があるか(観客の声が入っているか否からしい)
  • loudness: ラウドネス(平均音量)
  • mode: 長調短調*1
  • speechiness: スピーチか否か(0.66を超えている場合は音楽ではなくただ喋っているだけ、普通の歌詞付き曲は0.33前後とのこと)
  • tempo: テンポ
  • time_signature: 拍子(4拍子とか)
  • valence: 音楽のポジティブさ(happy, cheerful, euphoricだと高くなるとのこと)

昨日作ったSpotifyアイカツ!楽曲リスト について、せっかくなので各特徴量が最大の曲を見ていこうと思います。

各特徴量最大の曲

ここまで書いてから実際に特徴量最大の曲を調べていったところ、ほとんどの特徴量でBGMが1位になってしまうことに気づきました。 それではあまり面白くないので、一部を除き今回はBGMでない曲での特徴量最大の曲を見ていくことにします。

  • 対象楽曲数は424曲です。

acousticness

グッバイ・ティアーズ(こだまさおり TVアニメ/データカードダスアイカツ!』COMPLETE SONGS4)

劇場版の花音さん(歌:こだまさおり)の曲です。たしかに作中で一番強いアコースティック曲ですね。

danceability

放課後ポニーテール - (Short Size) (れみ from STAR☆ANIS

ダンサビリティってこっち方面のことを言うのか… もっと「笑顔のSuncatcher」とか「Hey Little Girl」的なものを指してるのかと思ってた。

ちなみに1位以下9位までは以下のように3曲で独占していました。

放課後ポニーテール - (Short Size)
リルビーリルウィン♪
放課後ポニーテール
放課後ポニーテール
Chica×Chica - KAN TAKAHIKO Remix
リルビーリルウィン♪ - (Short Size)
Chica×Chica - ~珠璃ソロ Ver.~(Short Size)
Chica×Chica - (Short Size)
リルビーリルウィン♪

ショートサイズとフルサイズでどちらが特徴量が大きくなるかは曲によってまちまちなようです。

duration_ms

Moonlight destiny(りすこ from STAR☆ANIS

要するに曲の長さ最長です。6分29秒あるのでそりゃそうですね。

ちなみに最短は、Short Sizeなトラックを除くと2分57秒のラブリーボムが最短なようでした。 確かにCパートなしでいきなり終わるので、改めて聞くととても短い。

energy

We wish you a merry Christmas - AIKATSU☆STARS! Ver.
We wish you a merry Christmas - AIKATSU☆STARS! 2017 ver.
We wish you a merry Christmas - AIKATSU! Ver.(Short Size)
We wish you a merry Christmas - AIKATSU! ver.

すべてenergy=0.9999で同率でした。

せっかくなので4曲とも貼っておきます。これはアドベントカレンダーですし、これを聞かないとクリスマスを迎えられないですよね。

instrumentalness

Kira・pata・shining - PandaBoY Remix (すなお from STAR☆ANIS

NOT ODAYAKAのキラパタが1位でした。NOT ODAYAKAは全体的にボーカルが楽器に溶けてる曲が多いですが、特にキラパタはサビ後のEDM的マナーな感じのやつ(語彙がない)のおかげで、instrumentalnessの特徴量が大きくなってる気がします。

NOT ODAYAKAを除くと、2位が「Take Me Higher - ~いちご & あおい & 蘭 Ver.~(Short Size)」、3位が「魅惑のパーティ」でした。魅惑のパーティ、めっちゃ好きです。好きなので3位ですが貼っておきます。

key

キーは高低を見ても仕方がないので、分布を見てみます。

key 曲数
0(C) 49
1(C#/Db) 44
2(D) 14
3(D#/Eb) 21
4(E) 56
5(F) 22
6(F#/Gb) 24
7(G) 48
8(G#/Ab) 39
9(A) 41
10(A#/Bb) 28
11(B) 38

Eが最頻、Dが最も少ないようですが、わりとまんべんなく分布している気がします。 あんまり真面目な考察はしないでおきます。

  • そもそも転調する曲はどのキーで出力されるのか等、このデータを信じていいのかも謎

liveness

はろー! Winter Love♪(みき・るか・もな from AIKATSU☆STARS!)

livenessはライブ録音か否かを判定する特徴量なので、ライブ録音が含まれていない今回の楽曲群ではあまり意味のない数字な気がします。1位の「はろー! Winter Love♪」もlivenessは0.456しかありませんでした。

loudness

カレンダーガール(わか・ふうり・すなお from STAR☆ANIS)( TVアニメ/データカードダスアイカツ!』主題歌/挿入歌 1年目1

アイカツ!楽曲のほとんどがloudness -0.2dB以下なのに、だけ0.2dBと値が飛んでいました。大きすぎですね…

「TVアニメ/データカードダスアイカツ!』COMPLETE SONGS12」では-1.4dBに修正されていました。聴き比べると確かに音量が抑制されている気がします。

speechness

全部0.27以下であんまり面白い曲がなかったのでパス

tempo

Du-Du-Wa DO IT!! - ~あかりソロ Ver.~(Short Size)(るか from AIKATSU☆STARS!)

あかりソロバージョンのみ、tempo=209.889 と判定されていて、なぜか、フルバージョンなど他の音源では半分のtempo=105と判定されていました。個人的には209でカウントしたほうが譜面の書きやすさとか演奏しやすさ的に良い気がしますが、どうなんでしょう?

time_signature

拍子については最大/最小を見ても意味がないので、いくつかピックアップしてみてみます。

  • Dreaming bird =1拍子

要するに拍子判定できなかったってことですね。これはしかたない。

  • 右回りWonderland = 3拍子

確かに3拍子の時間のほうが長い気がする。

その他、いくつか拍子検出に失敗している曲がありました。精度はあんまり高くないらしい。(One Step = 3拍子とか)

valence

ミエルミエール - (Short Size)(かな from AIKATSU☆STARS!)

ポジティブな曲1位はミエルミエールだそうです。バックトラックの軽さとか、声色の明るさが評価されている感じがします。わかる。

なぜかポジティブな曲2位は「Move on now! - ~いちご & あおい & 蘭 Ver.~(Short Size)」でした。Move on now!にポジティブなイメージがまったくないんですが、シナリオ補正かかってるせいですかね…?

3位「ミエルミエール」4位「放課後ポニーテール」は既出なので飛ばして………
5位は「ハートがスキ♡ップ」でした。これは明らかに明るい。わかる。

逆にvalenceが最も低い、最も後ろ向きな曲は「笑顔のSuncatcher - (Short Size)」でした。これはもうなんもわからん。

全データ

ここにあります。横にクソ長いので頑張って見てください。ダウンロードしたほうがいいかもしれません。 「このデータを使って別の知見を得た」みたいなAdC記事を書いてもらえると、とても嬉しいです。 ぼくはそんなに音楽詳しくないので……

データ

アイカツ!楽曲のSpotifyによる音楽特徴量データ · GitHub

取得スクリプト

Spotifyの楽曲データを取得するスクリプト群 · GitHub

おわりに

  • 全体的にスターズより無印の曲ばっかり上位に来るので、やはり無印の曲は突き抜けてたなというのを再確認させられました。
    最後に「ハートがスキ♡ップ」を入れられてよかった……

  • カレンダーガールが音量修正されていたこと *2など、知らない知見が得られてよかった。

明日は誰がぼくのバトンを繋いでくれるのでしょうか?

*1:これを表す日本語って「調性」以外にないですよね…? keyとかぶっちゃう…

*2:2013年盤の音割れを指摘する人が居るので、なるほどという感じ(語彙力)

Spotify上でのアイカツ!楽曲の人気順

この記事は「アイカツ! Advent Calendar 2019」16日目の記事です。

5日目に続き2回目の記事投稿です。

果たしてこのAdCは25日まで完走することができるのでしょうか?

アイカツ!サブスクについて

2018年7月11日にアイカツ!楽曲が、2019年9月29日にアイカツスターズ!楽曲が、各音楽配信サービスでサブスクリプション開始となりました。 これらの楽曲がどのくらい聞かれているのかを調べてみようと思います。

  • ↓の記事をリスペクトした記事です。
    qiita.com

対象データ

  • 対象のサブスクサービスはSpotifyとします。僕が使っているからです。あとAPIが整っているというのもあります。
  • 対象の楽曲は、アイカツ!シリーズが公式で出しているすべての楽曲です。具体的には、以下のアルバムに収録されているすべての楽曲です。
  13 "AIKATSU! ANION ""NOT ODAYAKA"" (Remix)"
   5 TVアニメ/データカードダス『アイカツ!』COMPLETE SONGS EX
  43 TVアニメ/データカードダス『アイカツ!』COMPLETE SONGS1
  14 TVアニメ/データカードダス『アイカツ!』COMPLETE SONGS10
  11 TVアニメ/データカードダス『アイカツ!』COMPLETE SONGS11
  16 TVアニメ/データカードダス『アイカツ!』COMPLETE SONGS12
  35 TVアニメ/データカードダス『アイカツ!』COMPLETE SONGS2
  37 TVアニメ/データカードダス『アイカツ!』COMPLETE SONGS3
  34 TVアニメ/データカードダス『アイカツ!』COMPLETE SONGS4
  25 TVアニメ/データカードダス『アイカツ!』COMPLETE SONGS5
  16 TVアニメ/データカードダス『アイカツ!』COMPLETE SONGS6
  16 TVアニメ/データカードダス『アイカツ!』COMPLETE SONGS7
  17 TVアニメ/データカードダス『アイカツ!』COMPLETE SONGS8
  12 TVアニメ/データカードダス『アイカツ!』COMPLETE SONGS9
  11 TVアニメ/データカードダス『アイカツ!』主題歌/挿入歌 1年目1
  11 TVアニメ/データカードダス『アイカツ!』主題歌/挿入歌 1年目2
  11 TVアニメ/データカードダス『アイカツ!』主題歌/挿入歌 2年目1
  12 TVアニメ/データカードダス『アイカツ!』主題歌/挿入歌 2年目2
  12 TVアニメ/データカードダス『アイカツ!』主題歌/挿入歌 3年目1
  12 TVアニメ/データカードダス『アイカツ!』主題歌/挿入歌 3年目2
   9 TVアニメ/データカードダス『アイカツ!』主題歌/挿入歌 4年目
  12 TVアニメ/データカードダス『アイカツスターズ!』主題歌/挿入歌 1年目①
  11 TVアニメ/データカードダス『アイカツスターズ!』主題歌/挿入歌 1年目②
  14 TVアニメ/データカードダス『アイカツスターズ!』主題歌/挿入歌 2年目
  16 TVアニメ/データカードダス『アイカツスターズ!』主題歌/挿入歌 Another Ver.
  34 TVアニメ『アイカツ!』BGM集 1年目
  36 TVアニメ『アイカツ!』BGM集 2年目1
  33 TVアニメ『アイカツ!』BGM集 2年目2
  36 TVアニメ『アイカツ!』BGM集 3年目
  17 TVアニメ『アイカツ!』BGM集 4年目
  79 TVアニメ『アイカツスターズ!』BGM集1年目
  71 TVアニメ『アイカツスターズ!』BGM集2年目
  18 映画『アイカツ! 〜ねらわれた魔法のアイカツ!カード〜』BGM集
   9 映画『劇場版アイカツ!』BGM集
  • 合計758曲ありました。すごい。
    • プレイリストとして公開しています。順番ぐちゃぐちゃですがデータ分析用or単純に聞く用とかにお使いください。
  • 同一楽曲でも2つ以上のアルバムに収録されていた場合は別カウントとします。
    • 例えば、Spotify上にAngel Snowと名のつく曲は6曲ありますが、それぞれこんな感じです。 このうち「主題歌/挿入歌 1年目1」と「COMPLETE SONGS6」の音源は同じもののようですが、今回は別物として扱います。
曲名 アーティスト アルバム Spotify URL
Angel Snow れみ from STAR☆ANIS TVアニメ/データカードダスアイカツ!』主題歌/挿入歌 1年目1 リンク
Angel Snow - ~いちご & おとめ Ver.~(Short Size) わか・れみ from STAR☆ANIS TVアニメ/データカードダスアイカツ!』COMPLETE SONGS1 リンク
Angel Snow - (Short Size) れみ from STAR☆ANIS TVアニメ/データカードダスアイカツ!』COMPLETE SONGS1 リンク
Angel Snow - ~おとめ & さくら & しおん Ver.~(Short Size) れみ・えり・ゆな from STAR☆ANIS TVアニメ/データカードダスアイカツ!』COMPLETE SONGS3 リンク
Angel Snow れみ from STAR☆ANIS TVアニメ/データカードダスアイカツ!』COMPLETE SONGS6 リンク
Angel Snow - ~おとめ & さくら & しおん Ver.~ れみ・えり・ゆな from STAR☆ANIS TVアニメ/データカードダスアイカツ!』COMPLETE SONGS11 リンク

f:id:gecko655:20191214234825p:plain
Angel Snow x5

人気度について

Spotifyは各楽曲の再生数をAPIで取得することができません。代わりに popularity なる値を取得できます。

ドキュメントによれば、

Popularity: The popularity of the track. The value will be between 0 and 100, with 100 being the most popular. The popularity of a track is a value between 0 and 100, with 100 being the most popular. The popularity is calculated by algorithm and is based, in the most part, on the total number of plays the track has had and how recent those plays are. Generally speaking, songs that are being played a lot now will have a higher popularity than songs that were played a lot in the past. Duplicate tracks (e.g. the same track from a single and an album) are rated independently. Artist and album popularity is derived mathematically from track popularity. Note that the popularity value may lag actual popularity by a few days: the value is not updated in real time.

とのことです。要するに、

  • 0〜100の値
  • たくさん再生されたり、最近再生された曲ほど高い値になる
  • そんなにリアルタイム性のある値じゃない

ということらしいです。内部の計算アルゴリズムは謎ですが、今回はSpotify様のおっしゃる人気度を信じることにします。

developer.spotify.com

  • Spotify APIで再生数を取れるようにしろとのGitHub Issueは2015年ごろからOpenのままです
    • Issueがなかなか荒れてて面白い

github.com

  • Spotify web clientのWeb socketを解析して再生数を取ってる人もいるらしい……
    • 怖いので今回は使ってないです

github.com

人気度一覧

では、本題の人気度ランキングです。

上位20曲(popularity>=27)の曲一覧は以下のとおりです。

  • popularityは整数なので同順位の曲がたくさんありますが、同順位内の順番は適当です。
  • 全758曲のランキングは、このブログの末尾に載せます。
曲名 popularity アルバム名 アーティスト URL
カレンダーガール 34 TVアニメ/データカードダスアイカツ!』主題歌/挿入歌 1年目1 わか・ふうり・すなお from STAR☆ANIS リンク
ダイヤモンドハッピー 30 TVアニメ/データカードダスアイカツ!』主題歌/挿入歌 1年目2 わか・ふうり・すなお from STAR☆ANIS リンク
アイドル活動! 29 TVアニメ/データカードダスアイカツ!』主題歌/挿入歌 1年目1 わか・ふうり・すなお from STAR☆ANIS リンク
Trap of Love 29 TVアニメ/データカードダスアイカツ!』主題歌/挿入歌 1年目1 すなお・わか・ふうりfrom STAR☆ANIS リンク
硝子ドール 29 TVアニメ/データカードダスアイカツ!』主題歌/挿入歌 1年目1 もえ・すなおfrom STAR☆ANIS リンク
SHINING LINE* 29 TVアニメ/データカードダスアイカツ!』主題歌/挿入歌 2年目2 わか・ふうり・ゆな from STAR☆ANIS リンク
オリジナルスター☆彡 29 TVアニメ/データカードダスアイカツ!』主題歌/挿入歌 2年目1 わか・ふうり・すなお・れみ・もえ・えり・ゆな・りすこ from STAR☆ANIS リンク
チュチュ・バレリーナ 29 TVアニメ/データカードダスアイカツ!』主題歌/挿入歌 3年目2 もな・るか・みき from AIKATSU☆STARS! リンク
START DASH SENSATION 29 TVアニメ/データカードダスアイカツ!』主題歌/挿入歌 4年目 るか・もな・みき from AIKATSU☆STARS! リンク
STARDOM! 29 TVアニメ/データカードダスアイカツスターズ!』主題歌/挿入歌 2年目 せな・りえ・みき・かな from AIKATSU☆STARS! リンク
Signalize! 28 TVアニメ/データカードダスアイカツ!』主題歌/挿入歌 1年目1 わか・ふうり・すなお・りすこ from STAR☆ANIS リンク
Take Me Higher 28 TVアニメ/データカードダスアイカツ!』主題歌/挿入歌 1年目2 りすこ・もえ・ゆな from STAR☆ANIS リンク
オトナモード 28 TVアニメ/データカードダスアイカツ!』主題歌/挿入歌 2年目2 りすこ・もな from STAR☆ANIS リンク
スタートライン! 28 TVアニメ/データカードダスアイカツスターズ!』主題歌/挿入歌 1年目① せな・りえ from AIKATSU☆STARS! リンク
episode Solo 28 TVアニメ/データカードダスアイカツスターズ!』主題歌/挿入歌 1年目① るか・ななせ・かな・みほ from AIKATSU☆STARS! リンク
Move on now! 27 TVアニメ/データカードダスアイカツ!』主題歌/挿入歌 1年目1 りすこ・わか・ふうり・すなお from STAR☆ANIS リンク
Wake up my music 27 TVアニメ/データカードダスアイカツ!』主題歌/挿入歌 1年目2 りさ・えいみ リンク
KIRA☆Power 27 TVアニメ/データカードダスアイカツ!』主題歌/挿入歌 2年目1 わか・ふうり・すなお from STAR☆ANIS リンク
lucky train! 27 TVアニメ/データカードダスアイカツ!』主題歌/挿入歌 4年目 るか・もな・みき from AIKATSU☆STARS! リンク
MUSIC of DREAM!!! 27 TVアニメ/データカードダスアイカツスターズ!』主題歌/挿入歌 2年目 せな・りえ・みき・かな from AIKATSU☆STARS! リンク
  • 1位は「カレンダーガール」でした。popularityは、2位以下が団子状態な中、2位から差をつけてpopularity=34です。2018年になってレコードが発売されるほどですし、順当ですね。
  • OPED曲が上位のほとんどを占めている。
  • OPED以外では「Trap of Love」「硝子ドール」がpopularity=29で同率3位、「Take Me Higher」「オトナモード」がpopularity=28で同率11位
  • スターズでは「STARDOM!」がpopularity=29で全体同率3位。健闘しているといえそう。
  • スターズOPED以外で最初に出現するのは「Dreaming bird」「荒野の奇跡」(popularity=25)。リリィ先輩の変拍子シリーズが強い。
  • BGM集での首位は「SHINING ROAD」。アイカツスターズ!のドレスアップBGM。
  • BGM集はpopularityがそもそも付いていない曲が多い
    • 「映画『アイカツ! 〜ねらわれた魔法のアイカツ!カード〜』BGM集」は、「芸能人はカードが命 - THE MOVIE ver.」を除きpopularityが0。MONACAワールドが堪能できるのでもっと再生されてほしいですね…

全データ

取得したデータと取得に使ったスクリプトはすべてgistにあげてあります。 データ: アイカツ!楽曲のSpotify上のデータ · GitHub

スクリプト群: Spotifyの楽曲データを取得するスクリプト群 · GitHub

gistのフィルタリング機能が優秀なので、適当に遊んでください。

f:id:gecko655:20191215021448p:plain
アイドル活動!ランキング

この記事の予約投稿直前に気づいたのですが、この表、歌唱担当を入れてフィルタリングすればユニパレのセットリスト予想に使えそう。

Future Works

  • Spotifyが分析した「曲の特徴」を /audio-features APIで取ることができるらしいので、なんか分析してみたい
    • acousticness とか instrumentalness とかが返ってくるらしい

developer.spotify.com

  • 曲のWritten by(ソングライター)情報はAPIで取得できないらしい。作曲家別人気順とか見たかった。

f:id:gecko655:20191215012837p:plain:w400
浜渦正志さんのアイカツ!楽曲はダンシング☆ベイビー1曲のみ

  • その他、何かやりたいことあったら、↑に貼ったgistからスクリプト流用していろいろやってみてください。

おわりに

  • 人気順位は思った以上に順当だった
  • リリィ先輩強い
  • BGM集、もっと再生しましょう。 良い ので。
  • フレンズもサブスク開始してほしいなぁ…
  • フォトカツ曲も……

追記

playlist取得してからtrackを取得するスクリプト書いたけど、 よく見たらplaylist内にすべてのtrack情報入ってたから、2段階で取得する必要なかったな……

アイカツ!シリーズアニメ公式HPからストーリーを取り出すスクリプトを書いた

この記事は「アイカツ! Advent Calendar 2019」5日目の記事です。

tl;dr

github.com

aikatsu_story実行例
aikatsu_story実行例

これはなに

アイカツ!木曜時代、会社のPCでその日に放映されるアイカツ!のあらすじを確認したいことがよくあったのですが、会社のPCで http://www.aikatsu.net/story/ を開いて、会社PCで

aikatsu.net/story (http://www.aikatsu.net/story/story-010.html) ↑を開くのはモラルを疑われそうなので、シェル上でこっそりアイカツ!のあらすじを確認できるスクリプトを書きました。

www.aikatsu.net

使い方

インストール(HomeBrewの場合)

brew tap gecko655/aikatsu-story
brew install aikatsu_story

インストール(HomeBrewを使わない場合)

https://github.com/gecko655/homebrew-aikatsu-story/blob/master/aikatsu_story をダウンロードして適当にpathを通してください。

なお、

  • jq, pupがインストールされている必要があります。
  • Bashの文法をふんだんに使ったので、Bash以外のshellでは動かない気がします。

使い方

Usage: aikatsu_story [-0] [-s] [-f] [-o] [--url] [--title] episode-id
  -0: Aikatsu!
  -s: Aikatsu Stars!
  -f: Aikatsu Friends!
  -o: Aikatsu on parade! (current default)

  --url: Show story url instead of story
  --title: Show story title instead of story

想定している使われ方

  • まずは普通に
aikatsu_story -0 79
aikatsu_story -0 --title 79
aikatsu_story -0 --url 79

パートナーズカップのかいさいがこくちされ、せけんはもり上がる。パートナーズカップでしょうりするかぎは、自分に合うベストパートナーを見つけること。ぜんはいそげと、いちごやセイラたちも学園のかきねをこえてそうだんをしはじめる。気になるあの子やあの子のパートナーは、はたして…!?

第79話 Yes! ベストパートナー

http://www.aikatsu.net/02/story/79.html

ツイッターのオタクが「79話が〜」などのように話数で会話し始めたときに、こっそりどの回か確認するのに便利

# python製twitter clientのインストール( https://github.com/sixohsix/twitter )
pip install twitter
twitter  # OAuth設定する

aikatsu_story 10 |  twitter set

aikatsu_story -f 11 | tee >(say -v Kyoko)

遂にみおはあいねとフレンズ結成のための行動に出る。 憧れは、もはや伝説となっている『ラブミーティア』結成秘話のようなドラマチックすぎるシチュエーション。あいねに話すタイミングをうかがっていると、名古屋から来たアイドル海老原なこと何やら親密そうにしており――?

(音が出ます)


(aikatsu_story -s 98 | sed 's/。/ /g'; aikatsu_story -s --title 98) | xargs echo-sd --stress
季節は3月
    ↘
   つまり、中等部3年生の白銀リリィと二階堂ゆずの卒業のじき
    ↙
四ツ星学園の高等部に進学する予定のリリィに対し、ゆずは世界中のじむしょからスカウトをうけ、どこに行こうかなやんでいる様子
    ↘
   今までずっと一緒だった2人の道は、4月からべつべつになってしまうのか…?
    ↙
_人人人人人人人人人人_
> ゆずっとリリィ☆ <
 ̄Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^ ̄

ぼくの想像力ではこれ以上ビビッと来るものがなかった

その他

  • 毎回 http://www.aikatsu.net にアクセスするので、あんまり高頻度に実行しないようにしてください。
    • ローカルでキャッシュを持ったりとかはしてないので
  • ストーリーの内容から話数を逆引きすることはできません
  • 今週のアイカツオンパレード!が何話か自動で計算する機能は付けていません。
    • おはなしページ(http://www.aikatsu.net/story/)の一番新しい回を見に行けばいいように見えるが、おはなしページは2話先まで更新されることがあるので使えない
    • カレンダーから計算することもできなくはない気がしますが、正確性を担保できない気がしたので諦めました。
  • おはなしページの仕様、シリーズごとにころころ変わりすぎ
    • ストーリーの書いてある要素のclass名が text, story-text, story-main, story-waku-menu, story-frame-menu と変化している
      • フレンズ51話以降は story-frame-menu で安定してきたかも?
    • 無印31話だけclass名が異なっている
  • このスクリプトを書いたのは今年の4月ごろで、現在アイカツ!は木曜から土曜に移ってしまいましたが、MXの再放送はまだ木曜日ですし、最新話のストーリーをシェルで得られるのは何かと便利です。
  • これでぼくもアイカツエンジニアのおねえちゃんを名乗っていいですか

今後も末永くアイカツ!シリーズが続いて、 http://www.aikatsu.net が毎週更新されていってほしいですね。

転職して3ヶ月が経った

2018年9月1日に入社して3ヶ月経ち、試用期間が終わりましたので、
その所感を書き留めておきます。

前職のコアタイム11:00〜18:00の8時間/日勤務から、コアタイム10:00〜15:00の8時間/日勤務になった

  • 朝がスーパーつらい
  • 有給が1時間単位で使えるようになったので、予定外に寝坊した場合でもリカバリが一応効く。ただし年n回以内の制限がある
  • この3ヶ月は1回遅刻しただけで済んでいる

有給の付与ルールが、前職より有利になった

  • 前職は入社6ヶ月後10日、入社1年6ヶ月後11日…… の労働基準法最低ライン
  • 現職は入社3ヶ月後10日、入社3ヶ月1日後以降の最初の4月1日に11日…
  • 私の場合9月入社なので、2018年12月1日に10日、2019年4月1日に11日降ってくる。前職に居続けるより多くなってしまった。

清掃員以外の従業員が社内の掃除をしなくて良くなった

  • 最高。

大便所待ち時間が、9割の確率で0分、1割の確率で2分以下になった

  • 最高。
  • 前職だと週1回は大便所5↑分待ちをしていた気がする。

鉄道定期券を持つようになった

  • 前職では徒歩通勤扱いだったので、休日どこに行くにも電車賃がかかるせいで予定がなければ家から一歩も出なくなっていたが、現職は電車通勤をしているので、予定がなくてもふらっと電車で定期券内に出かけるようになった。
  • 休日の精神が安定する。

昼休みに昼休憩打刻をしなくて良くなった

  • これは一長一短で、面倒な昼打刻をしなくて良くなったのはいいが、昼休憩に費やすべき時間の目安がなくなってしまったので、今は昼休憩時間を取らなすぎな気がする。
    • 20分で昼飯食ってすぐ仕事再開とかしてる
  • ちゃんと1時間計って休憩取ったほうが性に合っている気がする。
  • 「別に仕事ちゃんとしてれば休憩なんていくらでも取っていいよ」とは言われるものの、難しいものがある。

月給=年俸/12から月給=年俸/14,ボ(年2)=年俸/14 になったので、月給がちょっと減った

  • すなわちそんなに年俸が増えてないということです
  • 早く最初のボを貰いたい。初回は来年6月。

同期の概念が消失したので、部署外に知り合いがほとんどいない

  • 全社の飲み会で、居場所が部署の卓しかない
  • Slackにオタクチャンネル的なものもなさそう。前職は活発でしたね…
  • 転職ってこういうことなのか〜となった
  • 運良く大学のころからテキサスホールデムポーカーを趣味にしていたおかげで、社内ポーカーサークルに入れてもらうことができた。
    • 月1でトーナメントしてる
    • しかしまだ全然顔と名前が一致してない

ふるさと納税がダルい

  • 計算しなきゃ(まだなんもやってない)

仕事の中身についてや、仕事の同僚について、現職の会社名称等は、ここには書かないのでオフラインで聞いてください。

https://gecko655.sarahah.com

https://www.amazon.co.jp/gp/registry/wishlist/YRJIIK4FXMEX/

株式会社Donutsを退職しました

書くこと

主に、初めて転職活動をした感想を書きます。 タイトルに社名を入れましたが、会社のことはあまり書いていません。

現職について

大学院卒業後2016年4月から勤めていた株式会社Donutsを、本日(2018/8/20)最終出社日として退職しました。
勤続2年5ヶ月でした。
今後の更なるご発展をお祈り申し上げます。

転職活動について

転職エージェントについて

今回が1回目の転職ということで、 シキタリとか作法とかがよくわからず*1、特にコネもなく、交渉事が発生すると一人ではすぐ折れそうな気がしたため、 全面的に転職エージェントさんに応募やスケジュールの管理をお願いしていました。

今年の3月ごろから転職エージェント会社と連絡をとり、年内の、できれば現職で有給が付与される10月以降に現職を退職するようなスケジュールで行きたい*2という感じでお願いしていましたが、いろいろ行き違いが発生してしまいました。

  • 書き途中の職務経歴書*3を、候補の企業に送付されてしまった
  • 最初の面接は5月頃から始めたい*4と伝えていたはずが、4月の面接日程をバンバン入れられそうになった*5
  • そもそも面接を5月から始めてしまったために、内定が7月に出てしまい、かつあまり入社日を遅くすることが難しいという条件だったため、当初の「10月以降に現職を退職したい」希望を諦めることになった
    • 「5月に1次面接を受けると7月には内定が出て9月には入社している」という常識があれば、5月に面接を入れられた時点で疑問に思うことができたと思うのですが、言われるままに面接を受けてしまいました。今回の転職活動で一番大きな失敗です。
    • もし次回があれば、退職希望の月の3ヶ月まえくらいから転職活動をスタートするようにしたいと思います。

最終的に決まった次の職場については今のところ満足していますが、転職エージェントにいろいろ勝手にやられてしまったのはつらかったです。
かといって、エージェントにやってもらっていた雑務や交渉事は、私にはきっと手に負えなかっただろうなと思いますし、エージェントを使わないよりは良い結果だったのではないかと思います。
次回の転職があったら、エージェント会社はもうちょっと真面目に選ぼうと思いました。もしくはその頃には友人の会社にお誘われるような身分でいたい。

選考結果

選考結果ですが、
書類を出したのがたぶん15社くらい
書類を通したのが8社
1次面接を受けたのが3社
内定をもらったのが1社でした。
内定後にオファー面談に行ったものを含め、選考中に企業に赴いた回数は7回でした。
平日、仕事が終わったあとに他の会社に出入りするのはかなり体力を使いますし、
この回数をいかに減らして、体力のある状態で面接に臨めるかが重要だと感じました。
週2で面接に行った週などはかなり疲弊したので、週3は無理だなと思いました。

退職交渉について

上司が理解のある方でよかったです。感謝しています。

追記 2019/07/04

直属の上司は理解があったんですが、社長副社長は理解がなくてつらかったです。

追記おわり

モスキート音について

以下の増田は私が書いたものです。

anond.hatelabo.jp

会社とは(リモートワーク等を考慮しなければ)年間200日以上通わなければいけない場所であり、 面接に行ったらそのエントランスホールで強烈なモスキート音が鳴っていたというのは、絶望という他ありません。 これがデパート入り口とか居酒屋の玄関とかであればそこに用事がある一瞬だけ我慢すればいいかとなるのですが*6、この会社に入ると平日毎日モスキート音を聞かなければいけないわけで、自分には耐えられるわけがありませんでした。

その企業については、「モスキート音が止められないのであれば選考を辞退する」旨を2次面接及び転職エージェント経由でお伝えし、そのまま2次面接不合格となりました*7

ここでは企業の名前を具体的に書くことはしませんが*8*9、この企業に限らず、企業各位はモスキート音によって採用活動上不利益があるかもしれないことを知ってほしいなと思っています。

また、エントランスホール等でモスキート音が鳴っていて、通勤時にモスキート音を回避できないような企業のリストがほしいと思いました。
モスキート音のコミュニティがまとめた以下の地図がある程度役に立つのですが、 「現在は廃止された場所」、「商業施設では鳴っているがオフィス用スペースでは鳴っていない場所」などノイズが多く、 今回は見逃してしまいました。
求人票に「弊社ではエントランスホールでモスキート音を使用しています」のような表示をすることを、「原材料の一部に大豆を含みます」と同じように義務としてほしいです。

www.google.com

ちなみに、モスキート音を聞こえなくするような手術等できないかとAskDoctorsに課金して質問してみたのですが、4名の医師から回答があり、まとめると「手術なんてできないので耳栓するか内服薬で一時的に聴力落とすしかねえよバーーーーーーーカ」とのことでした。 www.askdoctors.jp

有給消化について

유급 소화 동안은 삼박사일 대한민국 서울 혼자여행 하기로했습니다!
仕事で韓国語を使っていたことを記念して(?)ソウル旅行に行きます。
飛行機と宿は取ってあるのですが、旅程は適当なので、なにかオススメスポットとかあれば教えてください。

また、それ以外の予定もあと3日ほど空いており、何しようかなと考えているところです。

候補

次の仕事について

現職の名称は書きましたが、 次の会社については、多少仕事が落ち着くまでは書かないでおきます。
少なくとも、今と変わらずソフトウェアエンジニア業です。
オフラインで聞いてください。

いまのところはまだ何もやってないので、入社してから「失敗した〜〜」とならないことを祈るばかりです。

その他

現職中はなんとなく恥ずかしくてナナシス関連のことをなるべくつぶやかないようにしていましたが、 これからは普通の1ファンとして追っていこうと思います*10*11

退職するとふぁぼが稼げて楽しい。どうしてFavstarは終わってしまったんだ。

書くことがなくなったのでこれで終わります。

https://gecko655.sarahah.com

https://www.amazon.co.jp/gp/registry/wishlist/YRJIIK4FXMEX/

*1:内定から入社までどのくらい期間をあけてよいかとか、退職の連絡は内定取ったあとでよいのかとか、基本的なことが何もわかっていなかったのです

*2:10月に有給が12日付与される予定でした

*3:「あとで書く」みたいなメモ書きが残ったままでした

*4:現職の勤務体系が10時〜19時固定だったものが、5月に人事評価が上がって11時〜18時のフレックスになる予定だったため、フレックスに移行してから面接に望むつもりでした

*5:しかも5月初旬に人事評価の更新があるはずが、現職の都合で下旬までずれ込み、面接日程がさらに後ろに延びていきました。これは私ないし現職が悪いのですが

*6:モスキート音が鳴っていないに越したことはない

*7:きっとモスキート音等は関係なく実力で落ちたのでしょう

*8:モスキート音が聞こえる方で、モスキート音がうるさい企業の名前をどうしても知りたい場合Twitter DMなどでご連絡ください。「モスキート音が聞こえる」ことがわかるツイートを過去にしているかどうか確認します。

*9:具体的に書かなくてもバレてるか?

*10:ナナシスの部署に所属したことはありませんが、ナナシスチームの目の前の席にいたことがあってメディアにもよく露出している方々が機密情報を話しているのが漏れ聞こえてたり、今後のメディア発表の日程を事前に知ることができたりして、面白かったです

*11:退職すると「ナナシスエゴサする」という言い回しが使えなくなるのがちょっと残念