Theo chân đại ca Cảnh Trần – Data Scientist, phân tích nhiều điều thú vị về ngành JAV

Đọc xong cái tựa, các bạn đừng tưởng rằng mình lọt nhầm vào trang báo lá cải nào nhé! Đây vẫn là blog Tôi Đi Code Dạo, do mình – Hoàng Code Dạo – viết bài về code nha.

Tác giả bài viết:

  • Anh Cảnh Trần – Data Scientist: Data Analysis (Phân tích dữ liệu) và Data Visualization (Trình bày dữ liệu).
  • Hoàng Code Dạo – Blogger: Data Provider (Cung cấp dữ liệu) + Editor (Xào chế lại cho bài nó bựa)

 

Trong bài này, anh Cảnh chia sẻ về quá trình sử dụng Python và các kĩ thuật Data Analysis để phân tích và tìm hiểu dữ liệu về JAV Idol và movies; đồng thời rút ra khá nhiều điều thú vị!

Mặc dù đặt cái tựa giật gân thế thôi, nhưng đây là bài viết hoàn toàn mang tính chất học thuật và technical nhé!

Mọi chuyện bắt đầu vào một ngày đẹp trời nọ…

Khi Data Scientist gặp trùm JAV

Bạn nào hay theo dõi blog (qua series Nhận Diện Idol) cũng biết là mình có một niềm đam mê JAV, lộn, đam mê nghiên cứu văn hóa Nhựt Bổn rất mãnh liệt.

Thế rồi một ngày đẹp trời nọ, mình tìm ra một API của dmm18, (dịch sang tiếng việt là đạp mẹ mèo), website 18+ lớn nhất xứ sở Nhựt Bổn.

Có API thì dại gì không thử, mình thử lần lượt từng API và… lấy được toàn bộ thông tin về JAV Idol lẫn movies trên trang này. Thông tin được cập nhật và format rất rõ ràng, đầy đủ.

Không biết làm gì với đống data này, mình bắt đầu cầu cứu đại ca Cảnh Trần. Hai bên quyết định làm 1 hệ thống recommendation tên JAV Rec – giới thiệu film và idol dựa theo sở thích của bạn.

Hệ thống thì từ từ sẽ có sau. Từ đây đến cuối bài, anh Cảnh sẽ chia sẻ về quá trình phân tích dữ liệu trước nhé!

Data Cleansing – Gạn đục khơi trong 

Phân tích dữ liệu cũng giống như đãi cát tìm vàng vậy. Dữ liệu đưa vào có thể bị thiếu sót, nên ta phải chạy bước cleansing để lọc bỏ, hoặc điền dữ liệu vào những vùng bị thiếu sót này.

Dữ liệu đã có về JAV Idol bao gồm các field: id , japanName , name , birthday , height , bust , hip , waist , hobbyprefectures và imageUrl

Để dễ tính toán, chúng ta tính luôn số lượng phim đã đóng, tính tuổi của JAV Idol luôn.

def _counting_movies(actress_id):
    return len(train_movie[train_movie.actress_id == actress_id])
train_actress['no_movies'] = train_actress['id'].apply(lambda x: _counting_movies(x))
train_actress['birthday'] = pd.to_datetime(train_actress['birthday'])
train_actress['age'] = train_actress['birthday'].apply(lambda x: pd.to_datetime('today').year - x.year)

Dữ liệu cuối cùng sẽ có format như sau:

<class 'pandas.core.frame.DataFrame'>
Int64Index: 3664 entries, 0 to 10156
Data columns (total 12 columns):
id             3664 non-null int64
name           3664 non-null object
bust           3664 non-null int64
waist          3664 non-null int64
hip            3664 non-null int64
birthday       3664 non-null datetime64[ns]
age            3664 non-null int64
hobby          2856 non-null object
prefectures    2712 non-null object
no_movies      3664 non-null int64
no_genres      3664 non-null int64
imageUrl       3664 non-null object
dtypes: datetime64[ns](1), int64(7), object(4)
memory usage: 372.1+ KB

Tổng cộng ta có dữ liệu của khoảng 3664 JAV Idol. Hai field hobbyprefectures thiếu dữ liệu khá nhiều, nhưng vì chúng không quan trọng nên chúng ta có thể bỏ qua.

Dùng EDA (Explanation Data Analysis) sơ bộ – Tìm ra JAV Idol điển hình

Sau khi đã clean dự liệu, chúng ta chạy EDA sơ bộ để xem giá trị max, min, trung bình của các field nhé

Cho bạn nào chưa biết thì cột mean chính là trung bình. Nhìn vào bảng này ta có thể đưa ra một số nhận xét về các JAV Idol:

  • Số đo 3 vòng trung bình lần lượt là: 84.6 – 57.4 – 84.3
  • Tuổi trung bình là 33 tuổi, trẻ nhất là 20, lớn nhất là… 63 (WTF)
  • Trung bình 1 người đóng 25 bộ phim. 75% các diễn viên đóng dưới 24 bộ phim.
  • Số còn lại thì đóng nhiều bá chấy, hàng họ tanh bành, max là tận 1090 bộ

Dùng 2 dòng code ngắn gọn, ta có thể biểu diễn tuổi của các JAV Idol dưới dạng đồ thị

sns.set(color_codes=True)
sns.distplot(df['age']);
Dễ dàng thấy tuổi của JAV Idol được phân bố theo đúng normal distribution

Vếu to vếu nhỏ – Từ dưa hấu đến bức tường

Đọc tới đây, mình đoán được các bạn cũng có thắc mắc như mình ha: Có data rồi, coi thử coi vòng 1 vòng 3 ai to nhất?

Animated GIF - Find & Share on GIPHY

Và không cần chờ lâu, kết quả có ngay đây! Chỉ cần 2 dòng code đơn giản để sort và tìm ra top 5

df = df.sort_values(by="bust", ascending=False)
df.head()

Tất nhiên là ngay sau đó mình phải chịu khó đi kiểm chứng dữ liệu rồi. Có vẻ dữ liệu cũng khá chuẩn nhỉ hihi.

Minami Matsuzaka – size 115

Quả là cái gì to quá cũng không tốt. Mô phật! Con không cần dưa hấu nữa, con về ăn cam đây.

JAV Idol thích làm gì, quê ở đâu?

Tất nhiên, trò hay không chỉ có tới đây. Bạn có nhớ dữ liệu về idol có field hobby (sở thích) chứ? Ta có thể dùng thư viện wordcloud để hiển thị sở thích dựa trên số lượng idol.

wordcloud = WordCloud(
        max_words=200,
        max_font_size=40, 
        scale=3,
        random_state=1 
    ).generate(hobby)

Tất nhiên, với khả năng tiếng Nhật “thần thánh”, chúng ta dễ dàng nhìn thấy những sở thích phổ biến nhất là karaoke (カラオケ), shopping (ショッピング), nấu ăn (料理), bơi (水泳) và piano (ピアノ).

Để ý kĩ các bạn sẽ thấy còn có nhiều bạn sở thích game và cosplay. Đấy, người ta có sở thích lành mạnh chứ không phải abc dê trên dê dưới đâu nha mấy ông thần!

 

Còn 1 field khác khá thú vị tên prefectures, tỉnh thành mà các idol này sinh ra.

Chúng ta dùng thư viện geopy để chuyển tên tỉnh thành tọa độ latitude và longitude là được, không cần dùng google map api.

from geopy.geocoders import Nominatim
import time
geolocator = Nominatim()

# Get latitude and longitude by using city name
def get_location(adress):
    location = geolocator.geocode(adress)
    return location.latitude, location.longitude

# Get lat and lng
prefecture_df['location'] = 1
for index, row in prefecture_df.iterrows():
    count = 0
    while count < 5:
        try:
            prefecture_df.loc[index,'location'] = str(get_location(row['prefectures']))
            count = 6
        except:
            count += 1
    time.sleep(5)

Sau đó, chúng ta dùng folium để hiển thị trên bản đồ

Màu càng sáng nghĩa là số lượng càng nhiều

Nhìn vào bản đồ, ta dễ thấy những “điểm sáng JAV” ở Nhật là các thành phố lớn như Kyoto, Osaka, Hiroshima.

Kết

Các bạn thấy đấy, chỉ cần một ngày theo chân Data Scientist, chúng ta đã tìm ra vô số điều hay ho thú vị về ngành công nghiệp JAV – những thứ không hề có trong sách bào nào!

Ron Burgundy Anchorman GIF - Find & Share on GIPHY

Nếu thấy hay, các bạn nhớ vào xem bài gốc để Clap và Follow anh Cảnh nha: https://medium.com/@canhtran/python-data-analysis-on-japanese-adult-video-jav-dataset-18-62727978477c

 

P/S: Nếu có thắc mắc cần hỏi hay muốn giao lưu livestream trực tiếp với anh Cảnh, các bạn cứ để lại comment nhé! Nếu nhiều người quan tâm thì mình sẽ sắp xếp nha hihi.

20 thoughts on “Theo chân đại ca Cảnh Trần – Data Scientist, phân tích nhiều điều thú vị về ngành JAV”

  1. Mình cũng bắt đầu với nghiên cứu data science (một phần là do các thầy ở trường mình đề nghị mình học), nhưng có vẻ topic này là đỉnh cao của data science =)))

    Liked by 1 person

    1. Trình của anh cảnh thì mình ko cần bàn .
      Nhưng bài viết này nằm ở mức cơ bản, chỉ là 1 chút get dữ liệu và xác suất thống kê, dùng R làm vài dòng code là ra, chứ không đỉnh cao như bạn nói đâu.

      Liked by 1 person

  2. Thank anh cảnh và anh hoàng đã cho mn 1 bài viết hay và thú vị, mong chờ cho 1 article siêu phẩm về algorithm xóa mờ video 😂 dùng NN và source code cho ae mở mang 😛

    Liked by 1 person

  3. Đọc xong bài lại thấy rạo rực trong ng. Hôm sau chuyển chủ đề gì trong thực tế nha bạn

    Like

  4. Not sure. Nhưng hình như DMM hạn chế việc register sử dụng API 😐
    In order to use the web service, you need DMM member registration, DMM affiliate registration, API use registration. Please check the
    terms of service and issue the API ID.
    For details on how to use, please check ” Usage Guide “.

    Like

      1. Kaka đã nhờ đồng môn bên JP register giùm. Nó nhiều rule quá. Với một số services hình như block ngoài JP

        Like

      2. Thật ra có APIs sẽ làm được nhiều thứ hay ho hơn nữa.
        – tự tìm film mới theo filters, và tự download ( illegal )
        – thêm face detection để tự orgranization mớ films
        – filters dĩ nhiên k thể thiếu tìm theo sở thích

        Like

  5. Anh ơi, em đng học về data sc nhưng không có background về kinh tế thì có khó khăn gì không ạ. DS thì nên bắt đầu từ business trước hay lập trình vậy anh

    Like

Leave a comment