情報学部大学生のダラダラ日記

β日記

機械学習や日記っぽいものを書きます

論文メモ⑤:Reducing Transformer Depth on Demand with Structured Dropout

論文の情報

一言まとめ

Dropoutは深層学習を用いる際にほぼ必ずと言っていいほど使われる技術である。Dropoutとは一般的にノード間の重みを無視することを指すが、本論文ではノード間の重みではなく層全体をDropout、すなわち無視する。今回対象のモデルとして非常にDeepなモデルであるTransformerを正規化させ、学習を安定化させた。

本論文は実験を多く行っている。結果を以下に示したが他にも多くの実験でTransformerにLayerDropを施すことでスコアが上昇した。

感想

層全体をDropoutするという発想は非常に面白かった。層をDropoutするのならば初めからなければ良いのでは?と思ったがそうではない。学習の過程でいらない層を識別し、Dropoutしてから再学習のような手法を取っているからだ。多くの実験で良いスコアを出しており、2019年に出された論文であるにも関わらず2021年最近の論文でLayerDropの文字を見ないのであまり使われていないのだろうか。見逃しているだけかもしれない。被引用数も多いので反響は大きかったと思う。

 

 

pandasのdatatime型でのAssertionError: <class 'numpy.ndarray'>

はじめに

pandasのdatetime型を扱ったときにエラーを吐かれ、検索してもほぼ出てこなかったので残しておきます。

問題設定

以下のようなcsvファイルをpandasで読み込み、dateをindexにした後にdateが2020年のものをスライスすることを目的とする。下の表は一例だがデータ収集の際、日付に関して降順にソートされている。

title date
aa 2021/4/3
bb 2021/2/1
cc 2020/6/11
dd 2020/2/20

今回動かしたコードは以下:

import pandas as pd

df = pd.read_csv('./data.csv')
df['date'] = pd.to_datetime(df['date'])
df.index = df['date']
print(df['2020'])

まずdateが年/月/日となっているのでpandasのdatatime型に変換する。変換すると年-月-日の形となる。このdatatime型をindexに設定するといろいろと楽なのでindexを変更する。日付で範囲指定できたりスライシングができる。 https://qiita.com/sakabe/items/ae1fa47a58c796006627 とりあえず2020年のものを抜き出そうとすると、、、

AssertionError: <class 'numpy.ndarray'>

解決方法

初めに解決方法だけ書く。どうやらdatetime型は昇順にソートされていないとスライスができないようなのでdateに対してソートを行う。すなわちdf = df.sort_index()を追加することで期待する出力(=2020年のtitle)が得られる。

原因

AssertionErrorはプログラムが設定されたアサーションがFalseとなったときに出るエラー。今回はpandas側でエラーが出ている。エラーログを見るとassert isinstance(slobj, slice), type(slobj)となっているため本来受け取ってはいけないnumpy配列型がきてしまっている。pandasの中身を見てみるとslice型?スライスオブジェクトを受け取るらしい。それが何故昇順にソートすることでnumpy配列からスライスオブジェクトになるのかはわからない。numpy配列で何を受け取っているのか確認すると元のインデックスを受け取っているようだった。また、(ないとは思ったが)sort_index()で特別な処理がされているのでは?と思い敢えて降順でソートsort_index(ascending=False)として実行してみたが同様のエラーが出た。よって昇順にソートされていることが重要であると考えられる。もし何か知っている方がいたら教えてください…。

論文メモ④TransGaGa: Geometry-Aware Unsupervised Image-to-Image Translation

論文の情報

簡単なメモ

CycleGANなどの従来の手法は、猫⇔人間などの大きな幾何学的変化を伴うドメイン変換のimage2imageタスクは達成できていなかった。提案手法では入力画像をgeometry(向き)とappearance(形状)に分け、それぞれ潜在変数に落とし、さらにそれぞれに変換器を用意することでタスクを達成している。アーキテクチャは以下の図(論文より)。

f:id:Parco1021:20210315134227p:plain

geometryはヒートマップを用いて表現されている。このヒートマップをきちんと実現するための損失関数が導入されている。

さいごに

アーキテクチャや損失関数の自分なりの詳細な解説はこちらに書かせていただいたので興味のある方は是非。

ai-scholar.tech

パズドラ×Marvelコラボキャラ解説

MARVELコラボ実施!

★6,7

キャプテン・アメリカ
  • 進化前

10c*2の悪魔キラーは強そう。スキブ少ないけどね。スキルはロック解除とエンハンス、回復確保で強そう。強いけど使わなさそう。主にノルザのせい。

  • 究極進化

スキブ4の毒耐性を持っている。スキルが大分サポート向けで強い。魔廊において水パの人権がないので激減スキルはまだ使われないだろうが、今後水パの激減枠で使われると思う。

  • 武器①

スキブたこ焼武器。スキルも全部回復の回復と操作時間延長。かなり強い。

  • 武器②

雰囲気アカザ武器に似てるね。キラーないけど。こっちの武器にするなら武器①にするかな。

アイアンマン
  • 本体

23T変身だがスキブ2持ち。

変身後は覚醒スキルがつよく、スキルが炭治郎に似てて3T(操作時間分ね)。リーダーとしては回復倍率がないのが非常に気になる。今後火パ潰しが来るのは想像に難くないので心配。

  • 武器①

 

スキブたこ焼。強い。持っておきたい。

  • 武器②

追い打ちとお邪魔4武器。なーんか強そう。持っていなくても困らないとは思う。

キャプテン・マーベル
  • 本体

物語シリーズコラボの羽川とバチコリ合うLSだが、やはり同色2cはあまり評価できない。リーダーとしてはあまり長くは持たなさそう。しかし覚醒スキル、スキルが非常に優秀で火力が出るのでこれから光の環境が来たら間違いなく必須キャラになる。

  • 武器①

 

全回復+10c確定二色陣。なんかめちゃくちゃピンポイントでランダンの出番ありそう。ランダンを見なくてもいい覚醒、スキルをしている。

  • 武器②

2T無効無効+半減。覚醒スキルも悪くなく、結構いい性能をしているが、本体と武器①の方が作りたい。

スパイダーマン
  • 進化前

なんか神原武器みたいな感じね。ピンポイントで使うことはありそう。

  • 究極進化

使わなさそう。スキルもなんとも。

  • 武器①

火たこ焼と雲お邪魔とかなり良い感じの覚醒スキル。

  • 武器②

スキブお邪魔*2暗闇*2であり、2T両吸収無効を持っておりかなり優秀。本体が微妙なのでこの武器にして良いと思う。

フェニックス・ジーングレイ
  • 本体

23T変身のスキブ2、封印あり。

7c*3L字無効貫通たこ焼(火闇)はガチで強い。スキルも6Tで打てる全回復、ロック解除と回復込み三色陣。本当に強い。リーダーとしても悪くないが、サブでいい働きをすると思う。

  • 武器①

封印と毒3武器ってない気がする。なぜかおまけにL字もついている。8T軽減も悪くない。普通に強武器。

  • 武器②

アイアンマンみたいな覚醒スキルだね。悪くないけど本体と武器①が良すぎるのでよほど余っていなければ作らなくておk。

ハルク
  • 本体

木クリス。木は闇と違い泥供給が間に合っている感じがするためクリス程必須キャラにはならなさそうだが十分に強い。今後のダンジョン次第。

  • 武器①

スキブたこ焼武器。スキルも強い。持ってはおきたい。

  • 武器②

チームHPはうれしいが特別使うほどではない。本体そのままで使うか武器①で良い。

ドクター・ストレンジ
  • 進化前

ノルザで良い。

  • 究極進化

全回復とダメージ吸収無効は周回で何回も欲しいと思った。ブラックジャックしかまだいなかった。唯一性はある。

  • 武器①

水泥を持っているので水パで使いたいが水パにはノルザがいるので雲が活きない。スキルもノルザと被っている。

  • 武器②

十字覚醒と毒*2。十字覚醒の評価がまだ何とも言えないが、スキルが10連ガチャドラと同じなので弱いということはない。

ウルヴァリン
  • 進化前

無効貫通4持ちでマーベルパの無効貫通枠。スキブ4も偉いしスキルで回復も作る。強い。

  • 究極進化

高級錆兎()。LSが無惨様。オチコン無しなので無惨よりもランダン・周回向け。

  • 武器①

覚醒スキルもスキルもいい感じ。本体が強めなのであまり作らないかも。

  • 武器②

スキルが強い。覚醒はなんとも。

ロケット&ベビーグルート
  • 本体

サブのままでは使えないというクセのすごいスキル。変身後のLSはまあまあ強い。いなくても困らない。

  • 武器①

ありふれた2way武器。ゼローグ武器でおk。

  • 武器②

リダチェン武器として使うならボンタくんで良い。覚醒は悪くはないぐらい。他のキャラの武器と比べるとね…。

ペニー・ワーカー
  • 本体

スキブ3の18T変身。

なんか強そうな覚醒スキルとなんか強そうなスキル。いい感じだが無難なので特別使うかは怪しい。

  • 武器①

2Tヘイストの火列生成。特に周回で強そう。

  • 武器②

なんだこの覚醒。特に使わなさそう。

デッドプール
  • 進化前

なんかよくわからんけど使うことはなさそう。

  • 究極進化

悪くない生成スキルを持っている。LSがカグツチのような感じ。

  • 武器①

テープお邪魔の無効無効、悪くはないが武器②を優先。

  • 武器②

スキブ暗闇*2毒*2、4Tヘイスト。はい強い。何もかもが強い。今回のコラボの武器では間違いなく一番強い

マグニートー
  • 進化前

スキブも多く、お邪魔耐性+も付けられ、7c*3の無効貫通持ち。無難に強い。

  • 究極進化

ルーレットを5Tで上書きできるが2つ作るのはさすがにだるい。あとは基本的に進化前と同じ評価。

  • 武器①

アマコズミみたいな覚醒。アマコズミでいい気がする…。

  • 武器②

スキブ2way武器。周回とかで使う、かな??

サノス
  • 進化前

サブで強そう。11Tで6倍エンハンスって結構すごいね。こんなに倍率いるかは知らないけど。

  • 究極進化

50%グラビティ。超根性は剝がれるが根性は剝がれないらしい。まあどこかで使うでしょう。

  • 武器①

スキルが5Tと短くたまってしまうのが残念。覚醒スキルは強め。

  • 武器②

重いターンのスキブ神キラー武器。いいね。

 

★5

ストーム

  • 本体

使わない。

  • 武器①

泥強*3と各種耐性、激減スキルを持っているので水パではアリ。

  • 武器②

列強武器。スキルも相俟って周回向け。

ソー

  • 本体

10Tで2T吸収無効が打てる。さらに9Tオチコン無しとロック目覚めなのでどこかでピンポイント採用はあり得そう。

  • 武器①

20Tで打てる2T吸収無効武器。伊之助とか持っていたらいらない。

  • 武器②

消せない以外全回復+ロック解除光列生成。覚醒スキルも悪くない。

サイロック

  • 本体

使わない。

  • 武器①

L字武器。使わない。

  • 武器②

追撃と封印2つ。最近どこかでこの覚醒を求めた気がするので使いそう。

ブラックウィドウ

  • 本体

使わない。

  • 武器①

闇泥強たくさんと体力キラー武器。

  • 武器②

闇光タコ焼き武器。どこかで使うかも。

ブラックパンサー

  • 本体

使わない。

  • 武器①

闇列武器。使うなら周回。

  • 武器②

テープと50%以下武器。なんか雑に継承させるときにぐらいかな。

ホークアイ

  • 本体

使わない。

  • 武器①

★5キャラでスキブ武器。しかもスキルもいい感じ。強い。

  • 武器②

こっちもスキブ武器。スキルも武器①とは違う方向で周回向け。本当に強い。

ロキ

  • 本体

他と比べて強そうに見えるがまあ使わない。

  • 武器①

一応グラビティ武器。

  • 武器②

結構面白い性能。10T自分を闇属性にするので闇パに他色キャラを入れられる。具体的に使い道が思い浮かばないが持っておきたい。

ヴェノム

  • 本体

お邪魔パーティーがお好きな人以外使わない。

  • 武器①

上に同じ。

  • 武器②

バインド耐性バランスキラー武器。この武器が一番"マシ"なのでこの形態にしよう。

パズドラ×物語シリーズコラボ全キャラ評価&解説

はじめに

パズドラ×物語シリーズコラボが1/4から来ています。僕自身物語シリーズは観たことがないのでどういうキャラなのか知らないのですが、これを機に観たいと思います。キャラの呼び方が間違っていたらすみません。

評価はS~Cで付けました。評価基準は環境や汎化性、唯一性を参考にしています。

 

 

物語シリーズコラボ総評

初のタコ焼き(属性コンボ強化)武器の実装。この武器が貴重なものとなるのかはたまた安売りされて今後たくさん出てきて価値が暴落するのかは運営様次第。現時点で替えが効かないので星7以上はできたら引いておきたい。星6もめちゃくちゃ弱いわけではない。本体は環境に合っていないキャラが多いがやはり武器が強いし今後の環境次第で台頭してきそうなキャラは多くいる。

このガチャ引くべき?と聞かれたら引くべきだと答えるが、貯めた石を全ブッパするかと言われたら否。後に富士見コラボが控えてるし早急に使いたいキャラはいないので慎重にいきたいならギリギリまで富士見の情報を待ってから決定しよう。例えば次の富士見でタコ焼き武器がわんさか出てくるのならば今後も出てくると考えられるので物語シリーズを引くのを少し控えめにするなどする。

阿良々木暦の交換はガチャで引けなかった場合はできれば交換したいが、交換券が再レアなので無理は禁物。本体も武器も強いが他で全然替えが効く。ムリハダメゼッタイ。購入分は羽川と星7以上確定があるがこれは結構買ってもいいと思う。

同じ石7コラボの鬼滅で感覚がおかしくなっているがちゃんと石7たる性能をしている良コラボ。

 

阿良々木暦(進化前) A+

f:id:Parco1021:20210104173541j:plain

覚醒がちゃんと無効貫通も持ってて無難に強い。超覚醒が優秀。リーダースキルも無難に強そう。スキルも無難に強い。全てが無難に強い。

阿良々木暦(究極) A+

f:id:Parco1021:20210104173544j:plain

進化前と比べて無効貫通が無くなっているがスキブ6(超覚醒込)、タコ焼き2とパーティー全体への恩恵がでかくなった。といっても本体が火力が出ないわけではなく7c10c持ちとちゃんと火力が出る。無効貫通ないけど。

究極後はリーダースキルが面白い。1.5倍半減3コンボ加算はアツい。LFで究極前と後で組ませたら面白そう。

阿良々木暦(武器) A+

f:id:Parco1021:20210104173548j:image

覚醒のタコ焼きが強いのは勿論だが、スキルが全回復+闇たくさん生成でかなり強い。

戦場ヶ原ひたぎ(進化前) B

f:id:Parco1021:20210104173551j:image

1ターンで打てる水3生成(+操作減+HP50%減)は強そう。50%以下で火力は出そうだがスキブが2しかなく物足りない。どこかで使いそうだがどこで使うかは知らない。

リーダー運用は99%以下に維持しなければいけないのが面倒くさいし事故が起きそう。面倒くさいのにあまり強くないので微妙。使うならサブ。

戦場ヶ原ひたぎ(究極) B+

f:id:Parco1021:20210104173555j:image

進化前と異なり50%以下は持っておらず7c*3と水タコ焼き*2と性能が丸くなった。スキルは何か裏につけて~ってやったりリダチェンしたりしたらよさそう。体力低いのが若干気になる。

戦場ヶ原ひたぎ(武器) A-

f:id:Parco1021:20210104173558j:image

タコ焼き+耐性2つ。4ターン属性吸収無効はアツいが最近は4ターンも使わないことが多い。でも4ターンは山本さんに続いて2体目で必要になる時が来るかもしれない。

八九寺真宵(進化前&究極) B

f:id:Parco1021:20210104173620j:image

f:id:Parco1021:20210104173625j:image

リーダースキルや覚醒がどうであろうがスキルが12ターンでルーレットを1個1ターン生成するだけじゃどうにもならない。一応進化前は多色最強候補のリーダースキル。

八九寺真宵(武器) A+

f:id:Parco1021:20210104173700j:image

スキル封印*3と各種耐性*1と新しい武器。最近スキル封印が足りなくなることが増えてきたので環境に適している。

神原駿河(進化前) B+

f:id:Parco1021:20210104190359j:image

戦場ヶ原さんのサブで使えと言わんばかりの性能。僕は物語シリーズ知らないのですが何か関わりがあるんですかね??

スキブもほどほどにあってスキルのダメージ激減が偉いですね。おそらくこのキャラを使う時は体力の調整をしながらなのでこの激減は重要です。

神原駿河(究極) A-

f:id:Parco1021:20210104190404j:plain

無効貫通は持っていないが超覚醒込みで7c3持ちにでき、タコ焼きもあるのでまあまあ。

神原駿河(武器) A+

f:id:Parco1021:20210104190420j:image

スキブ+L字+お邪魔と普通にいい感じ。ランダンでも使いそう。スキルは初めての8Tで打てる無効無効スキル。最近リュウメイなど火力は出るが無効を持っていないキャラが多いのでこれはありがたい。ただしスキルを使うことができないので周回でこのスキルを使った後に勇次郎ブレスを打つことができなかったりするので注意が必要。

千石撫子 S

f:id:Parco1021:20210104190424j:image

f:id:Parco1021:20210104190428j:plain

変身前でちゃんとスキル封印とスキブ2持ってるので偉い。変身後は1.5倍半減18倍3コンボ加算と書いてあることはかなり強い。自身も3Tで1.5倍エンハンスを打てるので火力がかなり出る。覚醒スキルは木タコ焼き*3の7c10c悪魔キラーで自身含めパーティー全体に火力を出すことができる。無効貫通を持っていないことがかなり気にはなるが、今のところ物語シリーズでは一番アタリ。あとKusoKawaii。

千石撫子(武器) B+

f:id:Parco1021:20210104190440j:image

戦場ヶ原さんなどと覚醒スキルの評価は同じ。しかし前2者と比べてスキルが微妙。

羽川翼 A+

f:id:Parco1021:20210104190445j:image

f:id:Parco1021:20210104190449j:plain

2440円の女。変身前は千石さんと同じ。変身後のリーダースキルも倍率は千石さんと同じで異なる点は3コンボ加算か固定ダメか。固定ダメ持ちなので相方が欲しいが今のところ正月ラジョアかなぁといった感じ。攻撃タイプ持っていたらファスカを組ませるがさすがにケアされた。また、千石さんと同様無効貫通を持っていない。しかし千石さんと異なりLFで使うことはほぼ無いと思うので相方やサブで十分補うことができる。スキルが4Tで打てる属性吸収無効+光6個生成。強い。今後もっと強い相方が出てくる可能性は大いにある。

羽川翼(武器) A

f:id:Parco1021:20210104190500j:image

覚醒スキルは言わずもがな。スキルが2T激減なのでかなり強い。出番は多そう。

忍野忍(進化前) B-

f:id:Parco1021:20210104190505j:image

スキブ5で無効貫通も3つ持っている。実運用しようとすると火は他に優秀なキャラがいるので出番はなさそう。しかしスキルが両端火生成なので周回で使えるかもしれない。

忍野忍(究極) B+

f:id:Parco1021:20210104190515j:image

進化前と基本的に同じ評価。イマイチって感じ。

忍野忍(武器) B+

f:id:Parco1021:20210104190518j:image

スキルの重いタコ焼き武器。 

阿良々木火憐 B

f:id:Parco1021:20210105182531j:image

スキブ4の攻撃キラー特化で火力が出る。スキルがエンハンスと激減なので使い道はありそう。攻撃キラー複数持ちは最近増えてきたので他を持っていれば必要ないがランダンで代用にはなるかもしれない。

阿良々木月火 C

f:id:Parco1021:20210105182535j:image

回復盛りで使うかも、使わないかも。

忍野メメ C

f:id:Parco1021:20210105182549j:image

基本使わないと思うが一応スキルがまあまあ使いそう。

貝木泥舟 C+

f:id:Parco1021:20210105182553j:image

自身も50%以下でアタッカーとなり得、スキブも4つあり、スキルが優秀。一応複数持っておきたい。

影縫余弦 C

f:id:Parco1021:20210105182603j:image

貝木さんと似た性能をしているが、覚醒やスキルがイマイチ。

 

斧乃木余接 B+

f:id:Parco1021:20210105182606j:image

体力キラー*3のスキブ4、L字も持っていてランダンで使いそう。実運用でもスキルがほどほどに強い。

臥煙伊豆湖 B+

f:id:Parco1021:20210105182610j:image

木版錆兎スキル。錆兎と異なり7cは持っていないが、10cと悪魔キラー神キラーを持っており、さらにバランスタイプなので潜在で好きなキラーを付けられる。クリスマススカーレットで使いましょう。まあ持っている人は錆兎でいいんですけどね。

 

 

 

昔懐かしの駄菓子をたくさん買って食べた

はじめに

今回、駄菓子を1000円ぐらい買ってきたのでそれぞれの感想を書こうと思います。懐かしいね。

 

買ってきた駄菓子はこちら↓↓

f:id:Parco1021:20201103235921j:image

懐かしいものから初めて見るものをたくさん買ってきました!では値段と感想を書きます。。。 

 

カットよっちゃん

f:id:Parco1021:20201103235925j:image

65円。ビールが飲みたくなった。酢イカの味がする。小学生の時にこれを好きな人は大人になって絶対お酒好きになる。

 

ポテトフライカルビ焼肉味

f:id:Parco1021:20201104001133j:image

45円。美味しい。これ45円もしたっけ?30円ぐらいじゃなかったっけ、、、

調べてみたら僕が昔食べていたのはポテト"スナック"の方でこれではなかったらしい。件のポテトスナックは2013年頃に生産中止されている。驚き。

 

あわコーラ味

f:id:Parco1021:20201104154741j:image

33円。あわわっ?!あわわわわ!!泡で吐きそうになった。これも歳か…。

 

ミニミニハートバナナ味

f:id:Parco1021:20201104161747j:image

33円。計り売りのとこに置いてありそうなお菓子。高いと思ったけど思ったよりも量がある。

 

プリン大福(マシュマロ)

f:id:Parco1021:20201104223015j:image

22円。美味しい、とても美味しい。全然プリンの味はしないけどそんなにくどくなくて好き。また買いたい。

 

ガブリチュウ(ゴールデンフルーツ味)

f:id:Parco1021:20201104223251j:image

33円。ゴールデンフルーツってなんやねん!って思って買ったけどよく見たらゴールデンパイン&黄金桃って書いてあったわ。普通の味のが好き。コーラとかソーダとかぶどうの普通の味を買って食べたくなった。

 

ベビースターラーメン

f:id:Parco1021:20201105000409j:image

33円。実家のような安心感、ビールがあああああああ飲みたいいいいいいいいい!でも宅飲みの時にこれがよくあるけど食べたことない。多分今後も置いてあっても食べない

 

ネオフルーツC

f:id:Parco1021:20201105010908j:image

43円。固めのただのラムネ。化学の味がする。もう買わない。

 

チョコケーキ

f:id:Parco1021:20201105223944j:image

65円。お母さんが好き。俺も好き。美味しい、割とコスパ良い気がする。普通にこれはスーパーで今もたまに買う。

 

すっぱいソーダにご用心

f:id:Parco1021:20201105231046j:image

33円。22歳の今1人で食べても虚しいだけ。こな~ゆきぃ~ねぇ

 

うまい棒(めんたい味、コーンポタージュ味)

f:id:Parco1021:20201106020716j:imagef:id:Parco1021:20201106020833j:image

うまい。この2つの味が個人的TOP2。チーズ味も人気だけど匂いが好きじゃない。めんたい味って明太子のことですよね??明太子好きじゃないんだけどこれ全然明太子の味しないですよね。あとはたこやき味が人気らしい。

 

ヤングドーナツ

f:id:Parco1021:20201107011723j:image

43円。僕小さい頃ドーナツがあんまり好きじゃなくて兄がこれ買ってたりしたのを真似して買ってみたりしたんですけどやっぱり苦手だった記憶があります。今でもドーナツはそんなに好きじゃないので自分からミ◯ドに入ったりはしません。しかし久しく食べていなかったので食べてみようと思いました。もうしばらく食べなくても大丈夫そうです。

 

チョコ大福(マシュマロ)

f:id:Parco1021:20201107194432j:image

22円。おいしい。

 

いちご大福

f:id:Parco1021:20201107194543j:image

22円。おいしい。いちごの味じゃなくて"甘いイチゴ味"の味が美味しい。

 

ソフトクリーム

f:id:Parco1021:20201109013602j:image

216円。砂糖の塊みたいなものだけど僕は好き。美味しい。でも高いわ。たまにでいい。

 

ぷくぷくたい

f:id:Parco1021:20201109224251j:image

65円。昔より小さくなった???すごい美味しい。ただチョコがモナカに挟まってるだけでしょ?って思って食べると腰抜かす。

 

 

プチロル

f:id:Parco1021:20201109224758j:image

54円。小さくてかわいい。色んな味が食べられてお得感ある。

f:id:Parco1021:20201109224740j:image

完全に初めて見て気になって買ったけどいい感じ。もう買わんと思うけど。

 

 

 

2020年第3回G検定合格体験記

はじめに

資格とかには特に興味がなかったのですが、コロナの影響で大学へあまり行くことができず、春休み~夏休みを何もせずに過ごしさらに年も越してしまいそうな勢いだったので何かやることのきっかけが欲しくて受験を決意しました。研究室で深層学習について学んでいるので1週間あれば大丈夫だろ~wと思い1週間前にやっと申し込みしました。しかし受験日が卒業研究中間発表の数日前で資料の作成等をしなければならず、あまり勉強時間が確保できませんでした。

G検定とは

G検定は日本ディープラーニング協会が開催している資格であり、深層学習などの人工知能全般に関する知識問題が出題されます。計算問題はほぼ無く、法律に関する問題や用語に関する問題が多く出題されます。シラバスは以下の通りです。

f:id:Parco1021:20201119194158p:plain

引用元:日本ディープラーニング協会

 

G検定はネット受験なので好きなだけインターネットで調査することが可能です。しかし当然運営さんもそれは承知であるため時間は厳しく設定されています。試験時間は120分で問題数は220問ほどです。全ての問題を逐一調べていたら間に合いません。

 

合格率は6~7割とかなり高いです。合格率が高いため余計にプレッシャーを感じました。今回受けた試験は従来よりも合格率が低く、やはり受けてみても思ったより難しかったです。

f:id:Parco1021:20201119201353p:plain

f:id:Parco1021:20201119202334p:plain

f:id:Parco1021:20201119203518p:plain

引用元:日本ディープラーニング協会

難易度は低い試験なので人工知能初学者の大学生が受けてそうだな~と思っていたんですが意外と開発職の2,30代の方が受けていて驚きました。それだけ会社で人工知能を導入しているということでしょうか、知らんけど。

勉強方法

何からやればいいのかようわからんかったのでとりあえず公式テキストなるものを読もうと思い、1週間前に買い、全9章あるため1日2章で4日目は3章読むことで4日で読み終わらせました。

残り2日は問題集を半分ずつ解きました。当日はなんかやる気が起きなくて何もやっていません。テストあるあるじゃないですか??直前にやる気なくなるの。

 

勉強方法の振り返りなのですが、まず公式テキストはかなり浅く広くといった印象を受けました。元から知っている単語は「あーはいはいそれね」となるのですが初見の単語だと説明が浅すぎて全く頭に入ってきません。特にRNNやCNN周りの応用の範囲は少し難しいで別で検索して理解をしておく必要があります。ただ範囲がある程度広いためこのようになることはしょうがないと思います。カバーしきれていない分を問題集で演習を積みつつ補填するイメージです。また、試験中に逐一参考書を開いて~とやるのは効率が悪いので事前に自分の言葉でどこかのファイルにまとめておきましょう。検索すると他の方がまとめた記事が大量に見つかるのですが網羅できているかわかりませんし、自分でまとめたほうが当日見つけるのも読み解くのも時間が圧倒的にかかりません。勉強時間は1日3時間程度行いました。

 

 

試験

試験は先ほども書きましたが法律周りの問題が圧倒的に多く、知識問題は事前の知識で事足りる程度のものが多かったです。法律は試験中に調べるつもりだったので試験中はひたすらに法律についてググっていました。他の受験者も同様だったようでG(oogle)検定などと言われていました。公式テキストからはほぼ出題されていない印象でした。

 

総評

今回の目的は資格をとることよりも人工知能を体系的に学ぶことでした。結果的に試験前の参考書での勉強や当日の試験での検索で知見を深めることはできたと思います。ただ資格自体に価値があるかと問われるとプログラムや理論的なことは全く問われないので機械学習エンジニアになりたいような人には難易度等考慮してあまり感じられませんでした。しかし初学者であったり私のように勉強するきっかけとして受験することには意味があると思います。

SGDを使うにあたってのハイパーパラメータの設定(論文紹介③ Control Batch Size and Learning Rate to Generalize Well: Theoretical and Empirical Evidence)

概要

深層学習において、確率的勾配降下法(SGD)はOptimizerとして良い結果を出しており、SGDをより良く動かすためにハイパーパラメータの調整が必要。複数あるハイパーパラメータのうち、特にバッチサイズ(Batch Size)と学習率(Learning Rate)に着目し、どのように設定すべきかを解析的に考えた論文。数値解析の結果、バッチサイズの大きさSと学習率ηの比S/ηが小さいほどより良い結果となる。

 

papers.nips.cc

 

予測損失と経験損失

本来最小化したい損失は予測損失である。

f:id:Parco1021:20200930015555p:plain

しかし、データの分布Dがわからないため予測損失と近似することのできる経験損失を用意する。

f:id:Parco1021:20200930015658p:plain

できるだけ経験損失が予測損失と近くなるようにアルゴリズムを設定したい。以後、経験損失を最小化することを目的とする。

 

解析的証明(略)

※具体的な証明は別で記事にする…かもしれません※

経験損失と予測損失の差(≒アルゴリズムの良さ)の変数部分をIと置く。また、バッチサイズと学習率の比をk(=|S|/η)と置き、Iをkで微分すると以下になる。

f:id:Parco1021:20200930014428p:plain

パラメータ数dが十分に大きい、具体的に以下の条件を満たすと仮定すると∂I/∂kは常に正となる。

f:id:Parco1021:20200930015120p:plain

この時、変数kはS,η>0より予測損失と経験損失の差はk>0で単調増加である。よってバッチサイズと学習率の比が予測損失と経験損失の差と正の相関がある。つまりaccuracyとは負の相関があるということでありkが小さいほどより良い結果が得られると期待できる。この時、むやみにkを小さくすれば良いというわけではなく、あくまで上記のdの範囲内であることに注意。

 

実験

  • モデル…ResNet-110,VGG-19
  • データセット…CIFAR-10,CIFAR-100
  • バッチサイズ…16,32,48,64,80,96,112,128,144,160,176,192,208
  • 学習率…0.01,0.02,0.03,0.04,0.05,0.06,0.07,0.08,0.09,0.10,0.11,0.12,0.13,0.14,0.15,0.16,0.17,0.18,0.19,0.20
  • エポック数…200

以上の実験設定でテスト誤差(accuracy)を比較。スピアマンの順位相関係数(SCC)を求める。

 

実験結果

Ⅰバッチサイズとaccuracy

表左部の学習率で固定し、バッチサイズとaccuracyでSCCを取る。SCCが全てのケースで-1.0付近なのでバッチサイズとaccuracyは負の相関がある。

f:id:Parco1021:20200930010858p:plain

 

Ⅱ 学習率とaccuracy

表左部のバッチサイズで固定し、学習率とaccuracyでSCCを取る。SCCが全てのケースで1.0付近なのでバッチサイズとaccuracyは正の相関がある。

f:id:Parco1021:20200930011151p:plain

 

Ⅲ バッチサイズと学習率の比とaccuracy

横軸にBSとLRの比(=k)、縦軸にaccuracyをとると負の相関があることがわかる。

f:id:Parco1021:20200930011353p:plain

f:id:Parco1021:20200930011406p:plain

 

まとめ

数値解析と実験結果から、バッチサイズと学習率の比が予測損失と経験損失の差と正の相関(=accuracyと負の相関)があることがわかった。よってSGDで学習率を行う時はバッチサイズを小さく、学習率を大きくすると結果が良くなると期待できる。しかし、パラメータの制約等があるためむやみに大きくor小さくすれば良いというわけではない。

便利なPythonのリスト内包表記

最近、競プロみたいな問題をPythonで解いたりしているのですが、その時にデータの入出力周りでリストをよく扱います。いたずらにfor文とappend()メソッドを用いるとコードが冗長になってしまうのでリスト内包表記を用いるのですがちゃんと調べたことがなかったので調べて備忘録としてまとめます。

 

リスト内包表記のメリット・デメリット

  • コードが短くなる
  • 実行速度が上がる
  • Pythonわかってる風になれる
  • あまりディープな表記にすると可読性が著しく下がる

シンプルなリスト内包表記

元データ

for文
data = 
for i in range(10):
    data.append(i)
print(data)
#[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
リスト内包表記

[式 for 変数 in イテラブルオブジェクト]といった形です。上記のfor文記法と比較するとわかりやすいと思います。

data = [i for i in range(10)]
print(data)
#[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
補足

上記の例ではrange()から1つずつ要素を抽出しましたが、そのままlist()関数でリスト化できます。

data = list(range(10))
print(data)
#[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

リストの型を変える

先ほどのリストの各要素はint型です。それをstr型に変更します。

for文
data_str = 
for i in data:
    data_str.append(str(i))
print(data_str)
#['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']
リスト内包表記
data_str = [str(i) for i in data]
print(data_str)
#['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']
補足

map関数を使うことで同様の処理をすることができます。

data_str = list(map(str,data))
print(data_str)
#['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']

 

if文のあるリスト内包表記

if文のみ

for文
data_if = 
for i in data:
    if i == 2 or i == 8:
        data_if.append(i)
print(data_if)
#[2, 8]
リスト内包表記

[式 for 変数 in イテラブルオブジェクト if文]といった形です。

data_if = [i for i in data if i == 2 or i == 8]
print(data_if)
#[2, 8]

if-else

まず、先ほど作成したdata_strに要素を追加します。

data_str.append('G')
print(data_str)
#['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'G']
for文

int型への変更が可能であるならばint型にし、不可能ならばそのままにするプログラムです。

data_ifelse = 
for i in data_str:
    if i.isdigit():
        data_ifelse.append(int(i))
    else:
        data_ifelse.append(i)
print(data_ifelse)
#[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 'G']
リスト内包表記

先ほどのif文と位置が異なります。

[Trueの式 if 式 else Falseの式 for 変数 in イテラブルオブジェクト]と書きます。

elif文はif-elseを組み合わせて記述することができますが、可読性が落ちてしまうので辞めた方がいいかもしれません。

data_ifelse = [int(i) if i.isdigit() else i for i in data_str]
print(data_ifelse)
#[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 'G']

 

まとめ

今回はPythonのリスト内包表記についてまとめました。内包表記はリストだけでなく、dict型やset型にも同様に使えるので試してみてください。繰り返しになりますが、ここで挙げた以上の複雑な処理を内包表記で書くととても読みにくくなってしまうので注意が必要です。実行速度が上がるとメリットで書きましたが、そこまで大きな差はなく、これぐらいを気にするのならばリストではなくnumpy配列等を使った方がよほど早くなります。

 

 

言語処理100本ノック2020 第4章 Pythonでの解答例

前章↓↓

parco1021.hatenablog.com

 

第4章 形態素解析

まず、与えられたneko.txtをMeCabを使って形態素解析します。MeCabの導入等は別途調べてみてください。形態素解析するコマンドは以下の通りです。

mecab neko.txt --output neko.txt.macab

 

30.形態素解析結果の読み込み(31日目|9月4日)

形態素解析結果(neko.txt.mecab)を読み込むプログラムを実装せよ.ただし,各形態素は表層形(surface),基本形(base),品詞(pos),品詞細分類1(pos1)をキーとするマッピング型に格納し,1文を形態素マッピング型)のリストとして表現せよ.第4章の残りの問題では,ここで作ったプログラムを活用せよ.

まず、各行をタブ(\t)区切りで分割します。文末文字(EOS)のみである行があるため、それを除くために分割した長さが2である場合にのみ適用します。分割した後の方を次は','区切りで分割し、それぞれ求められたキーとマッピングします。

 

31.動詞(32日目|9月5日)

動詞の表層形をすべて抽出せよ.

30で作成した辞書型のデータを使います。まず、動詞の重複等が考えられるのでset()を用いて重複する要素を除きます。

 

32.動詞の原形(33日目|9月6日)

動詞の原形を全て抽出せよ.

31と同様です。

 

33.「AのB」(34日目|9月7日)

2つの名詞が「の」で連結されている名詞句を抽出せよ.

"名詞"+”の”+"名詞"となっている場所を探します。

 

34.名詞の連接(35日目|9月8日)

名詞の連接(連続して出現する名詞)を最長一致で抽出せよ.

現在参照している品詞が名詞ならばtempに追加し、次の文字を参照する。次の文字も名詞ならば再度tempに追加する。tempの長さが2以上つまり名詞が2連続以上続いているならばそれを出力します。

 

35.単語の出現頻度(36日目|9月9日)

文章中に出現する単語とその出現頻度を求め,出現頻度の高い順に並べよ.

単語と出現回数を対応させたdictを作成します。そのままカウントを開始すると','や'。'をカウントしてしまうため、posが記号のものはdictへ格納しないようにします。未登録の単語が来た場合、新たにdictへ登録し、その後登録未登録に関わらずインクリメントします。

 

36.頻度上位10語(37日目|9月10日)

出現頻度が高い10語とその出現頻度をグラフ(例えば棒グラフなど)で表示せよ.

35で出現頻度順にしたデータが用意されたのでそれを使います。棒グラフにする際、横軸のラベルを単語にします。それが当然日本語であり、そのままグラフにすると日本語は豆腐になってしまうため専用のライブラリ?をインストールします。pip install japanize_matplotlibを実行してから動かしましょう。

f:id:Parco1021:20200910221438p:plain

 

37.「猫」と共起頻度の高い上位10語(38日目|9月11日)

「猫」とよく共起する(共起頻度が高い)10語とその出現頻度をグラフ(例えば棒グラフなど)で表示せよ.

今回、何をどうするかが具体的に問題文で示されていません。自分で何を"よく共起する"か定義する必要があります。僕は"猫"の前後5単語の記号と助詞、及び助動詞を除いた品詞をそれとし、カウントしました。

 

f:id:Parco1021:20200911194504p:plain


 

38.ヒストグラム(39日目|9月12日)

単語の出現頻度のヒストグラムを描け.ただし,横軸は出現頻度を表し,1から単語の出現頻度の最大値までの線形目盛とする.縦軸はx軸で示される出現頻度となった単語の異なり数(種類数)である.

35のデータをヒストグラムにするだけで特に難しいことはないです。

f:id:Parco1021:20200912203730p:plain

 

39.Zipfの法則(40日目|9月13日)

単語の出現頻度順位を横軸,その出現頻度を縦軸として,両対数グラフをプロットせよ.

対数グラフはそれぞれのスケールをlogにすればよいのでplt.x(y)scale('log')とします。余談ですが、Zipf(ジップ)の法則は、ある膨大なテキストの要素を出現頻度順にしたとき、その順位と頻度を乗算すると定数になる法則です。つまり今回は縦軸に出現頻度、横軸に順位としているためプロットしたグラフは1次関数のような形になることが期待されます。

f:id:Parco1021:20200913214349p:plain

 以上で4章は終わりです。お疲れ様でした。

言語処理100本ノック2020 第3章 Pythonでの解答例

第2章↓↓

parco1021.hatenablog.com

 

 

第3章:正規表現

20.JSONデータの読み込み(21日目|8月25日)

Wikipedia記事のJSONファイルを読み込み,「イギリス」に関する記事本文を表示せよ.問題21-29では,ここで抽出した記事本文に対して実行せよ.

今回与えられたデータはよく見るJSONと少し形式が異なります。一行ずつ読み込む必要があるのでfor文で1行ずつ読み込みます。そのタイトルがイギリスであるテキストを出力します。

 

21.カテゴリ名を含む行を抽出(22日目|8月26日)

記事中でカテゴリ名を宣言している行を抽出せよ.

カテゴリを宣言している行は"Catedory:〇〇"という形になっています。[]は正規表現で用いられる記号なので\でエスケープします。そしてCategory:の後は任意の文字がくるので.*とします。python正規表現を用いる時はreモジュールをインポートします。findall()に正規表現と対象データと複数行にマッチさせるためにre.MULTILINEを引数として渡します。

 

22.カテゴリ名の抽出(23日目|8月27日)

記事のカテゴリ名を(行単位ではなく名前で)抽出せよ.

21で抽出したもののうち、":"以降であり、"|*"より前まで抽出したいです。前者は簡単なのですが、後者をどのようにすれば良いのかわかりませんでした。調べた結果、(?:pattern)とすることでそのpatternをマッチした場合、抽出しないことができるそうです。正規表現だけ用いる必要がないならば"|"をreplace()したりすることで実装可能です。

 

 

23.セクション構造(24日目|8月28日)

記事中に含まれるセクション名とそのレベル(例えば”== セクション名 ==”なら1)を表示せよ.

セクションのレベル?はよくわからないのですが、おそらく"=="の長さ-1がレベルなんでしょう。["=の部分","セクション名","=の部分"]のような形でリストに格納します。[^pattern]はpattern以外のものにマッチします。

 

24.ファイル参照の抽出(25日目|8月29日)

記事から参照されているメディアファイルをすべて抜き出せ.

参照されているファイルは"ファイルorFile"の後にファイル名が指定されます。そこを指定して抽出します。

 

25. テンプレートの抽出(26日目|8月30日)

記事中に含まれる「基礎情報」テンプレートのフィールド名と値を抽出し,辞書オブジェクトとして格納せよ.

基礎情報のフィールド名と値は、「|"フィールド名""任意の空白文字"="任意の空白文字""値"」となっています。なのでそれを抽出する正規表現をpatternマッチさせます。\sは任意の空白文字です。それを辞書型に保存します。

 

26.強調マークアップの除去(27日目|8月31日)

25の処理時に,テンプレートの値からMediaWikiの強調マークアップ(弱い強調,強調,強い強調のすべて)を除去してテキストに変換せよ(参考: マークアップ早見表).

指定されたマークアップ早見表を見てみると、強調には「'」が使われています。この数によって強調の度合いが変わりますが、2~5個であるため25のresultに正規表現で指定して削除します。\で'をエスケープし、{n,m}でその数を指定します。それをsub()関数で削除します。

 

27.内部リンクの削除(28日目|9月1日)

26の処理に加えて,テンプレートの値からMediaWikiの内部リンクマークアップを除去し,テキストに変換せよ(参考: マークアップ早見表).

(内部リンクは内部リンク|表示名となっているのでそれを削除すればいいのだがよくわからなかった)

 

28.MediaWikiマークアップの削除(29日目|9月2日)

27の処理に加えて,テンプレートの値からMediaWikiマークアップを可能な限り除去し,国の基本情報を整形せよ.

27で内部リンクは削除できた(?)ので残りの部分の気になるところを削除します。<br>等のhtmlタグを削除しました。

 

29.国旗画像のURLを取得する(30日目|9月3日)

テンプレートの内容を利用し,国旗画像のURLを取得せよ.(ヒント: MediaWiki APIのimageinfoを呼び出して,ファイル参照をURLに変換すればよい)

WikiAPIを使って画像urlを取得します。APIの説明は以下のページから

API:Imageinfo - MediaWiki

Pythonでのサンプルコードもあるので利用します。サンプルでpropはimageinfoが指定されているためそこからさらに画像urlを指定するにはiipopでurlを指定するだけです。結果をjsonで受け取り構造を確認してurlを出力します。

 

これで第3章は終わりです。お疲れ様でした。 

 

 

言語処理100本ノック2020 第2章 Pythonでの解答例

第1章↓↓

parco1021.hatenablog.com

第2章:UNIXコマンド

UNIXコマンドとありますが、筆者は現在WindowsにしかPythonの実行環境をそろえておらず、Linuxもさっぱり使っていないのでコマンドは省略します。他の方がやった解答を見て自分のプログラムの出力が正しいことは確認します。※

 

10.行数のカウント(11日目|8月15日)

行数をカウントせよ.確認にはwcコマンドを用いよ.

テキストファイルをpythonで読み込む方法は何通りかありますが、今回は最も(?)ポピュラーなpandasを使います。pandasで読み込み表示するだけで行数*列数も表示されるのですが、shapeを使ってそれぞれ表示してみます。行数だけでなく、ついでに列数を表示させてみました。

 

11.タブをスペースに変換(12日目|8月16日)

タブ1文字につきスペース1文字に置換せよ.確認にはsedコマンド,trコマンド,もしくはexpandコマンドを用いよ.

区切り文字をタブにして読み込んだtxtファイルを区切り文字を半角スペースにして保存します。この時、headerとindexをFalseにしておかないとインデックス番号等がついたまま保存されてしまうので注意が必要です。

元のファイルと出力されたファイルの一部

Get-Content data.txt -last 5
Benjamin M 13381 2018
Elijah M 12886 2018
Lucas M 12585 2018
Mason M 12435 2018
Logan M 12352 2018 Get-Content newdata.txt -last 5
Benjamin M 13381 2018
Elijah M 12886 2018
Lucas M 12585 2018
Mason M 12435 2018
Logan M 12352 2018

全体↓↓

github.com

12.1列目をcol1.txtに、2列目をcol2.txtに保存(13日目|8月17日)

各行の1列目だけを抜き出したものをcol1.txtに,2列目だけを抜き出したものをcol2.txtとしてファイルに保存せよ.確認にはcutコマンドを用いよ.

 df[0]に1列目がdf[1]に2列目が格納されているのでそれを保存します。

 

結果

github.com

 

13.col1.txtとcol2.txtをマージ(14日目|8月18日)

12で作ったcol1.txtとcol2.txtを結合し,元のファイルの1列目と2列目をタブ区切りで並べたテキストファイルを作成せよ.確認にはpasteコマンドを用いよ.

pandasのconcat()関数を使います。デフォルトだと縦方向にマージしてしまうので、axis=1とすることで横方向にマージするよう指定します。

出力ファイルは上記のgithubにあります。

 

14.先頭からN行を出力(15日目|8月19日)

自然数Nをコマンドライン引数などの手段で受け取り,入力のうち先頭のN行だけを表示せよ.確認にはheadコマンドを用いよ. 

コマンドライン引数はsys.argvで受け取ります。ここで注意すべきは第一引数がargv[0]ではなくargv[1]に格納されていることです。受け取ったnはstr型なのでint型に変換し、pandasの関数head()に渡します。


15.末尾のN行を出力(16日目|8月20日)

自然数Nをコマンドライン引数などの手段で受け取り,入力のうち末尾のN行だけを表示せよ.確認にはtailコマンドを用いよ.

 14と同様です。異なる点はhead()ではなく、tail()を使います。

 

16.ファイルをN分割する(17日目|8月21日)

自然数Nをコマンドライン引数などの手段で受け取り,入力のファイルを行単位でN分割せよ.同様の処理をsplitコマンドで実現せよ.

演算子'//'は除算の結果を切り捨てます。例えば10//3ならば3となります。

 

17.1列目の文字列の異なり(18日目|8月22日)

1列目の文字列の種類(異なる文字列の集合)を求めよ.確認にはcut, sort, uniqコマンドを用いよ.

duplicated().value_counts()は重複する場合にTrueとします。なのでFalseの数が重複しない要素の数です。例えばAnna,Bnna,Cnna,Annaだった場合、False,False,False,Trueとなります。重複しない要素を取り出すにはunique()メソッドを使います。その要素数を数えるにはlen(df.unique())でもいいのですが、nunique()によっても得られます。

 

 

18.各行を3コラム目の数値の降順にソート(19日目|8月23日)

各行を3コラム目の数値の逆順で整列せよ(注意: 各行の内容は変更せずに並び替えよ).確認にはsortコマンドを用いよ(この問題はコマンドで実行した時の結果と合わなくてもよい).

sort_values()を用います。引数にソートしたい対象のコラムを指定します。今回は3カラム目なので2を指定しました。出力は先頭の5行のみとしています。

 

19.各行の1コラム目の文字列の出現頻度を求め、出現頻度の高い順に並べる(20日目|8月24日)

各行の1列目の文字列の出現頻度を求め,その高い順に並べて表示せよ.確認にはcut, uniq, sortコマンドを用いよ.

 value_counts()メソッドを用います。value_counts()は出現回数のカウントだけでなく、デフォルトで降順にソートしてくれるため題意の出力をすることができます。ソートをしたくない場合はvalue_counts(sort=False)とし、昇順にしたい場合はvalue_counts(ascending=True)とします。

これで第2章は終わりです。

 

第3章↓↓

parco1021.hatenablog.com

言語処理100本ノック2020 第1章 Pythonでの解答例

はじめに

夏休みに入り、研究室のゼミも少なくなったりコ〇ナの影響でバイトがなくなったりして暇なので1日1個言語処理100本ノックを第3章までやりたいと思います。第3章までとしているのは、とりあえずデータの前処理を再勉強したいということと短期的な目標としたいからです。8月5日から始めるので順当にいけば9月3日に終わります。しかし、僕のことなので途中で飽きてサボってしまったり、辞めてしまったりするかもしれません。というか多分なります。1週間続けば自分としては立派だと思います。統計学入門も終わってないし…。

nlp100.github.io

毎日別の記事として投稿すると記事数がとても多くなってしまうので各章ごと(全10章)記事として保存します。各章が終わるまで同一の記事に更新していこうと思います。更新する度タイトルの〇日目も変えます。

第1章:事前準備

nlp100.github.io

00.文字列の逆順(1日目|8月5日)

文字列”stressed”の文字を逆に(末尾から先頭に向かって)並べた文字列を得よ.

2通りのやり方で解きました。1つ目はreversed()を用いて逆順にし、リスト化した後に結合する方法です。2つ目はスライシングによって直接逆順にします。a[::-1]は"最初から最後まで逆順に1つずつ抜き出す"という意味です。2つ目の方が簡単ですね。

 

01.パタトクカシーー(2日目|8月6日)

「パタトクカシーー」という文字列の1,3,5,7文字目を取り出して連結した文字列を得よ. 

00と同様、スライシングで解く手法が最も楽です。たまたま今回は1,3,5,7となっているため、[::2](最初から最後まで2つおきに)とすることで実装することができましたが、1,2,4,6,9…番目を取り出せという問題でも対応することが可能なように泥臭い手法も書いておきました。

02. 「パトカー」+「タクシー」=「パタトクカシーー」(3日目|8月7日)

「パトカー」+「タクシー」の文字を先頭から交互に連結して文字列「パタトクカシーー」を得よ.

 for文で複数のイテラブルオブジェクトを取得するためにzip()関数を使います。iにパトカー、jにタクシーがそれぞれ入ります。ans_1とans_2を用意しましたが、ans_1はリスト内包表記をとっているので見慣れていない方は何をやっているのかわかりにくいかな、と思ったのでans_2で少し冗長な導出をしました。どちらもやっていることは変わりません。リスト内包表記を簡単に説明すると、[式 for 変数 in リスト等]となります。ans_2にもある通り、これはfor 変数 in リスト等: リスト.append(式)と同じ意味です。

03.円周率(4日目|8月8日)

“Now I need a drink, alcoholic of course, after the heavy lectures involving quantum mechanics.”という文を単語に分解し,各単語の(アルファベットの)文字数を先頭から出現順に並べたリストを作成せよ. 

方針としてはまず単語ごとにリストに格納します。しかしこの時","や"."があると文字数がおかしくなるのでこれらを削除します。replace()は第1引数を第2引数に置換します。なので本プログラムのように書くと削除することが可能です。今回、2文字削除したいため2回replace()しています。削除したい文字がより多くなるのならば正規表現によって削除するやり方もあるようなのでそちらにしましょう。リストに格納した後はリストの各要素の長さ(=単語の文字数)を取得します。今回もリスト内包表記を取っています。iに_listに入っている各単語が入り、iの長さを取っています。

04.元素記号(5日目|8月9日)

“Hi He Lied Because Boron Could Not Oxidize Fluorine. New Nations Might Also Sign Peace Security Clause. Arthur King Can.”という文を単語に分解し,1, 5, 6, 7, 8, 9, 15, 16, 19番目の単語は先頭の1文字,それ以外の単語は先頭の2文字を取り出し,取り出した文字列から単語の位置(先頭から何番目の単語か)への連想配列(辞書型もしくはマップ型)を作成せよ. 

今回は辞書型を作成します。01.のように規則的に取り出す対象が並んでいないので対象のインデックス番号のリストを作成します。 enumerate()は2つの変数に値を入れていきます。1つ目にはインデックス番号、2つ目には対象オブジェクト(リスト等)の中身です。対象の単語ならば1文字目([0])、そうでないならば2文字目まで([:2]=0,1)を取り出し辞書へ格納します。

05.n-gram(6日目|8月10日)

与えられたシーケンス(文字列やリストなど)からn-gramを作る関数を作成せよ.この関数を用い,”I am an NLPer”という文から単語bi-gram,文字bi-gramを得よ. 

n-gramとはある文字列をn個の単語や文字で区切ることを言います。ここで問題になっているbi-gramは2-gramです。関数自体は単純なもので引数として受け取ったn-gramのn個ごと文章の最初から区切っているだけです。

06.集合(7日目|8月11日)

paraparaparadise”と”paragraph”に含まれる文字bi-gramの集合を,それぞれ, XとYとして求め,XとYの和集合,積集合,差集合を求めよ.さらに,’se’というbi-gramがXおよびYに含まれるかどうかを調べよ.

まずbi-gramを作成します。05で作成した関数をimportで呼び出します。ファイル名を05.pyとしてので直接importせず、__import__()によって呼び出します。詳しくは以下に書きました。

parco1021.hatenablog.com

そのままだと重複する要素('pa'など)があるため集合として機能しません。そのためset()を用いることで重複する要素を消し、集合演算を行うことのできるようにします。その後は各集合に演算子やメソッドが用意されているのでそれを使うだけです。今回、例として両方とも使っています。'se'があるかどうかはin演算子を使い確認します。

07.テンプレートによる文生成(8日目|8月12日)

引数x, y, zを受け取り「x時のyはz」という文字列を返す関数を実装せよ.さらに,x=12, y=”気温”, z=22.4として,実行結果を確認せよ.

format()メソッドによって文字列内に変数を入れます。あとは特に説明することはないです。

08.暗号文(9日目|8月13日)

与えられた文字列の各文字を,以下の仕様で変換する関数cipherを実装せよ.

・英小文字ならば(219 - 文字コード)の文字に置換
・その他の文字はそのまま出力
この関数を用い,英語のメッセージを暗号化・復号化せよ.

問題文の219が何かわからなかったので英小文字の文字コードをまず調べます。文字コードはord()によって調べることが可能です。"a"が97、"z"が122なので97+122=219となります。つまりa→z、z→aのように暗号化、復号化をします。文字コードから文字への変換はchr()を使います。英小文字か否かの判定はislower()を使います。英小文字ならば暗号、復号化を行いそれ以外だったらそのままにします。結果を見ると大文字の"I"と"."がそのまま出力されており、復号化もできていることがわかります。

09.TypoglycemiaPermalink(10日目|8月14日)

スペースで区切られた単語列に対して,各単語の先頭と末尾の文字は残し,それ以外の文字の順序をランダムに並び替えるプログラムを作成せよ.ただし,長さが4以下の単語は並び替えないこととする.適当な英語の文(例えば”I couldn’t believe that I could actually understand what I was reading : the phenomenal power of the human mind .”)を与え,その実行結果を確認せよ.

入力を単語とする関数typo()を作ります。受け取った単語の長さが5以上ならば(元の単語の1文字目)+(真ん中をシャッフル)+(元の単語の最後)のリストを作り、join()で結合したものを返します。

これで第1章は終わりです。

第2章↓↓

parco1021.hatenablog.com

Pythonのスクリプトをimportするときにエラーが出たのでメモ

はじめに

Pythonスクリプトのimportでファイル名関係でエラーが出たのでメモ

問題

例として以下のファイルをimportしたいとします。

def test():
    a = 'test'
    return a

〇〇.pyである時、普通ならば単に

import 〇〇

とすれば良いです。しかしファイル名が

①"-"(ハイフン)を含む

②数字から始まる

のいずれかを満たすと「SyntaxError: invalid syntax」と出ます。

解決策

今回、例として0a-a.pyを呼び出します。

module = __import__('0a-a')
print(module.test()) #test

__import__()を使ってスクリプトを呼び出します。これはimport 0a-a as moduleと同じように扱うことが可能です。

さいごに

本来、このような手法を使わなくても良いようにファイル名には気を付けましょう。どうしてもハイフンが含まれているファイル名を使わなければならない時にのみ使うようにした方が良さそうです。

 

 

 

【パズドラ】※2021年2月9周年生放送時更新※星5キャラで使えるキャラを解説する

はじめに

※2021年2月更新※

9周年記念生放送でいろいろなキャラが強化&進化携帯が追加されました。

できるだけ多くの星5キャラを解説しました。長すぎるので目次から★の数を確認してください。

 

 

今回は攻略や周回、ランキングダンジョンなどの面からフェス限を除く星5キャラのうち、攻略や周回、ランキングダンジョンなどで使ったことがあるor使われているのを見たことがあるキャラをピックアップし、その使い道を紹介したいと思います。超転生をしているキャラは使われていなくても簡単に紹介します。どんなキャラでも超転生等で化ける可能性があるので各1体ずつは確保すべきなのは当然なのですが、無料100連があり全てをキープしておくとボックスがいっぱいになってしまう人も少なくなかったと思います。そういった方の取捨選択の判断材料になれば幸いです。なのであくまで現時点(2020年6月辺り)(2020年12月更新)(2021年2月)での評価です。解説は筆者の独断と偏見によるものです。

○○神などの名称は以下のgame8さんのサイトを参照しています。

game8.jp

 

目次

"!"のついているキャラが進化形態の追加などで前回と評価が変わっています。

 

 

キャラと評価

西洋神

・ミネルヴァ(★)

超転生しているがなんとも言えない性能。さらに今は火暗黒時代なのでどう足掻いても使わない。炭治郎及びセイナによって火最盛期で属性・タイプ的にどちらにも入るが、スキブ1かつ7c無し。まあ使わない。

 

ネプチューン(★★★)

毒+エンハンススキルでニムエ降臨周回で使った記憶。超転生を控えているがスキル的に超転生したところでよほど覚醒が化けないと評価は変わらない。スキルも最悪リリスで良い。いらない。

超転生で結構別物になった。スキブ6毒耐性と覚醒で化けた。さらにリーダースキルが水6個繋げるだけで神20倍と周回方面で活躍が期待できるが、義勇で良い。さらにスキルがリーダースキルとかみ合わない攻撃悪魔エンハ。リーダーとしては使わず覚醒を活かして雑にサブに入れると強い。

 

・セレス(★★★★)(!)

f:id:Parco1021:20210220011717j:image

超転生を控えている。スキルが6ターンで打てるので覚醒が化ければスキルのポンコツさはアシストで補強することができる。転生のままではまず使わない。

 

なんで上でスキルポンコツって書いてあるのか覚えてないけど普通に強い。サイト下にスクロールしたら9周年で今日上方修正されてたわ。消せないバインド覚醒無効ついてなかったのね。スキル強い。全回復じゃないところが気になるが。超転生してなんかよくわかんないけど強そうになった。ザ・サポートキャラって感じ。

・ヴィーナス(★★★★)

f:id:Parco1021:20200528223329j:image

イラストが可愛い。7c*3、L字*2、追い打ちかつ光の攻撃タイプなのでアリスファスカで使うことができる。スキルも3Tで指延長、ロック解除が打てるので環境に適している。イラストが可愛い。ただ第一線で活躍しているわけではなく、代用で使われることが多い。1体は作ってもいいと思う。イラストが可愛い。

 

・ハーデス(★★★★)

グラビティでたまに使われているのを見る。消せないドロップ回復も持っており、さらに転生で暗闇耐性+を持っているので超転生したら普通に期待できる。キープすべき。

超転生して主にランダンで見るようになった。2way3(超覚醒で4)。さらに神キラーを素で持ち、超覚醒でも付与でき、さらにさらに潜在で4凸することができる。こういったところから神相手に2wayで抜く場面を多く見る。

新西洋神

・アレス(★)

超転生したが無効貫通で火力の出るキャラクターは他にもいる。暗闇耐性+目的で入れるぐらいか。

 

・ヘルメス(★★)

f:id:Parco1021:20200531200434j:image

新西洋神唯一の超転生キャラ。使われているのをあまり目にしないが、スキブ3、7c*2、無効貫通*2と単体スペックは高いと思う。水パにとりあえず入れればそれっぽい仕事をしてくれる。使える。

 

・アルテミス(★)

超転生に期待。ただアレスヘルメスと同様スキルが微妙なので覚醒で壊れないと期待できない。イラストにも期待(重要)。

 

アポロン(★)

アルテミスと同様。

 

・ペルセポネ(★★★)

超覚醒込みで7c3つのway2つ、毒耐性+と覚醒に恵まれている。闇は他に優秀なサブが多いのであまり見ないが全然強い。あとイラストが可愛い。

 

西洋神シリーズ第3弾

・全員(★)

キャラが揃ってない場合の属性吸収枠で使ったことがある。

元の覚醒が強いので転生したら強くなりそう。

和神

カグツチ(★★★★★)

追い打ちマン。金剛夜叉明王大威徳明王がいるならいらない。どちらもいないなら周回で使う場合があるのでとっておきましょう。基本はいらないです。

超転生で化けた。ドロップ5個消しで300万の固定ダメ、神ドラゴン無条件16倍とリーダースキルがランダン、周回向け。おまけに本体も2way5個、スキブ超覚醒込みで4、超覚醒はスキブ+にしなくても毒耐性+もある。さらにおまけの7c2個。つお~い。

 

・オロチ(★★)

威嚇で使うことがある(雑)。

 

スサノオ(★★★★★)(!)

f:id:Parco1021:20200531200417j:image

超転生してスキブ4、暗闇+、ドラゴン悪魔キラーがついた。バランスタイプなのでどんなキラーも潜在でつけることができる。スキルも3ターン60%減&ヘイストなので無難に強い。最近相手のダメージインフレで軽減スキルが重宝されがちだが木パが氷河期なので出番はまだか。

年越してすぐの物語シリーズコラボで撫子が登場。裏魔廊でほぼ必須キャラになり一気によく見るようになった。

 

・アマテラス(★★★)

f:id:Parco1021:20200528223334j:image

イラストが可愛い。スキルもステータスも覚醒もかなり回復に寄っている。PTの回復力が低い時、回復力を補うために入れられているのを見る。作っておきましょう、イラストが可愛いので。

覚醒無効回復+1Tヘイストは意外とないスキル。

 

・ヨミ(★★)

元祖指キャラ。闇メタ環境はよく見た。今は全く使われていない。元祖回復キャラのアマテラスが超転生でああなったので超転生したら指お化けになるかもしれない。指お化けになっても使われるかと聞かれると使われないかもしれない。ただ性能は尖がる可能性が高いのでキープしてもいいかもしれない。基本いらない。自分は個人的に好きなキャラ。

書いている途中で超転生がきた。やはり指お化けになってお邪魔+も貰えた。それだけ。

新和

・全員(★)

超転生待ちです。

インド神

・シヴァ(★★★★★)

スキブ4、7c2、毒耐性+、攻撃タイプ、スキルで激減を貼れる。炭治郎に入れられて強い。魔廊でよく見る。キャラが揃ってない人も適当に炭治郎に入れておけば良い。

 

ラクシュミー(★)

アマテラスと同様回復に性能がよっている。しかしアマテラスよりも回復性能は低い。しかしマシン、ドラゴン、悪魔の3種キラーがあり超覚醒で7cをつけられるため火力も一定期待できるが使われているのを見たことがない。

 

パールヴァティー(★★)

無効貫通*2、超追撃*3とかなり尖っているが、現環境で超追撃はほぼ使われていないかつ無効貫通を組まないと火力が出ないので使われていない。一応スキブ4

 

・インドラ(★★★★)

f:id:Parco1021:20200531200348j:image

スキルは回復力エンハ、激減+ヘイストと環境に適しておりさらに毒耐性+、スキブ4と覚醒も強い。さらに光攻撃タイプなのでファスカのサブに入れやすい。

 

ヴリトラ(★★★★★)

超転生待ち。だと思ったらきた。

スキルが6T全体ブレス。ダンボも詰めてスキブ4、ダンボマシマシポチポチですごいよく見る。

新インド神

・クリシュナ(★★)

一応炭治郎パに入るが本体覚醒に泥強をもっているのがもったいない。コンボ強化がどの程度の評価なのかまだわからないため何とも言えない。

 

・サラスヴァティ(★)

よほどコンボ強化が壊れてないと使わないと思う。

 

・ヴィシュヌ(★★)

超覚醒込みでway5なのでどこかで使えるかも。使えないかも。

 

ガネーシャ(超究極)(★★)

サレーネ茂茂難民。

 

・転生ガネーシャ(★)

お邪魔+、コンボ強化持ちだがなんとも。。。

 

ドゥルガー(★)

暗闇耐性+、コンボ強化。うーん。。

 

北欧神

・フレイ(★★★★)(!)

超転生待ち。してもエンハンスは炭治郎がいるけど。

スキブ4の2ヘイストなので実質スキブ6として雑にセイナや炭治郎に入れていい働きをしてくれる。 

・イズイズ(★★)

スキブ4偉い。ムコカン組めばマシンキラーもあるので魔門で使えるかも。

 

フレイヤ(★★)

木闇エンハ+回復力エンハは強い。覚醒は列強化に寄っており現環境で木の列は使わない。しかし超覚醒でお邪魔耐性+がつけられるので全てが惜しい。悪くはないので作っていいかも。

アプデで列強が強化されたので今後木の列パが台頭した時に使うかもしれない。スキブ4にもなる。

 

・トール(★★★)

スキブ5。光の攻撃タイプ。スキルも合わせて実質スキブ6なので変身パには普通に選択しに入るしよく見る。

 

・ロキ(★★★★)(!)

超転生待ち。

超転生したが、フレイと違いヘイストが1Tだがスキブ5なので実質的なスキブの数は同じ。覚醒も悪くないが、闇は他のキャラが強いので特別ロキを使うということはなさそう。

エジプト神

・ホルス(★★★★★)

f:id:Parco1021:20200531200303j:image

スキルターンが短い上にスキブも十分あり、後述するがかなりランダン適正が高いためランダンでめちゃくちゃ使う。転生、超転生どちらも使うが、転生の方がランダン適正が高いので1体しかいない場合は転生で止めておきましょう。

転生/超転生 属性 ガドブレ スキブ L字 封印 2way
転生 火/水 3 2 1
超転生 火/光 3 1 2 ×

ランダンにおいて重要な要素をピックアップして表にまとめました。

①ランダンにおいて水属性が不足することがある。

②封印耐性が不足する時がある

③超転生にはない2wayでポイント稼ぎができる

以上の3点から転生ホルスの方がランダンにおいて優秀。当然超転生ホルスの方が攻略においては優秀だがそもそも攻略において使用されていないため1体しか持っていない場合は転生にしておくべき。

そしてホルスは何より転生は炭治郎、どちらもセイナに入るのが強い。2秒でロック解除、指延長ができるのがシンプルに強い。あとは先にも書いた通り炭治郎で足りなくなりがちな封印を2つ持ってるのも偉い。

 

・イシス(★★★★)

3Tでお手軽軽減、覚醒無効で強い。スキブ3、追い打ち、ガドブレ、雲とサポートに特化している。

 

・バステト(★★★)

スキルターンが短いため、周回編成やランダンで使用したいスキルをアシストされて使われているのを見る。リーダースキルも使いやすい。なんか無難にちょこちょこ使う。

 

・ラー(★★★★★)

f:id:Parco1021:20200531200247j:image

サンバーストナックル!!ポチポチで無限に使うので5体出たら5体取っておくべき。

 

・アヌビス(★★★★)

f:id:Parco1021:20200531200232j:image

ランダンマジックリン杯の時によく高火力リーダーとして使われる。スキルも軽くて良い。上方修正で10c2つとなり本人も火力が出るようになった。

新エジプト神

・セト(★★)

7c3は強かったが、無効貫通もないしスキブも少ないしインフレの敗北者。

 

・ヌト(★)

80%以上の2wayの火力がなんたらってみた気がするけどスキブ1はさすがに使えない。

 

オシリス(★)

50%以下4つにスキブ0か50%以下3つにスキブ2か。使わぬ。

 

・ハトホル(★)

L字たくさんスキブ1。使わない。

 

・ネフティス(★★)

極連の周回で使った。列強化とターンの短い列変換が偉い。さらに毒耐性+と他の新エジプト神より明らかに優遇されている。スキブ2だけど。

超転生で結構強くなりそう。

天使

ウリエル(★★★★★)

炭治郎に入る10c7c2個持ちで火力十分。ただしルーレット回復の被害者のため無駄なバインド回復が3つ付いている。スキブも2個で少し寂しい。

 

・ガブリエル(★)

超転生したがスキブも1個でちょっと救えない。

 

・ミカエル(★)

超転生していないのでそれ待ちなのだが、炭セイナ環境の次は木だと思っているのでそれに合わせてきそう。期待。

 

・ラファエル(★)

超転生したがなんともいえない性能におちついた。

 

・ルシファー(★★★★)

f:id:Parco1021:20200531200139j:image

50%以下強化*4、スキブ3で周回編成でよく使う。他にも単体ブレスで使ったりした。自分は極連編成で使っている。

新天使

・ロズエル(★★★)

スキブ4の毒耐性の攻撃タイプで副属性が木なので炭治郎に入らないことはない。しかしバキが転生したこと、そもそも火力が出ないならカナヲでいいことからあまり使われないがキャラが揃っていない場合十分活躍が期待できる。

 

・ファミエル(★★★★)

スキブ4の毒耐性+のway4で使い道が結構ある。ランダンにも火力、スキブ枠で使うことが割とある。

 

・リュエル(★★)

スキブ4の毒耐性+のway2の80強化3とファミエルの少し劣化感が否めない(そもそも属性が違うが…)。ファミエルぐらい尖っていてくれたら使うことがあったと思う。

 

・アリエル(★★★★)

f:id:Parco1021:20200531200118j:image

お邪魔耐性+、スキブ4、光攻撃タイプ。強い。光属性は強い上にファスカのサブにも入れられる。スキルターンも短いので傘等継承させるもよし、4Tに一回光ドロップを4個生成させるもよしで普通に強い。

と過去に書いたが現在は光があまり使われていない。ただしファスカは7*6いじめに遭わなければまだまだ現役なのでダンジョンや相方次第ではアリエルも全然イケる。環境的に★4ってだけ。

 

・ルミエル(★★★)

暗闇耐性+、スキブ4、無効貫通*2で強いと思うが使われているのを見たことがない。が、闇属性が強いのでどこかで使うポン入れしても強いと思う。単体スペックは高め。

 

悪魔

・ベリアル(★★)(!)

超転生待ち

超転生きちゃああ

5Tで木を変換して反撃してもねぇ……って感じ。使わん。

 

・アモン(★)

超転生待ち

 

アスタロト(★★)

オールアスタロトで裂界攻略してるのを見たのでポテンシャルはあると思う。一応スキブ4。

 

・バアル(★)

超転生待ち

 

・堕ルシ(★★)

f:id:Parco1021:20200531200104j:image

スキブ4の神キラー*2でさらに潜在で神キラーも振れるのでランダンや周回でしばしば使う。スキルも軽めなので継承で陣打てるのも◎。数体持っていて良い。

四神

・レイラン(★★)

超転生は7c*3で普通に火力は出るが、無効貫通がないので単色パに入れるかと言われると怪しい。

ドットはその点きちんと無効貫通も7cもあるしお邪魔耐性+もある。こっちの方が強いがスキブ少ないし使わないと思う。

 

・カリン(★★★)

超転生は使わない。

ドットはレイランと同じ評価。

ストーリーで進化する「天導刃の青龍・カリン」はスキブ2、7c3、お邪魔耐性+、悪魔ドラゴンキラーに加え、超覚醒でスキブ+、L字、無効貫通のどれかが付けられる。強いと思う。使うかは知らんけど。

 

 

・メイメイ(★)

7c*2、ドラゴン悪魔キラー。本体を使うかと聞かれたら微妙。

ドットは他と同じ。

 

・サクヤ(★★★★)

超転生はまず暗闇耐性+、お邪魔及び毒耐性を持っている。上杉や伊達などの武器で4つつけるのがトレンドなのでこの1つずつ持っているのが何気にでかい。火力は7c2個だが気にしなくて良い。スキルのグラビティのターンが軽く、覚醒無効回復も持っているので裏修羅周回で使われているので★4つ。本来の単体スペックは★2か3程度。

ドットは他と同じ。

 

・ハク(★★★★)

f:id:Parco1021:20200531200034j:image

超転生は2wayお化け。尖っているので確保おすすめ。

ストーリーで得られる「星帝刀の白虎・ハク」はカリンと同様、火力やギミック、スキブも十分なので強い。ラジエル最適性。

英雄神

超転生がそろそろきそう。それだけ。

ヤマトタケル(★)

超転生待ち。

 

アンドロメダ(★★)

7c3、L字3の火力特化。スキブ2でやや物足りないがお邪魔耐性+を付けることができる。そもそもL字があまり強くないので惜しい。無効貫通ないのも微妙…。

 

ペルセウス(★)

超転生待ち

 

孫悟空(★)

超転生待ち

 

・パンドラ(★★★★)

スキブ4、列4、暗闇耐性+、無効貫通2、スキルヘイスト持ちと周回にも攻略にも使うことができる。

 

三国神

曹操(★)

超転生待ちなのはもちろんなのだが、一応転生でもスキブ3、暗闇耐性+を持っている。まあ使わないんだけどね。

 

孫権(★★★★)

超覚醒込みで2way5、暗闇耐性+、スキブ2と良い感じ。特にランダンではドラゴンキラーを4凸して使うことが多い。

 

劉備(★)

曹操と同じ評価。お邪魔耐性+を持っているが…ってかんじ。

 

大喬小喬(★)

曹操劉備よりも使わない。超転生待ち。

 

呂布(★★★★★)

f:id:Parco1021:20200531200014j:image

リーダースキルがMAX24倍出る火力お化け。50%以下*3で本体も火力が出るため極連も周回できる。

 

新三国神

夏侯惇甘寧馬超司馬懿(★★)

超覚醒込みで2way6個持ちで孫権のように何かしらで使われそうだったが使われているのを見たことがない。なんでだろ。

 

貂蝉(★★★★★)

f:id:Parco1021:20200531195930j:image

暗闇耐性、スキブ4おまけにL字でまず覚醒が強い。さらにスキルも2ターンで溜まり、覚醒無効2ターン回復、操作延長と普通に強い。2ターンで溜まるので使いたいスキルをアシストで付けやすい。最近は光が微妙だが間違いなく星5で最強候補のキャラ。

戦国神

真田幸村(★)

超転生待ち。

 

毛利元就(★★)

バランスキラー*2であり、潜在でもバランスキラーが触れる。ランダンや周回で使う可能性がある。使ったことないけど。

バランスキラーならバルボワで良い。

 

石田三成(★)

真田幸村と同じ。

 

前田慶次(★)

超転生待ち。運営の固定パーティーで良く見るキャラ。

 

明智光秀(★★★)

回復キラー*2であり、潜在でも回復キラーを振ることができる。ランダンでカイフクキラー要因として使われることがまれにある。

 

新戦国神

稲姫(★★★★★)

マシンキラー2、お邪魔耐性+、封印2、無効貫通の攻撃タイプと炭治郎の裏魔門周回パでかなり良く使われる。逆に魔門以外ではマシンキラーが刺さらないため微妙だが現在間違いなく最も使われている星5キャラの1つ。

 

・ねね(★★★)

悪魔キラー2、暗闇耐性+、封印2、無効貫通とスキルも強い。しかし悪魔キラーの無効貫通はバージルがおり、火力面で採用するのではなくスキルや封印、暗闇耐性目的で採用することが多いだろう。

 

お市(★★★★)

神キラー2、毒耐性+、封印2、無効貫通と前2体と似た性能をしている。神キラーに特化させてランダンで使うことがある。

 

・立花ぎん千代(★★★★★)

スキブ4、7c2、ガドブレ、毒耐性+、暗闇お邪魔1つずつとかなり強い。先にも書いたが1つずつ持っているのが偉い。攻撃タイプなのでファスカにも入る。スキルも激減なので強い。

 

濃姫(★★★★★)

誾千代の毒耐性+→お邪魔耐性+の覚醒スキル。覚醒スキルもスキルも優秀なので誾千代同様強い。

 

星機神

・全員(★)

転生、超転生待ち。

新星機神

・全員(★)

転生はおろか覚醒進化すらしていないキャラがいる。進化待ち。

明王

金剛夜叉明王大威徳明王(★★)

f:id:Parco1021:20200531195920j:image

 

マルチブースト*2の200倍追い打ちとマルチであれば最大ダメージの追い打ちをすることができる。どちらも使う可能性があるので両方確保。

最近はカグツチを初め大きい追撃持ちが増えたので価値があまりなくなった。

 

大威徳明王(★★★★)

本体はおそらく使わない。泥強武器として使うかも。

 

降三世明王軍荼利明王不動明王(★)

超転生待ち。

 

・軍茶利明王(★★★★)

まさかのこのシリーズ超転生。本体はまあ悪くはない性能をしているがスキルが微妙なので使わなさそう。

武器がバインド耐性+と泥強3なので結構強い。武器を作っておいて水パを使うときに適当につけるのはアリ。

不動明王(★★★★★)

つ よ い。まずは本体だが、攻略面ではあまりかも。しかしスキルが下から2段目木一列生成と3コンボ加算なので陣からの不動明王で無効貫通7cが組める。いい性能だが武器でいいかも。

武器は軍茶利明王と同じ感じ、上で書いた通りスキルが強いので武器を作っておきたい。

 

 

ケルト

・ブリギッド(★)

マシン2、体力2の暗闇耐性+持ちなので悪くはないがスキブが少ない。転生に期待。

 

・ルー(★★)

元祖吸収無効キャラ。今は使わないけど吸収無効いないなら取っておこう。

 

・オイフェ、ダグザ、アリアンロッド(★)

転生に期待。

メソポタミア

ギルガメッシュ(★★)

ルーと同じ

 

・エア(★★)(!)

f:id:Parco1021:20210220011733j:image

イラスト好き。

激減スキルはどこかで使うかも、使わないと思うけど。

 

・エンキドゥ(★★)(!)

微妙。

 

シャマシュ(★★)

スキブ4、お邪魔+持ちとどこかで使えそう。スキルも消せない&覚醒無効全回復+グラビティで強い。

 

・アルラトゥ(★★★★★)

スキブ4、7c2、毒耐性+、L字を覚醒スキルに持ちさらにスキルが威嚇+陣と威嚇が強い現環境ではかなり使われている。修羅は特に威嚇が刺さるので稲姫と同じかそれ以上ぐらいよく見る。

 

忍者

・全員(★★★★)

全員武器化すると3種耐性の1つ*2、スキル封印耐性、バインド耐性武器となるため覚醒スキルは優秀だがスキルターンが短いことがネック。

ライダー

・全員()

ノーチャン

パズドラZ

・アヴァロンドレイク(★★)

f:id:Parco1021:20200531195909j:image

木・光の二色陣で主に継承させてランダンで何度も使った。処理が速い2色陣は貴重。

ヴァルキリー

・全員(★★★★)

各色ヴァルキリーはドット進化することで攻撃キラー*3と各耐性+をつけることができきる。まだ出番はないがランダンでいつ使ってもおかしくない。7cも無効貫通もあるのでダンジョンによっては替えが効かない存在となり得る。

勇士

・ショーテル、クレイモア、正宗、コピス、ツヴァイハンター(★★)

全員キラー武器になる上スキルも唯一性があるものなので取っておく。

幻獣ライダー

・全員()

ノーチャン

宝石姫

・カラット(★★★★★)

f:id:Parco1021:20200531195856j:image

最強エンハンス。コレは通常ガチャでしか出ないので所謂"カラット難民"が続出している。

 

・シルク、カメオ、ファセット、シーン(★★★)

それぞれエンハンス武器になるので1体はとっておく。

 

おわりに

とりあえず、このページにおいて解説しているキャラはとっておきましょう。特に画像付きのキャラは使用頻度がまあまあ高いのでとっておくだけでなく、最終進化の状態までしておくと良いです。異論は受け付けます。コメントなどで御意見、御質問お待ちしています。適宜訂正していきたいと思いますので宜しくお願い致します。

スポンサーリンク