Porn Data Anaylize — TS伪娘 分类数据浅析

所谓“伪娘”,即通过女装、化妆等手法让外人认为是女性的男性,我们通常可以在各地的漫展上看到相当数量的“伪娘”,这也是二次元文化中的萌属性之一。
而“药娘”则不同,简单来说就是心理性别为女,生理性别为男的跨性别者,他们通常是依靠激素药物改变内分泌,从而让自己身体特征逐渐接近女性。这个群体的人数非常稀少且又特殊,直至去年(2016年?根据参考链接文章编辑时间推测。)才在网络上出现相关讨论,但目前并没有引起社会的广泛关注。

'''
特殊分类视频信息分析 TS伪娘
http://www.h4ck.org.cn
by obaby
obaby@mars
email:root@obaby.org.cn
date: 2020.09.14
'''
from pyspark.sql.functions import col
import altair as alt
import pandas as pd
from matplotlib import pyplot as plt
%matplotlib inline
csv = spark.read.option("header",True).csv("hdfs://localhost:9000/data3/porn_data_movie.csv")
csv.printSchema()
root
 |-- id: string (nullable = true)
 |-- create: string (nullable = true)
 |-- update: string (nullable = true)
 |-- name: string (nullable = true)
 |-- describe: string (nullable = true)
 |-- image: string (nullable = true)
 |-- thumb: string (nullable = true)
 |-- thumb_raw: string (nullable = true)
 |-- preview: string (nullable = true)
 |-- video_link1: string (nullable = true)
 |-- video_link2: string (nullable = true)
 |-- video_link3: string (nullable = true)
 |-- video_link4: string (nullable = true)
 |-- mp4: string (nullable = true)
 |-- m3u8: string (nullable = true)
 |-- source_id: string (nullable = true)
 |-- publish_time: string (nullable = true)
 |-- play_count: string (nullable = true)
 |-- good_count: string (nullable = true)
 |-- bad_count: string (nullable = true)
 |-- link_count: string (nullable = true)
 |-- comment_count: string (nullable = true)
 |-- thunder_url: string (nullable = true)
 |-- designation: string (nullable = true)
 |-- category_id: string (nullable = true)
 |-- porn_site_id: string (nullable = true)
 |-- uploader_id: string (nullable = true)
 |-- producer: string (nullable = true)
csv.select('name', 'describe', 'category_id').show()
+------------------------+------------------------+-----------+
|                    name|                describe|category_id|
+------------------------+------------------------+-----------+
|    美女学生考试时被中出|                    null|          1|
|      无套中出内射(上)|            无套中出内射|          1|
|      无套中出内射(下)|            无套中出内射|          1|
|                极品嫩妹|                    null|          1|
|                骚妹妹 7|                    null|          1|
|漂亮美女完美身材甜美声音|漂亮美女完美身材甜美声音|          1|
|          jk捆绑萝莉束缚|                    null|          1|
|            最纯萝莉性爱|                    null|          1|
|          整容脸制服美女|                    null|          1|
|             星 调教萝莉|                    null|          1|
|        大一学生寝室自慰|                    null|          1|
|    超性感美女给你打飞机|                    null|          1|
|      超可爱萝莉下海资源|                    null|          1|
|      迷倒女儿然后慢慢操|                    null|          1|
|   精灵做爱高潮–影视剪辑|                    null|          1|
|        小萝莉被插到大叫|                    null|          1|
|    睡醒和白嫩女友来一发|                    null|          1|
|  双马尾萝莉甜美自慰诱惑|                    null|          1|
|        调教双马尾小萝莉|                    null|          1|
|    黑丝小萝莉最喜欢玩具|                    null|          1|
+------------------------+------------------------+-----------+
only showing top 20 rows
# 分类信息读取 
category_csv = spark.read.option("header",True).csv("hdfs://localhost:9000/data3/porn_data_category.csv")
category_csv.printSchema()
root
 |-- id: string (nullable = true)
 |-- create: string (nullable = true)
 |-- update: string (nullable = true)
 |-- name: string (nullable = true)
 |-- key: string (nullable = true)
 |-- describe: string (nullable = true)
 |-- image: string (nullable = true)
movie_csv = csv.withColumnRenamed('name','movie_name')
movie_csv.select('movie_name', 'category_id', 'id').show()
+------------------------+-----------+---+
|              movie_name|category_id| id|
+------------------------+-----------+---+
|    美女学生考试时被中出|          1|  1|
|      无套中出内射(上)|          1|  2|
|      无套中出内射(下)|          1|  3|
|                极品嫩妹|          1|  4|
|                骚妹妹 7|          1|  5|
|漂亮美女完美身材甜美声音|          1|  6|
|          jk捆绑萝莉束缚|          1|  7|
|            最纯萝莉性爱|          1|  8|
|          整容脸制服美女|          1|  9|
|             星 调教萝莉|          1| 10|
|        大一学生寝室自慰|          1| 11|
|    超性感美女给你打飞机|          1| 12|
|      超可爱萝莉下海资源|          1| 13|
|      迷倒女儿然后慢慢操|          1| 14|
|   精灵做爱高潮–影视剪辑|          1| 15|
|        小萝莉被插到大叫|          1| 16|
|    睡醒和白嫩女友来一发|          1| 17|
|  双马尾萝莉甜美自慰诱惑|          1| 18|
|        调教双马尾小萝莉|          1| 19|
|    黑丝小萝莉最喜欢玩具|          1| 20|
+------------------------+-----------+---+
only showing top 20 rows
movie_cat_rdd = movie_csv.select('movie_name','category_id').join(category_csv, movie_csv.category_id == category_csv.id, "inner")
movie_cat_rdd.select('movie_name', 'name', 'id').show()
+------------------------+------+---+
|              movie_name|  name| id|
+------------------------+------+---+
|    美女学生考试时被中出|萝莉系|  1|
|      无套中出内射(上)|萝莉系|  1|
|      无套中出内射(下)|萝莉系|  1|
|                极品嫩妹|萝莉系|  1|
|                骚妹妹 7|萝莉系|  1|
|漂亮美女完美身材甜美声音|萝莉系|  1|
|          jk捆绑萝莉束缚|萝莉系|  1|
|            最纯萝莉性爱|萝莉系|  1|
|          整容脸制服美女|萝莉系|  1|
|             星 调教萝莉|萝莉系|  1|
|        大一学生寝室自慰|萝莉系|  1|
|    超性感美女给你打飞机|萝莉系|  1|
|      超可爱萝莉下海资源|萝莉系|  1|
|      迷倒女儿然后慢慢操|萝莉系|  1|
|   精灵做爱高潮–影视剪辑|萝莉系|  1|
|        小萝莉被插到大叫|萝莉系|  1|
|    睡醒和白嫩女友来一发|萝莉系|  1|
|  双马尾萝莉甜美自慰诱惑|萝莉系|  1|
|        调教双马尾小萝莉|萝莉系|  1|
|    黑丝小萝莉最喜欢玩具|萝莉系|  1|
+------------------------+------+---+
only showing top 20 rows
import jieba.posseg as psg
 
def get_person_name_from_line(line):
    words = psg.cut(str(line))
    l =[]
    for x in words:
        if x.flag =='nr':
            l.append(x.word)
        # print(x.word, x.flag)
    return l
# 由于数据来自于不同的网站,所以分类名称可能有所区别,通过筛选筛选出所有的TS分类。
category_csv.filter(col('name').contains('人妖')).show()
+---+--------------------+--------------------+--------+------+--------+--------------------+
| id|              create|              update|    name|   key|describe|               image|
+---+--------------------+--------------------+--------+------+--------+--------------------+
| 26|7/5/2020 08:12:54...|14/9/2020 00:06:3...|    人妖|renyao|    null|https://9uu88.com...|
|113|11/9/2020 07:14:5...|11/9/2020 07:56:5...|人妖视频|    ry|    null|                null|
+---+--------------------+--------------------+--------+------+--------+--------------------+
name_rdd = movie_cat_rdd.filter(col('category_id').isin({'26', '113'}) ).select('movie_name').rdd
name_rdd.take(10)
[Row(movie_name='加勒比女海盗2'),
 Row(movie_name='小伪娘爱自慰'),
 Row(movie_name='惠奈酱姐妹sm'),
 Row(movie_name='ts张思妮走廊大胆露出'),
 Row(movie_name='两个假屌女孩'),
 Row(movie_name='大水球奶加奶油大喷枪'),
 Row(movie_name='双性人互爱'),
 Row(movie_name='人妖和我一起3p美女'),
 Row(movie_name='好美的人妖重口味的福利'),
 Row(movie_name='赵恩静')]
name_word_rdd = name_rdd.flatMap(get_person_name_from_line)
name_word_rdd.take(20)
['惠奈',
 '张思妮',
 '美的',
 '赵恩静',
 '思琪',
 '思琪',
 '夏若熙',
 '惠奈',
 '美的',
 '赵恩静',
 '美的',
 '惠奈',
 '金克丝',
 '脫光才',
 '美瑶',
 '帅哥',
 '小帅哥',
 '美的',
 '赵恩静',
 '美的']
# map reduce 进行词频统计
name_counts_rdd = name_word_rdd.map(lambda x:(x,1)).reduceByKey(lambda x,y:x+y)
exclude_words = ['高潮', '爽', '美的', '帅哥', '清秀', 
                 '高清', '後','黑丝', '太猛','老公', '啊啊啊', '贞操']
name_counts_rdd =name_counts_rdd.filter(lambda x : x[0] not in exclude_words)
print('姓名统计一共:', str(name_counts_rdd.count()))
name_counts_rdd.sortBy(lambda a: a[1],ascending=False).collect()[:20]
[('小乔', 36),
 ('张思妮', 34),
 ('曦', 31),
 ('宝贝', 27),
 ('雪儿', 26),
 ('王可心', 25),
 ('安德', 23),
 ('小姐姐', 23),
 ('赵恩静', 23),
 ('龚', 22),
 ('惠奈', 17),
 ('刘卡思', 15),
 ('陈雯雯', 15),
 ('静雅', 15),
 ('萌', 14),
 ('雯', 14),
 ('枫', 13),
 ('思瑶', 13),
 ('胡', 13),
 ('金韩雅', 11)]
name_counts_df = name_counts_rdd.toDF().toPandas()
name_counts_df.head()
_1  _2
0   安德  23
1   王可心 25
2   大秀  2
3   乔胖男 1
4   小萝莉 5
# 视频标签数量展示
bars=alt.Chart(name_counts_df).mark_bar().encode(
    x=alt.X('_2', title='视频数量'),
    y=alt.Y('_1', title='TS姓名', sort='-x')
)
text = bars.mark_text(align='left', baseline='middle', dx=3).encode(text='_2')
(bars + text).properties(height=4000, width=800)

movie_cat_rdd.filter(col('movie_name').contains('曦')).select('movie_name').show()
+-------------------------------------+
|                           movie_name|
+-------------------------------------+
|              微博网红巨乳顾灵曦2合集|
|最新极品巨乳女神心妍小公主『李妍曦...|
|        重 磅 福 利 最 新 购 买 秀...|
|           嫩模龙泽美曦宾馆与土豪援交|
|秀人网嫩模龙泽美曦宾馆与土豪援交被...|
|                 微博网红巨乳顾灵曦 1|
|                   微博网红顾灵曦合集|
|在床上爽到叫爸爸!網路瘋傳小模陳曦...|
|               微博网红顾灵曦毒龙口交|
|                       丑曦福利小视频|
|                  主播丑曦6月大秀录制|
|   美女主播丑曦 最新福利小视频露脸...|
|重磅福利万众期待,超美的大学生御姐...|
|                         模特子曦自拍|
|                 微博网红巨乳顾灵曦 1|
|                       微博网红顾灵曦|
|               美妖韩若曦唯美啪啪大秀|
|     美乳高冷野模子曦宾馆扣穴全裸私拍|
|               微博巨乳网红顾灵曦口交|
|      微博网红巨乳顾灵曦baby12月和...|
+-------------------------------------+
only showing top 20 rows

参考链接: https://zhuanlan.zhihu.com/p/25401864

分享文章:

猜你喜欢:

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注