返回
让朋友“久违”:基于LDA主题分析的《老友记》情景喜剧建模
人工智能
2023-11-20 08:40:43
- 项目背景
《老友记》是美国经典情景喜剧, 由大卫·克莱恩和玛塔·卡芙曼创作, 并由六位主要演员主演, 讲述了六个好友在纽约市的生活故事。该剧集于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 模型可以有效地从文本数据中提取主题, 并揭示文本数据的潜在结构。研究结果还表明, 《老友记》情景喜剧是一部具有丰富情节和角色特点的经典剧集, 值得深入研究。