当前位置: 首页 > news >正文

吉林电商网站建设报价什么软件做电影短视频网站

吉林电商网站建设报价,什么软件做电影短视频网站,网站推广系统方案,手机微信app下载用Python分析《三国演义》中的人物关系网 三国演义获取文本文本预处理分词与词频统计引入停用词后进行词频统计构建人物关系网完整代码 三国演义 《三国演义》是中国古代四大名著之一#xff0c;它以东汉末年到晋朝统一之间的历史为背景#xff0c;讲述了魏、蜀、吴三国之间… 用Python分析《三国演义》中的人物关系网 三国演义获取文本文本预处理分词与词频统计引入停用词后进行词频统计构建人物关系网完整代码 三国演义 《三国演义》是中国古代四大名著之一它以东汉末年到晋朝统一之间的历史为背景讲述了魏、蜀、吴三国之间的纷争与英雄们的传奇故事。今天我们将通过Python初步探索《三国演义》的文本处理感受这部古典名著的魅力。 获取文本 我们需要从本地读取《三国演义》的文本文件。 # 读取本地《三国演义》文本文件 with open(三国演义.txt, r, encodingutf-8) as file:sanguo_text file.read() 输出看一下读取的文件内容 print(sanguo_text[:30])输出如下 文本预处理 对文本进行分词前先去除标点符号使用正则库re来进行。 import re# 去除标点符号和特殊字符 sanguo_text re.sub(r[^\w\s], , sanguo_text) sanguo_text re.sub(r\n, , sanguo_text)分词与词频统计 使用jieba库进行中文分词并进行词频统计输出频率最高的10个词。 import jieba from collections import Counter # 使用jieba进行分词 words jieba.lcut(sanguo_text) # 统计词频 word_counts Counter(words)# 输出出现频率最高的10个词 print(word_counts.most_common(10))当前输出如下 [(曰, 7669), (之, 2797), (也, 2232), (吾, 1815), (与, 1722), (将, 1643), (而, 1600), (了, 1397), (有, 1386), (在, 1286)]可以看到现在大多数是一些语气助词。这里我们要引入停用词。 引入停用词后进行词频统计 在文本处理中停用词是指那些在文本分析中没有实际意义的词汇如“的”、“了”、“在”等。在进行词频统计时我们通常会去除这些停用词以便更准确地分析有意义的词汇。 import jieba from collections import Counter # 使用jieba进行分词 words jieba.lcut(sanguo_text)# 读取停用词列表 with open(常用停用词.txt, r, encodingutf-8) as file:stopwords set(file.read().split())# 去除停用词 filtered_words [word for word in words if word not in stopwords]# 统计词频 word_counts Counter(filtered_words) # 输出出现频率最高的10个词 print(word_counts.most_common(10)) 当前输出 [(曹操, 938), (孔明, 809), (玄德, 494), (丞相, 489), (关公, 478), (荆州, 412), (玄德曰, 385), (孔明曰, 382), (张飞, 349), (商议, 343)]我使用的停用词文件 实际上可以根据自己的需求进行调整。 构建人物关系网 注意三国中人物可能有多个称呼比如说刘备也可以用玄德称呼 # 三国演义主要人物及其别名列表扩展版 characters {刘备: [刘备, 玄德, 皇叔],关羽: [关羽, 云长],张飞: [张飞, 翼德],曹操: [曹操, 孟德, 丞相, 曹孟德],孙权: [孙权, 仲谋],诸葛亮: [诸葛亮, 孔明, 卧龙],周瑜: [周瑜, 公瑾],吕布: [吕布, 奉先],貂蝉: [貂蝉],赵云: [赵云, 子龙],黄忠: [黄忠, 汉升],马超: [马超, 孟起],许褚: [许褚, 仲康],典韦: [典韦],司马懿: [司马懿, 仲达],郭嘉: [郭嘉, 奉孝],袁绍: [袁绍, 本初],袁术: [袁术, 公路],孙策: [孙策, 伯符],甘宁: [甘宁, 兴霸],鲁肃: [鲁肃, 子敬],庞统: [庞统, 凤雏],姜维: [姜维, 伯约] }# 创建一个人物关系计数字典 relation_counts defaultdict(int)# 遍历文本统计人物间的关系 for i in range(len(filtered_words) - 1):for name1, aliases1 in characters.items():if filtered_words[i] in aliases1:for name2, aliases2 in characters.items():if filtered_words[i 1] in aliases2 and name1 ! name2:relation_counts[(name1, name2)] 1# 创建网络图 G nx.Graph()# 添加节点 for character in characters.keys():G.add_node(character)# 添加边及权重 for (name1, name2), count in relation_counts.items():G.add_edge(name1, name2, weightcount)# 绘制关系图 plt.figure(figsize(14, 10)) pos nx.spring_layout(G, k1) edges G.edges(dataTrue) weights [edge[2][weight] for edge in edges]# 绘制节点和边 nx.draw(G, pos, with_labelsTrue, node_size2000, node_colorskyblue, font_size10, font_weightbold, widthweights)# 在图中显示边的权重 edge_labels nx.get_edge_attributes(G, weight) nx.draw_networkx_edge_labels(G, pos, edge_labelsedge_labels)plt.title(《三国演义》人物关系网扩展版) plt.show()完整代码 import re import jieba from collections import Counter, defaultdict import networkx as nx import matplotlib.pyplot as plt from pylab import mpl# 设置中文字体确保图表中能显示中文 mpl.rcParams[font.sans-serif] [SimHei]# 读取本地《三国演义》文本文件 with open(三国演义.txt, r, encodingutf-8) as file:sanguo_text file.read()# 去除标点符号和换行符 sanguo_text re.sub(r[^\w\s], , sanguo_text) sanguo_text re.sub(r\n, , sanguo_text)# 使用jieba进行分词 words jieba.lcut(sanguo_text)# 读取停用词列表 with open(常用停用词.txt, r, encodingutf-8) as file:stopwords set(file.read().split())# 去除停用词 filtered_words [word for word in words if word not in stopwords]# 三国演义主要人物及其别名列表扩展版 characters {刘备: [刘备, 玄德, 皇叔],关羽: [关羽, 云长],张飞: [张飞, 翼德],曹操: [曹操, 孟德, 丞相, 曹孟德],孙权: [孙权, 仲谋],诸葛亮: [诸葛亮, 孔明, 卧龙],周瑜: [周瑜, 公瑾],吕布: [吕布, 奉先],貂蝉: [貂蝉],赵云: [赵云, 子龙],黄忠: [黄忠, 汉升],马超: [马超, 孟起],许褚: [许褚, 仲康],典韦: [典韦],司马懿: [司马懿, 仲达],郭嘉: [郭嘉, 奉孝],袁绍: [袁绍, 本初],袁术: [袁术, 公路],孙策: [孙策, 伯符],甘宁: [甘宁, 兴霸],鲁肃: [鲁肃, 子敬],庞统: [庞统, 凤雏],姜维: [姜维, 伯约] }# 创建一个人物关系计数字典 relation_counts defaultdict(int)# 遍历文本统计人物间的关系 for i in range(len(filtered_words) - 1):for name1, aliases1 in characters.items():if filtered_words[i] in aliases1:for name2, aliases2 in characters.items():if filtered_words[i 1] in aliases2 and name1 ! name2:relation_counts[(name1, name2)] 1# 创建网络图 G nx.Graph()# 添加节点 for character in characters.keys():G.add_node(character)# 添加边及权重 for (name1, name2), count in relation_counts.items():G.add_edge(name1, name2, weightcount)# 绘制关系图 plt.figure(figsize(14, 10)) pos nx.spring_layout(G, k1) edges G.edges(dataTrue) weights [edge[2][weight] for edge in edges]# 绘制节点和边 nx.draw(G, pos, with_labelsTrue, node_size2000, node_colorskyblue, font_size10, font_weightbold, widthweights)# 在图中显示边的权重 edge_labels nx.get_edge_attributes(G, weight) nx.draw_networkx_edge_labels(G, pos, edge_labelsedge_labels)plt.title(《三国演义》人物关系网扩展版) plt.show()
http://www.hkea.cn/news/14444016/

相关文章:

  • 怎么给网站做关键词排名怎么做免费网站
  • 网站在线做照片建筑涂料网站设计
  • 网站的横幅怎么做的基础建设工程
  • 有哪些网站是封面型滑块验证wordpress
  • 嘉兴港区建设局网站网站建设需求调研方法
  • 服务器网站80端口打不开云端视差wordpress企业主题破解版
  • 阿里巴巴建设网站首页四川建设网官网住房和城乡厅
  • 怎么分析网站的外链建设情况摄影师网站制作
  • 网站做漏洞扫描费用网站页面设计与实现
  • 咸阳网站建设方案东莞高埗做网站哪个公司好
  • wordpress网站下载北京seo多少钱
  • 有个人做网站的吗wordpress的xss漏洞
  • 任丘网站开发建设怎么选物联网是什么
  • 网站消耗流量视觉品牌网站建设
  • 新开传奇网站发布网站tp5企业网站开发百度云
  • 专业柳州网站建设多少钱做公司的后台网站用什么软件好
  • 英语网站海报手抄报怎么做搜索引擎优化seo什么意思
  • 太阳宫网站建设泰安网络设计公司
  • 档案网站建设的意义沈阳专业网站建设公司排名
  • 做网站法人拍照背景东营新闻联播视频
  • 江门建设建筑网站wordpress文章右边自定义字段
  • 网站建设费缴税腾讯网页游戏平台
  • 网站建设与维护 电子版ug编程培训
  • 站长工具seo综合查询推广建设银行+贷款+查询+网站
  • 荣茂网站建设成都宅天下装饰公司怎么样
  • 做网站服务器是必须购买的吗网站前端改版涉及到的问题
  • 网站开发项目总结范文小程序怎么申请注册费用
  • 网站导读怎么做wordpress visual composer主题
  • 张家港网站建设哪家好龙岩天宫山海拔
  • 网站列表页模板wordpress源码分析