ノート4.9 タグのクラスタリングによって、新しいジャンルの発見を試みる(その2)

(注意)本作のデータは全て2021年1月19日から20日にかけて取得されたものです。


 ――――――――――――――――


「ねぇ、タケル君。『正規化せいきか』ってなんなの?」


 俺――研究所主任研究員マッドサイエンティスト草薙くさなぎタケルが Google Colaboratory の威力に感動しているとき、研究助手アシスタントとう景子けいこが俺の元へやって来た。


 手には、前回の研究ノートが握りしめられている。


「おや、珍しく勉強熱心だね」

「今日の話は文字数がもの凄く多いから、早く始めないとダメかなーと」

「メタネタ……。まぁいいや。

 『正規化』とは、端的に言ってしまえば『物事をある基準に従って揃えること』だ。分野によっては、規格化とも標準化とも呼ばれるな」

「正規化や標準化をすることで、何か嬉しいことがあるの?」

「嬉しいことだらけさ! 俺たちはそれらの恩恵を受けながら日々生活している。

 例えば、スマホの充電やデータの移動に欠かせないUSB。NPOであるUSB-IFという団体が統一の規格を策定しているからこそ、俺たちはどんなスマホやパソコンでも気にせず使うことが出来る。

 逆に、規格の統一が遅れて混乱したのが DVD の後継メディア。今でこそ Blu-ray が一般的に普及してるけど、当初はソニーが主導する Blu-ray と東芝が主導する HD DVD が覇権争いをして、ハリウッドやその他のエンタメ企業が右往左往するという事態が起こったんだ。当然、そのしわ寄せは一般大衆である俺たちに来たって訳」

「ふーん、そんなことがあったんだ。まぁ、何かを揃えると良いことがあるというのは分かったわ」



「では、今日の本題に入ろう。

 前回までの話は、ベクトルで数値化されたタグ同士の距離を計算して、それを基準にクラスタリングを行ってはみたものの上手くいかなかったという話だった。失敗例を再掲しておこう」


 ――――――――――――――――

 タグクラスタリング(クラスター数:2)

 ※失敗例

 ――――――――――――――――

 ┏ クラスター 0:6,754タグ(代表タグ『恋愛』)

 ┫

 ┗ クラスター 1:3タグ(代表タグ『残酷描写有り』)

 ――――――――――――――――


「どう見ても、3種類のタグを取り除きましたーっ! っていう風にしか思えない。どうして上手くいかなかったのかしら?」

「それは、タグの出現頻度に関係している」

「ん? どういうことだろう」

「作品にたくさん付けられているタグがあれば、あまり使われていないタグもある。例えば、『短編』タグは 29,919 作品に付けられているのに対し、『短編小説』というタグは似たような意味にも関わらず 666 作品にしか付いていない。

 そして、タグのベクトルは出現頻度に基づいて計算しているから、使われている使われていないの影響をもろに受ける。『短編』と『短編小説』は距離が近くなって欲しいのに、出現頻度の差に邪魔されて遠い距離になってしまっていたんだ」

「つまり、出現頻度が同じくらいのタグ同士の距離が近かったと言うこと?」

「その通りだ! さっきの失敗例では、ほぼ出現頻度の高さによってクラスター化されていたと言っていい」

「なるほど。それは確かにあり得そうね。でも、出現頻度の影響を無くすなんてことが出来るの?」

「それを可能にするのが『正規化』なんだ。かなり乱暴な言い方をすると、今回の正規化は、全てのタグにおいて出現頻度を 1 回に強制するんだ」

「えぇ!?」

「具体的な方法を説明しよう。ベクトルを正規化するためには、ベクトルの大きささえ分かればいい。これは研究ノート 4.2 で出てきたぞ」


 ――――――――――――――――

 ベクトルの大きさ

 ――――――――――――――――

 |𝑎| = √(𝑎₁² + 𝑎₂² + 𝑎₃² + 𝑎₄²)


 例:|𝑎| = √(0² + 1² + 2² + 3²) ≒ 3.741

 ――――――――――――――――


「コサイン類似度を計算するときに出てきたわね」

「うん。そして、ベクトルの正規化は次のように行う」


 ――――――――――――――――

 正規化normalizedベクトル 𝑛

 ――――――――――――――――

 𝑛 = 𝑎 / |𝑎| = (𝑎₁/|𝑎|, 𝑎₂/|𝑎|, 𝑎₃/|𝑎|, 𝑎₄/|𝑎|)


 例:𝑛 = 𝑎 / |𝑎| ≒ (0/3.742, 1/3.742, 2/3.742, 3/3.742)

  ≒ (0.00, 0.27, 0.535, 0.802)

 ――――――――――――――――


「ベクトルの各要素を自分自身の大きさで割るだけなのね」

「簡単だろ? これで正規化は完了だ」

「出現頻度を 1 回にするって言ってたけど、本当に出来てるのかなぁ。確認する方法はあるの?」

「じゃぁ、ケイコちゃん。例に挙げた正規化されたベクトルの大きさを計算してみて」

「え、私がするの? ちゃんと出来るかなぁ――」


 ――――――――――――――――

 ベクトルが正規化されたかの確認

 ――――――――――――――――

 |𝑛| = √(0.00² + 0.267² + 0.535² + 0.802²) = 1.000

 ――――――――――――――――


「あ、1 になった!」

「つまり、ベクトルの正規化とは、ベクトルの大きさを 1 に揃えることだよ。これの何が嬉しいかというと、ベクトルが持つの特徴を全く変えずに保存していると言うことなんだ」

「コサイン類似度の時に、ベクトルの向きがタグの特徴になるって言ってたけど、ここにも効いてくるのか。面白いなぁ」

「と言うことで、誰も見ないだろうけど例題における正規化ベクトルと、それを使って計算した距離行列を載せておこう。暇な人はどんなクラスタリングになるか遊んでみてはいかがだろうか」


 ――――――――――――――――

 正規化ベクトル 𝑛 で表現されたタグの例

 ――――――――――――――――

 恋愛 = (0.655, 0.436, 0.436, 0.000, 0.000, 0.218, 0.218, 0.218, 0.218)

 学園 = (0.471, 0.707, 0.236, 0.236, 0.236, 0.236, 0.236, 0.000, 0.000)

 日常 = (0.603, 0.302, 0.603, 0.000, 0.000, 0.000, 0.000, 0.302, 0.302)

 魔法 = (0.000, 0.577, 0.000, 0.577, 0.577, 0.000, 0.000, 0.000, 0.000)

 異世界 = (0.000, 0.577, 0.000, 0.577, 0.577, 0.000, 0.000, 0.000, 0.000)

 短編 = (0.500, 0.500, 0.000, 0.000, 0.000, 0.500, 0.500, 0.000, 0.000)

 コメディ = (0.500, 0.500, 0.000, 0.000, 0.000, 0.500, 0.500, 0.000, 0.000)

 現代 = (0.500, 0.000, 0.500, 0.000, 0.000, 0.000, 0.000, 0.500, 0.500)

 青春 = (0.500, 0.000, 0.500, 0.000, 0.000, 0.000, 0.000, 0.500, 0.500)

 ――――――――――――――――


 ――――――――――――――――――――――――――――――

 正規化ベクトルを使用したタグの距離行列

 ――――――――――――――――――――――――――――――

      恋愛 学園  日常  魔法 異世界 短編 コメディ 現代 青春

 ――――――――――――――――――――――――――――――

 恋愛   0.00 0.60 0.40 1.22 1.22 0.69 0.69 0.69 0.69

 学園   0.60 0.00 0.85 0.80 0.80 0.59 0.59 1.14 1.14

 日常   0.40 0.85 0.00 1.29 1.29 1.05 1.05 0.44 0.44

 魔法   1.22 0.80 1.29 0.00 0.00 1.19 1.19 1.41 1.41

 異世界  1.22 0.80 1.29 0.00 0.00 1.19 1.19 1.41 1.41

 短編   0.69 0.59 1.05 1.19 1.19 0.00 0.00 1.22 1.22

 コメディ 0.69 0.59 1.05 1.19 1.19 0.00 0.00 1.22 1.22

 現代   0.69 1.14 0.44 1.41 1.41 1.22 1.22 0.00 0.00

 青春   0.69 1.14 0.44 1.41 1.41 1.22 1.22 0.00 0.00

 ――――――――――――――――――――――――――――――



「さぁ、ここからはいよいよクラスタリングの本番だ。正規化距離行列を用いて再計算した結果を、クラスター数の小さい順で見ていくことにしよう。まずはクラスター数 2 から始めるぞ」

「今度は上手くいくのかしら?」


 ――――――――――――――――

 タグクラスタリング(クラスター数:2)

 ――――――――――――――――

 ┏ クラスター 0:5,218タグ(代表タグ『恋愛』)

 ┫

 ┗ クラスター 1:1,539タグ(代表タグ『残酷描写有り』)

 ――――――――――――――――


「お、代表タグは同じだけど、失敗したときと比べてクラスターに含まれているタグの種類が全然違うわ」

「そうだな。どうやらクラスタリングが上手くいっているようだ。

 ちなみに、クラスター間に含まれるタグの種類を同じくらいにする手法もあるけど、今回は一切考えていない。つまり、このような数の偏りは普通に起こるぞ」

「とりあえず、『恋愛』と『残酷描写有り』は遠いってことでいいのかしら?」

「うん。この階層型クラスタリングは別名ボトムアップ手法と言って、全くクラスタリングしていない状態から 1 つずつクラスターを積み上げているから、これらのクラスターは最後まで一緒にならなかったと言うことで非常に遠い関係にあると言っていいだろう」

「なるほど。確かに、『恋愛』と『残酷描写有り』は普通に考えてマッチしなさそうだもんね」



「次は、クラスター数を 1 つ増やして 3 の場合を見てみよう」


 ――――――――――――――――

 タグクラスタリング(クラスター数:3)

 ――――――――――――――――

  ┏ クラスター 2:4,396タグ(代表タグ『短編』)

 ┏┫

 ┫┗ クラスター 3:822タグ(代表タグ『恋愛』)

 ┗ クラスター 1:1,539タグ(代表タグ『残酷描写有り』)

 ――――――――――――――――


「クラスター 0 が 2 つに分かれたわね」

「どうやら『恋愛』ジャンルはかなり高レベルで独立したクラスターらしい。恋愛小説は文字通り『恋愛』に特化したものが多く、ファンタジーやSFといった他の要素が薄いと言うことが示唆される」

「あー、早い段階で分かれるとそう言う考察になるのか。逆に言えば、なかなか出てこないジャンル名があった場合は――」

「ジャンル分類としてあまり機能していないと言うことになるかな」

「ふむ……そんなカテゴリーはあるかしら」



「さらに数を増やして、クラスター数 4 の結果だ」

「次に出てくるのはジャンルキーワードかしら、それとも別のタグかしら?」


 ――――――――――――――――

 タグクラスタリング(クラスター数:4)

 ――――――――――――――――

   ┏ クラスター 4:1,811タグ(代表タグ『SF』)

  ┏┫

 ┏┫┗ クラスター 2:2,585タグ(代表タグ『短編』)

 ┫┗ クラスター 3:822タグ(代表タグ『恋愛』)

 ┗ クラスター 1:1,539タグ(代表タグ『残酷描写有り』)

 ――――――――――――――――


「『SF』が出てきたわ」

「そうだね。ただ気を付けないといけないのは、単にクラスターの代表タグ――そのクラスターの中で 1 番出現作品数が多いというだけだと言うこと。

 『恋愛』タグの場合はタグの種類が 1,000 を切っているから、他のジャンルに比べて独立してると言ってもあまり問題はない。しかし、クラスター 2 とクラスター 4 に含まれるタグの種類を見るとまだまだ多い。今の段階で『SF』が独立した 1 ジャンルとして地位を確立していると言うには時期尚早だ」

「なら、とにかく次を見ないとダメね」

「どんどんいくぞ。次はクラスター数 5 だ」


 ――――――――――――――――

 タグクラスタリング(クラスター数:5)

 ――――――――――――――――

    ┏ クラスター 5:1,547タグ(代表タグ『ホラー』)

   ┏┫

  ┏┫┗ クラスター 4:264タグ(代表タグ『SF』)

 ┏┫┗ クラスター 2:2,585タグ(代表タグ『短編』)

 ┫┗ クラスター 3:822タグ(代表タグ『恋愛』)

 ┗ クラスター 1:1,539タグ(代表タグ『残酷描写有り』)

 ――――――――――――――――


「お、『SF』のクラスターに含まれるタグの種類がたった 264 種類になったわ。これは完全に他とは相容れない雰囲気ね。サービス開始当初、カクヨムは『SF』に強いと言われてたけど未だに勢力は健在ということかしら」

「人気があるかどうかは別としても、独立した勢力として存在していることは間違いないだろう。そして、『SF』から分離したのは『ホラー』を含むタグたち。他には何が含まれてるのだろうか?」

「次、クラスター数 6、行ってみよう!」


 ――――――――――――――――

 タグクラスタリング(クラスター数:6)

 ――――――――――――――――

     ┏ クラスター 5:1,469タグ(代表タグ『ホラー』)

    ┏┫

   ┏┫┗ クラスター 6:78タグ(代表タグ『けものフレンズ』)

  ┏┫┗ クラスター 4:2,64タグ(代表タグ『SF』)

 ┏┫┗ クラスター 2:2,585タグ(代表タグ『短編』)

 ┫┗ クラスター 3:822タグ(代表タグ『恋愛』)

 ┗ クラスター 1:1,539タグ(代表タグ『残酷描写有り』)

 ――――――――――――――――


「アハハハ! 『けものフレンズ』!!」

「見事に高レベルでクラスター化したな。これはもう大分類と見做みなして差し支えないだろう。

 そして、『SF』から分離しているというのがまた面白い。『けものフレンズ』に触れたことのある『読み手』なら分かると思うが、セルリアンとか案外『SF』なんだよ。だからこれは結構興味深い」

「ふーん、そうなんだ。

 ところで、分かれる順番に意味ってあるの?」

「ある。クラスタリングするとき、距離の近いもの同士をグループ化するという話はしたよね。つまり、分かれる順番が遅ければ遅いほど、最初の方に分かれたクラスターとは遠い関係になってると言えるんだ。

 例えばさっきの『けものフレンズ』だけど、今のところクラスター 5 と 1 番関係が深く、その次はクラスター 4 の『SF』。そして1番遠いのはクラスター 1 の『残酷描写有り』と解釈出来る」

「なるほど。と言うことは、他のセルフレイティング――『暴力描写有り』や『性描写有り』はクラスター 1 に含まれてそうね」

「確かにその可能性は高そうだが、どうだろうね。

 次はクラスター数 7 の場合だ。ジャンルキーワードが続々出てくると思うが、果たして?」


 ――――――――――――――――

 タグクラスタリング(クラスター数:7)

 ――――――――――――――――

     ┏ クラスター 5:1,469タグ(代表タグ『ホラー』)

    ┏┫

   ┏┫┗ クラスター 6:78タグ(代表タグ『けものフレンズ』)

  ┏┫┗ クラスター 4:2,64タグ(代表タグ『SF』)

  ┃┃┏ クラスター 2:792タグ(代表タグ『短編』)

 ┏┫┗┫

 ┫┃ ┗ クラスター 7:1,793タグ(代表タグ『現代ドラマ』)

 ┃┗ クラスター 3:822タグ(代表タグ『恋愛』)

 ┗ クラスター 1:1,539タグ(代表タグ『残酷描写有り』)

 ――――――――――――――――


「『短編』と『現代ドラマ』が分かれたわ」

「クラスター 2 のタグが 792 種類と言うことで、大分少なくなってきた。『短編』はオールジャンルであることが予想されるから、何か『短編』にまつわる別の何かが寄せ集まっていると考えるのが自然だろう」

「例えば?」

「例えば……なんだろう。この時点では想像がつかない」

「なら、次に進むしかないわね。クラスター数 8 を見てみましょう」


 ――――――――――――――――

 タグクラスタリング(クラスター数:8)

 ――――――――――――――――

     ┏ クラスター 5:1,469タグ(代表タグ『ホラー』)

    ┏┫

   ┏┫┗ クラスター 6:78タグ(代表タグ『けものフレンズ』)

  ┏┫┗ クラスター 4:2,64タグ(代表タグ『SF』)

  ┃┃┏ クラスター 2:792タグ(代表タグ『短編』)

 ┏┫┗┫

 ┫┃ ┗ クラスター 7:1,793タグ(代表タグ『現代ドラマ』)

 ┃┗ クラスター 3:822タグ(代表タグ『恋愛』)

 ┃┏ クラスター 1:1,152タグ(代表タグ『残酷描写有り』)

 ┗┫

  ┗ クラスター 8:387タグ(代表タグ『異世界ファンタジー』)

 ――――――――――――――――


「ようやく『異世界ファンタジー』のお出ましね」

「だな。しかもクラスター 8 に含まれているタグが 387 種類と言うことで、このクラスターは『異世界ファンタジー』でほぼ確定だろう。

 ただ思い出して欲しいのは、この『残酷描写有り』と『異世界ファンタジー』はコサイン類似度で見ると関係性が高かったと言うことだ。一方、クラスタリングではこの時点で両者が分かれたと言うことは、分類としてはちょっと離れてそうだと言うことが分かる」

「タケル君が何を言っているのかサッパリ分からないんだけど」

「俺も分からん」

「え、マジで……」

「コサイン類似度の研究ノートでも指摘したが、今どきのWeb小説はストレスフリーが求められてると思うんだよ。だから、早い段階でクラスターが分かれる方が自然な結果だと俺は思う。それだけに、コサイン類似度の解釈が難しい。

 やはり、星や PV 数などを含めた統計的な処理が必要だろう。この議論はここでおしまいね」

「分かったわ」



「大分タグが分かれてきたな」

「でも、『現代ファンタジー』とか『ミステリー』とかが出てきてないわね。『現代ファンタジー』はクラスター 1 が怪しいとみた」

「確かに。お次は 9 クラスターだ」


 ――――――――――――――――

 タグクラスタリング(クラスター数:9)

 ――――――――――――――――

      ┏ クラスター 5:1,469タグ(代表タグ『ホラー』)

     ┏┫ 

    ┏┫┗クラスター 9:1,469タグ(代表タグ『歴史・時代・伝奇』)

   ┏┫┗ クラスター 6:78タグ(代表タグ『けものフレンズ』)

  ┏┫┗ クラスター 4:2,64タグ(代表タグ『SF』)

  ┃┃┏ クラスター 2:792タグ(代表タグ『短編』)

 ┏┫┗┫

 ┫┃ ┗ クラスター 7:1,793タグ(代表タグ『現代ドラマ』)

 ┃┗ クラスター 3:822タグ(代表タグ『恋愛』)

 ┃┏ クラスター 1:1,152タグ(代表タグ『残酷描写有り』)

 ┗┫

  ┗ クラスター 8:387タグ(代表タグ『異世界ファンタジー』)

 ――――――――――――――――


「おっと、ほぼ同数で『ホラー』と『歴史・時代・伝奇』が先に分かれたか」

「どう見ても独立したクラスターには見えないので、先を急ごう」

「そうね」


 ――――――――――――――――

 タグクラスタリング(クラスター数:10)

 ――――――――――――――――

      ┏ クラスター 5:1,469タグ(代表タグ『ホラー』)

     ┏┫ 

    ┏┫┗クラスター 9:1,469タグ(代表タグ『歴史・時代・伝奇』)

   ┏┫┗ クラスター 6:78タグ(代表タグ『けものフレンズ』)

  ┏┫┗ クラスター 4:2,64タグ(代表タグ『SF』)

  ┃┃ ┏ クラスター 2:792タグ(代表タグ『短編』)

  ┃┃┏┫

 ┏┫┗┫┗ クラスター 10:223タグ(※) 

 ┫┃ ┗ クラスター 7:1,793タグ(代表タグ『現代ドラマ』)

 ┃┗ クラスター 3:822タグ(代表タグ『恋愛』)

 ┃┏ クラスター 1:1,152タグ(代表タグ『残酷描写有り』)

 ┗┫

  ┗ クラスター 8:387タグ(代表タグ『異世界ファンタジー』)

 ――――――――――――――――

 (※)代表タグ『エッセイ・ノンフィクション』)

 ――――――――――――――――


「文字数が長かったので注釈にさせて貰ったが、ここでクラスター 2 から『エッセイ・ノンフィクション』が分離して、1 つのクラスターを形成したぞ」

「『恋愛』でもなく『SF』でもない、『現代ドラマ』から分かれていると言うのがなんとも現実的ね」

「そうだな。正直俺もビックリしてる」



「ここまでは、『けものフレンズ』以外だと割と常識的な分かれ方だわ」

「サプライズなく終わってしまうのか? 次はクラスター数 11 だ」


 ――――――――――――――――

 タグクラスタリング(クラスター数:11)

 ――――――――――――――――

       ┏ クラスター 11:1,183タグ(代表タグ『ミステリー』)

      ┏┫

     ┏┫┗ クラスター 5:119タグ(代表タグ『ホラー』)

    ┏┫┗クラスター 9:1,469タグ(代表タグ『歴史・時代・伝奇』)

   ┏┫┗ クラスター 6:78タグ(代表タグ『けものフレンズ』)

  ┏┫┗ クラスター 4:2,64タグ(代表タグ『SF』)

  ┃┃ ┏ クラスター 2:792タグ(代表タグ『短編』)

  ┃┃┏┫

 ┏┫┗┫┗ クラスター 10:223タグ(※) 

 ┫┃ ┗ クラスター 7:1,793タグ(代表タグ『現代ドラマ』)

 ┃┗ クラスター 3:822タグ(代表タグ『恋愛』)

 ┃┏ クラスター 1:1,152タグ(代表タグ『残酷描写有り』)

 ┗┫

  ┗ クラスター 8:387タグ(代表タグ『異世界ファンタジー』)

 ――――――――――――――――

 (※)代表タグ『エッセイ・ノンフィクション』)

 ――――――――――――――――


「『ホラー』が独立!」

「『歴史・時代・伝奇』と『ホラー』が近いと言うのは、伝奇が含まれてる影響かな。分かれた方のクラスターには『ミステリー』が含まれている。直感的には、次は『ミステリー』がクラスター化すると思うんだが、はてさて?」


 ――――――――――――――――

 タグクラスタリング(クラスター数:12)

 ――――――――――――――――

        ┏ クラスター 12:1,047タグ(代表タグ『ほのぼの』)

       ┏┫

      ┏┫┗ クラスター 11:136タグ(代表タグ『ミステリー』)

     ┏┫┗ クラスター 5:119タグ(代表タグ『ホラー』)

    ┏┫┗クラスター 9:1,469タグ(代表タグ『歴史・時代・伝奇』)

   ┏┫┗ クラスター 6:78タグ(代表タグ『けものフレンズ』)

  ┏┫┗ クラスター 4:2,64タグ(代表タグ『SF』)

  ┃┃ ┏ クラスター 2:792タグ(代表タグ『短編』)

  ┃┃┏┫

 ┏┫┗┫┗ クラスター 10:223タグ(※) 

 ┫┃ ┗ クラスター 7:1,793タグ(代表タグ『現代ドラマ』)

 ┃┗ クラスター 3:822タグ(代表タグ『恋愛』)

 ┃┏ クラスター 1:1,152タグ(代表タグ『残酷描写有り』)

 ┗┫

  ┗ クラスター 8:387タグ(代表タグ『異世界ファンタジー』)

 ――――――――――――――――

 (※)代表タグ『エッセイ・ノンフィクション』)


 グラフ情報:

 https://pbs.twimg.com/media/Et8y-5XVgAEdtM4?format=jpg&name=large

(ツイート本体:https://twitter.com/t_kusanagi/status/1359862157723066368)

 ――――――――――――――――


「ほのぼの……『ほのぼの』!?」

「おぉ、意外なタグが来たっ! このタグは4,084作品に付いており、全体ランキングは 37 位。明らかにジャンルキーワードよりも下位だ。これは新ジャンル発見の匂いがプンプンするぞ!」

「一体何が含まれてるのかしら。早く次を見てみましょう!」

「じゃぁ次のクラスターを――って、あー! 文字数が 9,000 字を越えてるじゃないか。流石に長くなりすぎたので、今日はここで一区切りにしよう」

「えー……折角面白くなってきたのに……」

「ほのぼの行こうぜ、ほのぼの」

「いや、それを言い訳に使わないでよっ! タケル君!!」



 ――――――――――――――――

 今日の研究ノートまとめ

 ――――――――――――――――

 ・前回に引き続き、階層型クラスタリングという手法を使ってタグによるジャンル分けを検討

 ・距離行列を正規化することによってクラスタリングが機能することを確認

 ・新ジャンル発見か!? 次回へ続く!

 ――――――――――――――――

  • Xで共有
  • Facebookで共有
  • はてなブックマークでブックマーク

作者を応援しよう!

ハートをクリックで、簡単に応援の気持ちを伝えられます。(ログインが必要です)

応援したユーザー

応援すると応援コメントも書けます

新規登録で充実の読書を

マイページ
読書の状況から作品を自動で分類して簡単に管理できる
小説の未読話数がひと目でわかり前回の続きから読める
フォローしたユーザーの活動を追える
通知
小説の更新や作者の新作の情報を受け取れる
閲覧履歴
以前読んだ小説が一覧で見つけやすい
新規ユーザー登録無料

アカウントをお持ちの方はログイン

カクヨムで可能な読書体験をくわしく知る