第2話 方法

 さて,「すべての作品からランダムに選ぶ」からには,

「すべての作品が同じ確率で選ばれる」

 ことが最重要になります.


 カクヨムには,高度な検索機能[2] があるので,検索条件をでたらめに設定して絞り込みを行う,ということを思いつきました.

 冒頭の検索ページ(https://www.tonyu.jp/krs)は,プログラムで検索条件を適当に生成して,その検索結果に移動するリンクを生成する,という至ってシンプルな作りです.


 ただ,ちょっと注意が必要です.


 まず,検索機能は検索結果を20件おきにページに分けて表示します.次のページなどはあまり見られない傾向にあるので,なるべく1ページにすべての検索結果が表示される,つまり,検索結果を20件以内に収めることが望ましいです.

 そこで,今回作った検索ページでは,「ジャンル」「星の数」「文字数」「公開日」という4つの条件を組み合わせて絞り込むことで,おおむね20件程度の検索結果になるような検索条件を生成しています.

 そして,これらの絞り込みの結果,すべての作品が当確率で選ばれるようにする必要があります.

 例えば,ジャンルを設定して検索するときに,全部のジャンルを等しい確率で検索条件に設定してしまうと,選ばれる作品の確率が偏ってしまいます.


 ここで,第1話に出てきた「カクヨム統計」さんにめっちゃ世話になります.ジャンルごとの作品数を集計していただいていました.


(11月19日時点)


異世界ファンタジー 46,694件 (17.6%)

現代ドラマ 41,471件 (15.6%)

現代ファンタジー 32,128件 (12.1%)

恋愛 31,422件 (11.8%)

詩・童話・その他 29,905件 (11.3%)

SF 18,906件 (7.1%)

ラブコメ 18,605件 (7%)

エッセイ・ノンフィクション 14,660件 (5.5%)

ホラー 12,975件 (4.9%)

ミステリー 7,212件 (2.7%)

歴史・時代・伝奇 5,536件 (2.1%)

二次創作 3,401件 (1.3%)

創作論・評論 2,853件 (1.1%)

計 265768件


 例えば,異世界ファンタジーの件数はミステリーの6倍くらいある,ということになります.検索条件として,異世界ファンタジーとミステリーを等確率で設定してしまうと,どうなるでしょうか.あなたが異世界ファンタジーを1作品書いたとして,あなたの知り合いがミステリーを1作品書いたとすると,知り合いのミステリーのほうが6倍選ばれやすくなる,という結果になってしまいます(つまり,異世界ファンタジーのほうが「倍率が高い」のです).

 そこで,これらのジャンルの分布と同じ確率で,検索条件のジャンルが設定されるようにしました.例えば,異世界ファンタジーが設定される確率は17.6%,ミステリーが設定される確率は2.7%,という具合です.

 「カクヨム統計」さんには「星の数の分布」「文字数の分布」「公開月別作品数」という統計もあります.これらの値ももちろん分布に偏りがあって,例えば,星の数の分布をみると,なんと,36%が「0個」で,「3個」までで50%を超えているのです.

 そこで,これらの検索条件も「カクヨム統計」さんに提示されている分布に従って指定するようにしました.なお,文字数が5万文字以上の場合,星の分布が結構変わる(全体に比べると多くなる)ようなので,その場合だけ補正をかけています.

 最後に,検索結果がおおむね20件になるように,「公開日」の幅を調整しています.たまに,検索結果が少ない条件だと,とんでもない範囲の日付がでますけど気にしないでください(なお,最古の作品公開日は2015年12月25日だそうです).


【2023年1月17日追記】カクヨム統計さんには1年前くらいからつながらなくなり,2022年の公開作品数が不明になってしまいましたが,とりあえず「月1万作品は新規公開されている」という見積りのもと,検索条件の「公開開始日」に2022年が含まれるようにしました.


[2] https://kakuyomu.jp/search

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

作者を応援しよう!

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

応援したユーザー

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

新規登録で充実の読書を

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

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

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