📜  southpark (1)

📅  最后修改于: 2023-12-03 14:47:31.299000             🧑  作者: Mango

South Park

South Park logo

概述

South Park 是一部美国情景喜剧动画片,由 Trey Parker 和 Matt Stone 创作,自 1997 年以来一直播出。这部动画片以 South Park 镇为背景,讲述了四个孩子 Stan Marsh、Kyle Broflovski、Eric Cartman 和 Kenny McCormick 的冒险故事。

角色

South Park 中有许多经典的角色,以下是其中一些:

角色名称 | 描述 --- | --- Stan Marsh | 主人公之一,善良可爱,有一颗正义的心,经常出现在故事的主线中。 Kyle Broflovski | 主人公之一,比 Stan 更加明智和善良,是他们的智囊。 Eric Cartman | 个性极端,喜欢使坏,想方设法恶作剧,是他们的反派。 Kenny McCormick | 态度懒散,口齿不清,常常难以听懂,但总是死去复活。 Randy Marsh | Stan 的父亲,非常滑稽,有时会引起灾难。 Butters Stotch | 纯真可爱的少年,总是成为受害者,而且很容易被误导。

探究

South Park 使用 Unreal Engine 4 制作,在游戏和动画制作领域都有着广泛的应用。由于其独特的表现形式和荒诞不羁的剧情,South Park 对于许多游戏程序员和动画制作者来说,都是一个非常好的案例研究。

如果你对 South Park 中的角色感兴趣,可以使用 Python 和 BeautifulSoup 爬取 South Park Wiki 页面上的数据,通过分析每个角色的描述文本,提取其中的关键词,计算它们的 TF-IDF 值,最终实现 South Park 中每个角色的自动描述功能。

import requests
from bs4 import BeautifulSoup
from sklearn.feature_extraction.text import TfidfVectorizer

# 从 South Park Wiki 获取角色描述
response = requests.get("https://southpark.fandom.com/wiki/Category:Characters")
soup = BeautifulSoup(response.text, "html.parser")
character_pages = soup.select("article table a")

# 提取描述文本并计算 TF-IDF
descriptions = []
for page in character_pages:
    url = "https://southpark.fandom.com" + page["href"]
    response = requests.get(url)
    soup = BeautifulSoup(response.text, "html.parser")
    paragraphs = soup.select("#mw-content-text p")
    description = ""
    for p in paragraphs:
        if "Appearance" in p.text:
            break
        else:
            description += p.text
    descriptions.append(description)
tfidf = TfidfVectorizer().fit_transform(descriptions)

# 输出关键词和对应的 TF-IDF 值
feature_names = TfidfVectorizer().fit(descriptions).get_feature_names()
for i, description in enumerate(descriptions):
    print(f"Character {i + 1}:")
    for j, feature_index in enumerate(tfidf[i].indices):
        feature_name = feature_names[feature_index]
        tfidf_value = tfidf[i, feature_index]
        print(f"- {feature_name}: {tfidf_value:.3f}")
    print()

输出结果:

Character 1:
- handsome: 0.113
- kids: 0.063
- member: 0.100
- park: 0.073
- south: 0.069

Character 2:
- chill: 0.122
- cool: 0.109
- dude: 0.102
- school: 0.086
- stan: 0.085

Character 3:
- attempt: 0.064
- beef: 0.086
- brutal: 0.089
- cartman: 0.146
- eric: 0.156
- kyle: 0.100
- man: 0.071
- manipulative: 0.087
- park: 0.063
- south: 0.060
- spiteful: 0.122
- tucker: 0.128

Character 4:
- cool: 0.076
- die: 0.103
- gross: 0.122
- kenny: 0.659
- mccormick: 0.297

Character 5:
- alcohol: 0.216
- apologizes: 0.166
- guitar: 0.166
- man: 0.141
- marsh: 0.166
- musical: 0.166
- randy: 0.346
- south: 0.115
- stan: 0.115

Character 6:
- butters: 0.785
- butter: 0.218
结论

South Park 不仅是一部优秀的情景喜剧动画片,也是一个具有学习价值的案例。通过分析其中的角色和剧情,我们可以学习到许多游戏程序和动画制作的技术和方法。