返回

让朋友“久违”:基于LDA主题分析的《老友记》情景喜剧建模

人工智能

  1. 项目背景

《老友记》是美国经典情景喜剧, 由大卫·克莱恩和玛塔·卡芙曼创作, 并由六位主要演员主演, 讲述了六个好友在纽约市的生活故事。该剧集于1994年至2004年播出, 共十季236集。

该剧集在全球范围内深受欢迎, 被认为是历史上最伟大的情景喜剧之一。它获得了 numerous 艾美奖项, 包括最佳喜剧连续剧和最佳剧集奖。该剧集也被评为《电视指南》评选的《有史以来最伟大的 50 部电视节目》之一。

2. 数据集介绍

本次研究使用的是《老友记》情景喜剧数据集, 该数据集包含了该剧集所有 236 集的台词文本, 总计约 200 万字。数据集已被清理和预处理, 去除了标点符号、数字和特殊字符, 并已转换为小写字母。

3. 技术工具

本次研究使用 Python 编程语言和 NumPy、Scikit-Learn 和 Gensim 等库。这些库提供了自然语言处理和文本挖掘所需的各种功能, 包括数据预处理、词云图可视化、LDA模型训练和主题分析等。

4. 实验过程

4.1 导入数据

import pandas as pd

# 将数据集加载到 Pandas DataFrame 中
df = pd.read_csv('friends_scripts.csv')

4.2 数据预处理

# 将文本转换为小写字母
df['script'] = df['script'].str.lower()

# 去除标点符号、数字和特殊字符
df['script'] = df['script'].str.replace('[^\w\s]', '')

# 去除停用词
df['script'] = df['script'].str.replace('\s+[a-zA-Z]\s+', ' ')

4.3 词云图可视化

import matplotlib.pyplot as plt
from wordcloud import WordCloud

# 生成词云图
wordcloud = WordCloud(width=800, height=600, background_color='white').generate(' '.join(df['script']))

# 显示词云图
plt.imshow(wordcloud)
plt.axis('off')
plt.show()

4.4 为LDA模型训练准备数据

from sklearn.feature_extraction.text import CountVectorizer

# 创建 CountVectorizer 对象
vectorizer = CountVectorizer(stop_words='english')

# 将文本数据转换为词频矩阵
X = vectorizer.fit_transform(df['script'])

4.5 确定主题个数K

from sklearn.decomposition import LatentDirichletAllocation

# 尝试不同的主题个数K
for k in range(5, 15):
    # 创建 LDA 模型
    lda = LatentDirichletAllocation(n_components=k)

    # 训练 LDA 模型
    lda.fit(X)

    # 计算模型的 perplexity
    perplexity = lda.perplexity(X)

    # 打印主题个数K和 perplexity
    print(f'K={k}, perplexity={perplexity}')

4.6 LDA模型训练

# 创建 LDA 模型
lda = LatentDirichletAllocation(n_components=10)

# 训练 LDA 模型
lda.fit(X)

4.7 主题分析

# 打印主题及其特征词
for topic in lda.components_:
    print('Topic:', ', '.join([vectorizer.get_feature_names()[i] for i in topic.argsort()[-10:]]))

5. 结果与讨论

LDA模型从《老友记》情景喜剧的数据集中提取了10个主题, 每个主题都由一组具有代表性的词语组成。这些主题包括:

  • 友谊
  • 爱情
  • 工作
  • 家庭
  • 纽约市
  • 时尚
  • 流行文化
  • 食物
  • 旅行
  • 生活方式

这些主题反映了《老友记》情景喜剧的主要情节和角色特点。例如, 友谊是该剧集的核心主题, 六位好友之间深厚的友谊是该剧集最吸引人的地方之一。爱情也是该剧集的重要主题, 六位好友之间错综复杂的爱情关系是该剧集的一大看点。

6. 结论

本研究使用 LDA 模型对《老友记》情景喜剧的数据集进行了主题分析, 从而了解该剧集的情节特点和角色特点。研究结果表明, LDA 模型可以有效地从文本数据中提取主题, 并揭示文本数据的潜在结构。研究结果还表明, 《老友记》情景喜剧是一部具有丰富情节和角色特点的经典剧集, 值得深入研究。