《庆余年2》除了主角表演经常,每个配角小人物也很出彩。那到底有哪些小人物呢?

在deepseek中输入提示词:

你是一个Python编程专家,要写一个Python脚本,具体步骤如下:

读取文档:"D:\qyn\庆余年第二季剧情.docx";

使用jieba进行中文分词,

遍历分词结果,筛选出标签为'nr'的词语(这些就是人名),打印出来;

统计每个人名在文档中出现的次数,打印出来;

筛选出出现次数大于10的人名,用matplotlib绘制一个水平柱状图:x轴为人名,y轴为人名出现次数;

x轴上的人名要按照出现次数,从小到大排列;

设置matplotlib默认字体为'SimHei',文件路径为:C:\Windows\Fonts\simhei.ttf

注意:每一步都要输出信息到屏幕上

源代码:

import docx

import jieba

import jieba.posseg as pseg

import collections

import matplotlib.pyplot as plt

from matplotlib.font_manager import FontProperties

设置matplotlib默认字体

font_path = r"C:\Windows\Fonts\simhei.ttf" # SimHei字体文件路径

font_prop = FontProperties(fname=font_path)

plt.rcParams['font.sans-serif'] = font_prop.get_name()

plt.rcParams['axes.unicode_minus'] = False

读取文档

doc_path = r"D:\qyn\庆余年第二季剧情.docx"

doc = docx.Document(doc_path)

使用jieba进行中文分词,并提取人名

text = ' '.join([para.text for para in doc.paragraphs])

words = pseg.cut(text)

person_names = [word for word, flag in words if flag == 'nr']

输出所有的人名

print("所有的人名:")

print(person_names)

统计每个人名在文档中出现的次数,并打印出来

name_counts = collections.Counter(person_names)

print("每个人名出现的次数:")

print(name_counts)

筛选出出现次数大于10的人名

filtered_names = {name: count for name, count in name_counts.items() if count > 10}

按照出现次数对filtered_names进行排序

sorted_filtered_names = dict(sorted(filtered_names.items(), key=lambda item: item[1]))

使用matplotlib绘制一个水平柱状图,x轴为人名,y轴为人名出现次数

names_list = list(sorted_filtered_names.keys())

counts_list = list(sorted_filtered_names.values())

创建图表并设置大小

plt.figure(figsize=(10, len(names_list) // 3))

绘制水平柱状图

plt.barh(range(len(names_list)), counts_list, color='skyblue', tick_label=names_list)

设置图表标题和轴标签

plt.title('出现次数大于10的人名统计')

plt.xlabel('人名出现次数')

plt.ylabel('人名')

显示图表

plt.tight_layout()

plt.show()

程序运行,结果如上,可见,除了主角'范闲'、 '李承泽'、'陈萍萍'、'林婉儿'、 '范思辙'、 '林若甫'、'王启年'、'李承乾等这些,还有众多小人物:'叶灵儿': 49, '赖名成': 48, '言冰云': 46, '杨万里': 43, '郭铮': 40, ', '邓子越': 37, '李成儒': 35, '谢必安': 34, '明青达': 33, '柳如玉': 32, '袁梦': 27, '贺宗纬': 27, '老太太': '李承儒': 23, '袁宏道': 21, '李太医': 20, '桑文': 19, ''林珙': 18, '明家': 17, '洪竹': 16, '侯季常': 15, '郭保坤': 12, '费介': 12, , '秦恒': 10, '宜贵嫔': 10, '言若海':, '叶重': 10, '公子哥': 9, '王夫人': '肖恩': 8, '范闲才': 8, '向庆帝': 8, '郭保': 6, '成佳林':': '辛其物':

很多出场次数很少的小人物,比如桑文、辛其物、洪竹,人物塑造鲜明,给人印象深刻。