見出し画像

[趣味研究][R18]男の娘とショタの扱われ方#3:時系列


注意

スクレイピングの対象としてアダルトサイトを選んでいることから、本記事には過激な性的表現が含まれているので、未成年の方や、そうした表現が苦手な方は閲覧を控えてください。ご了承いただける方のみスクロールして本記事をお読みください。

*なお本来であれば自主的にR18指定をかけたいのですが、noteにはその機能がなく、公式からR18と指定されるのを待つしかないようです。
















バックナンバー

今回の目的

時系列で人気のタグの変遷をみる。

ここまでは、男の娘やショタに付けられるタグやそのグルーピングをすることによって、なんとなく男の娘やショタに対する鳥瞰図が得られたかと思います。しかし、それは同時にこのジャンルにおける歴史性を無視することになります。

キモイ前書きはこの編にして早速、分析に移りましょう

データセット

前回までと同じです。第一回を参考にして、取得してみてください

メソッド

まずは面倒だったポイント(ほとんどchat gptでなんとかしました)

時間の処理:
第1回のスクレイピングの際に、date(作品の発売日)を取得していました。ただし、2020年5月9日→20200509といった風に保存したのでこれを戻すPandasのメソッドpd.to_datetime(df1['date'], format='%Y%m%d')を使う必要がありました。

ジャンルタグの数え方:
Pandasに無理やりリストをぶち込んでいるので数えるのが案外面倒です。
そのため、Bag of Wordsのようにタグがあるかないかの二値の列を作りました(おそらくデータ数が増えるとこんなことはできない)。

GPTとの対話

2024年の処理:
4月に取得したデータなので、2024年も入るのですがデータ数が少なくて目障りです。しかし、消すのもなんなので、2023年の目盛り上に点線を引くことにしました。
plt.axvline(x=2023, color='r', linestyle='--', linewidth=1)

以下にコードを置いておきます。

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import json
import os
import re
import japanize_matplotlib


femboy_df = pd.read_json("/content/drive/MyDrive/ショタ_男の娘/femboy/fem_boy_all.json", orient='records', lines=True)
femboyr18_df = pd.read_json("/content/drive/MyDrive/ショタ_男の娘/femboy_r18/fem_boyr18_all.json", orient='records', lines=True)
shota_df = pd.read_json("/content/drive/MyDrive/ショタ_男の娘/shota/shotay_all.json", orient='records', lines=True)
shotar18_df = pd.read_json("/content/drive/MyDrive/ショタ_男の娘/shota_r18/shotayr18_all.json", orient='records', lines=True)

def remove_target(tag_list):
    if target in tag_list:
        tag_list.remove(target)
    return tag_list

#男の娘とショタはタグから除外しておく
target = "男の娘"
femboy_df["tag"] = femboy_df["tag"].apply(remove_target)
femboyr18_df["tag"] = femboyr18_df["tag"].apply(remove_target)
target = "ショタ"
shota_df["tag"] = shota_df["tag"].apply(remove_target)
shotar18_df["tag"] = shotar18_df["tag"].apply(remove_target)

##作品数の推移をプロット

# 各データをDataFrameに変換
df1 = pd.DataFrame(femboy_df)
df2 = pd.DataFrame(femboyr18_df)
df3 = pd.DataFrame(shota_df)
df4 = pd.DataFrame(shotar18_df)

# 日付列をdatetime型に変換
df1['date'] = pd.to_datetime(df1['date'], format='%Y%m%d')
df2['date'] = pd.to_datetime(df2['date'], format='%Y%m%d')
df3['date'] = pd.to_datetime(df3['date'], format='%Y%m%d')
df4['date'] = pd.to_datetime(df4['date'], format='%Y%m%d')

# 年度ごとのデータ数を集計
data_counts1 = df1.groupby(df1['date'].dt.year).size()
data_counts2 = df2.groupby(df2['date'].dt.year).size()
data_counts3 = df3.groupby(df3['date'].dt.year).size()
data_counts4 = df4.groupby(df4['date'].dt.year).size()

# グラフをプロット
plt.figure(figsize=(10, 6))
plt.plot(data_counts1.index, data_counts1.values, label='男の娘', marker='o')
plt.plot(data_counts2.index, data_counts2.values, label='男の娘_R18', marker='o')
plt.plot(data_counts3.index, data_counts3.values, label='ショタ', marker='o')
plt.plot(data_counts4.index, data_counts4.values, label='ショタ_R18', marker='o')
plt.title('作品数の推移')
plt.xlabel('年')
plt.ylabel('作品数')
plt.legend()
plt.grid(axis='y', linestyle='--', alpha=0.7)
plt.axvline(x=2023, color='r', linestyle='--', linewidth=1) 
plt.tight_layout()
plt.show()

##各データフレームごとにジャンルの推移を調べる

for df1 in [shota_df, shotar18_df, femboy_df, femboyr18_df]:
# data1の要素
  df1['date'] = pd.to_datetime(df1['date'], format='%Y%m%d')
  df1['year'] = df1['date'].dt.year


  # タグの出現頻度をカウント
  tag_counts = df1['tag'].apply(pd.Series).stack().value_counts()
  top5_tags = tag_counts.head(10).index.tolist()

  # 上位5つのタグの有無をバイナリで表す列を作成
  for tag in top5_tags:
      df1[tag] = df1['tag'].apply(lambda x: 1 if tag in x else 0)

  # 年ごとの作品数を計算
  yearly_counts = df1['year'].value_counts()

  # 年ごとにグループ化し、各tagの数を年ごとの作品数で割って正規化し、折れ線グラフで表示
  grouped_by_year = df1.groupby('year')
  plt.figure(figsize=(10, 6))
  for tag in top5_tags:
      tag_counts_year = grouped_by_year[tag].sum() / grouped_by_year.size()
      plt.plot(tag_counts_year.index, tag_counts_year.values, marker='o', label=tag)

  plt.title(f'上位8ジャンルの推移(%)')
  plt.xlabel('年')
  plt.ylabel('頻度')
  plt.legend(title='Tag')
  plt.grid(True)
  plt.axvline(x=2023, color='r', linestyle='--', linewidth=1) 
  plt.tight_layout()
  plt.show()

結果

作品数の推移
まず、R18の方を見ると、DLsiteにおいては「男の娘」タグは2004年から生まれたことが分かります

次に目につくのは、男の娘とショタの増減が概ね一致していることです。これは両ジャンルが被っていることが原因かもしれませんので、男の娘作品からはショタのタグを含む作品を、ショタ作品からのタグをは男の娘タグを含む作品を消してみました(R18のみ)。

より一層、相関が強くなりましたね。

R18・全年齢ともの男の娘が2010年でジャンプしていることが分かります。

また2020でショタが大きく下降しているのはコロナの影響でしょうか?特に風当たりが強くなった覚えもありませんが、、


次にショタ全年齢・男の娘全年齢・ショタR18・男の娘R18内の上位8タグの遷移を見ていきましょう

ショタ 全年齢
ショタ R18
男の娘 全年齢
男の娘 R18

全年齢の方はあまり面白くないですね(Nが少ないので)。個人的に一番面白いのは、男の娘 R18における女装タグが上位ではありつつも徐々に下がっていることです。これは①女装しなくても男の娘と認められるようになった②女装するのが自明化してタグ付けがした の2パターンが考えられます。ただ、女装とショタの増減傾向が似ているのでショタ+女装=男の娘という古典的な図式にとらわれない作品が増えたと思われその意味で①かなと思ってます。

また男の娘作品におけるショタの割合は2010年以降下がっていて、ショタとの棲み分けが進んだのかと思います。これは先ほどみた2010年のジャンプに対応してるのかと思われ、質・量ともに男の娘文化の大きな勃興期(a.k.a 勃期)なのかもしれません。

さらに、アナルの割合が近年1位に踊りでています。これはおねショタが1位になっているショタとは対照的で、やはり男の娘は受けの穴、ショタは受けではあるがあくまで竿だという初回からの仮説の確からしさが上がったのかと思います。


次にショタのR18をみていきましょう。まず現在1位になっているおねショタが2010年ごろから右肩上がりになっています。2010年当時はほぼなかったのに今では1位です。もう少し古い概念だと思っていましたが、ショタ文化はもともとBLアンソロジーの系譜を引いていると考えれば妥当ですかね。

ショタR18における男の娘も2010年から増加して、アナルタグの増減も大体それにそろっています。先ほどの男の娘R18で確認した傾向と2010年ジャンプの傾向一致しています。一方で近年ではショタR18における男の娘の割合は下がっています。なので、こちらでも2010年は男の娘と文化していなかったのでジャンプがみられたが、それ以降男の娘の割合下がっていき、ショタと男の娘の棲み分けが進んだとわかります。

またショタは最初はロリが性行為相手だったことが窺えます。これは多分、純愛ものだったんですね。


最後に全年齢について言及しておくと、こちらではR18と異なり、男の娘とショタが分離していません。前回のLDAでも全年齢では男の娘とショタの分布が似ていましたし、読み手がそこまで棲み分けを求めてないのかもしれないです。ギャグや日常系だと攻め受けの概念が導入されないでしょうし。

議論

以下の議論は主にwikipediaのwikiページを参考にしています。

ちなみに男の娘のWikiページはアカデミックペーパーとしても堪えられるほどの完成度だと思います。

2010年ジャンプを深く見ていきましょう。これは吉本(2015)とも合致しています。

上述Wikipediaより引用
(最終閲覧日:2024年4月10日)

記事件数のデータと3次元においては対応していることがわかります。2次元も数は少ないですが、そもそも記事があること自体、有意であると思います。

ただ2010年にジャンプするにはそこまでにブームの基盤が整えられている必要があります。そこで、そうした構造面と実際のブーム内容面に分けて整理してみましょう。

構造面

・2007年:Pixiv
・2008年:Twitter(日本語版)
これによって作品投稿の基盤が整う、需要が可視化される
・2007年:『オトコのコHEAVEN』の創刊
・2009年:『女装少年アンソロジー』の創刊
・2009年:『オトコノコ倶楽部』の創刊(3次元)
・2010年:『わぁい!』の創刊

内容面
2007年:木下秀吉(『バカとテストと召喚獣(バカテス)』)
・2007年:白姫彼方(『おと×まほ』)
2009年:秋月涼(『THE IDOLM@STER Dearly Stars』の主人公の1人)
・2009年:藍川絆(『プラナス・ガール』)
・2009年:相川歩(『これはゾンビですか?』)
・2009年:ハス太(『這いよれ! ニャル子さん』)
・2009年:漆原るか(『STEINS;GATE』)*「だが、男だ」で有名」
・2011年:戸塚彩加(『やはり俺の青春ラブコメはまちがっている。』)
・2011年:不二咲千尋(『ダンガンロンパ』)
・2012年:水沢夢(『俺、ツインテールになります。』)

こうしてみると2010年ジャンプは、それ以前に発表媒体となるソーシャルメディアおよび雑誌が生まれたこと、同人誌の題材となる男の娘キャラの増加が背景にあったのではないかと思います。


今後

今回、特に気になったのは2010年の男の娘ジャンプとショタと男の娘の棲み分けの開始です。そのなかでも2010年の男の娘ジャンプを細かくディスカッションで見ました。また、ショタR18初期のロリの割合の高さも気になりました。ここをもう少し質的に見れたらなと思います。時間があれば、漫画やCG集といった媒体の違いや値段との関係も見たいと思います。

この記事が気に入ったらサポートをしてみませんか?