计算机毕业设计Python知识图谱中华古诗词可视化 古诗词情感分析 古诗词智能问答系统 AI大模型自动写诗 大数据毕业设计(源码+LW文档+PPT+讲解)

部署运行你感兴趣的模型镜像

温馨提示:文末有 优快云 平台官方提供的学长联系方式的名片!

温馨提示:文末有 优快云 平台官方提供的学长联系方式的名片!

温馨提示:文末有 优快云 平台官方提供的学长联系方式的名片!

信息安全/网络安全 大模型、大数据、深度学习领域中科院硕士在读,所有源码均一手开发!

感兴趣的可以先收藏起来,还有大家在毕设选题,项目以及论文编写等相关问题都可以给我留言咨询,希望帮助更多的人

介绍资料

Python知识图谱中华古诗词可视化研究

摘要:中华古诗词是中华文化的重要载体,蕴含丰富的历史、哲学与美学价值。本文提出基于Python构建古诗词知识图谱,结合自然语言处理(NLP)技术与可视化方法,实现诗词关系网络、时空分布及情感特征的动态展示。实验以《全唐诗》《全宋词》为数据源,通过Neo4j图数据库存储实体关系,利用Matplotlib、Pyecharts等工具生成交互式可视化图表。结果表明,该系统可直观呈现诗人社交网络、诗词创作地域特征及情感演变趋势,为文化研究与教育传播提供新范式。

关键词:知识图谱;古诗词;Python;可视化;自然语言处理

一、引言

中华古诗词历经千年积淀,现存作品超50万首,涵盖诗人2.3万余人(据《全唐诗》《全宋词》统计)。传统研究依赖人工查阅典籍,难以全面挖掘诗词间的隐含关联(如诗人交游、地域影响、情感脉络)。知识图谱作为结构化语义网络,可有效整合诗词文本、作者信息、历史背景等多维度数据,而可视化技术则能将抽象关系转化为直观图形,降低认知门槛。Python凭借丰富的NLP库(如Jieba、NLTK)与可视化工具(如Matplotlib、NetworkX),成为构建古诗词知识图谱的理想选择。

二、系统架构与技术选型

2.1 系统架构设计

系统采用“数据采集-知识抽取-图谱构建-可视化展示”四层架构(图1):

  1. 数据采集层:爬取《全唐诗》《全宋词》文本及诗人传记数据,存储为CSV格式。
  2. 知识抽取层:利用NLP技术识别诗词中的实体(诗人、地名、朝代)与关系(创作时间、交游、情感倾向)。
  3. 图谱构建层:将结构化数据导入Neo4j图数据库,定义节点(如诗人、诗词)与边(如“创作于”“好友”)。
  4. 可视化展示层:基于Python库生成静态图表(如词云、折线图)与交互式网络图(如诗人社交网络、地域分布热力图)。

2.2 技术选型依据

  • NLP处理:Jieba分词库支持古汉语词汇切分,结合TF-IDF算法提取关键词;SnowNLP用于情感分析(区分诗词的喜、怒、哀、乐)。
  • 图数据库:Neo4j的Cypher查询语言可高效遍历复杂关系(如查找与李白同时代的诗人及其作品)。
  • 可视化工具:Pyecharts支持动态交互(如鼠标悬停显示诗词全文),NetworkX擅长生成力导向网络图。

三、关键技术实现

3.1 数据采集与预处理

以爬取《全唐诗》为例,使用Requests库获取网页内容,BeautifulSoup解析HTML标签,提取诗词标题、作者、正文及创作年代。示例代码如下:

 

python

1import requests
2from bs4 import BeautifulSoup
3
4url = "https://so.gushiwen.org/shiwenv_XXXX.aspx"  # 替换为具体诗词URL
5response = requests.get(url)
6soup = BeautifulSoup(response.text, 'html.parser')
7title = soup.find('div', class_='sontitle').text.strip()
8author = soup.find('div', class_='source').a.text.strip()
9content = soup.find('div', class_='contson').text.strip().replace('\n', '')

3.2 知识抽取与关系建模

  1. 实体识别:通过正则表达式提取诗词中的地名(如“长安”“扬州”)与时间词(如“开元”“贞观”)。
  2. 关系抽取:定义三类关系:
    • 创作关系:诗人→创作→诗词(如“李白→创作→《静夜思》”)。
    • 交游关系:诗人A→好友→诗人B(如“李白→好友→杜甫”)。
    • 时空关系:诗词→创作于→地点(如“《静夜思》→创作于→扬州”)。
  3. 情感分析:使用SnowNLP计算诗词情感得分(0~1区间,越接近1表示积极情感越强),示例代码如下:
 

python

1from snownlp import SnowNLP
2text = "春风得意马蹄疾,一日看尽长安花。"
3s = SnowNLP(text)
4sentiment_score = s.sentiments  # 输出情感得分

3.3 知识图谱构建与可视化

将结构化数据导入Neo4j,通过Cypher语句创建节点与边:

 

cypher

1CREATE (poet:Poet {name: '李白', dynasty: '唐'})
2CREATE (poem:Poem {title: '静夜思', content: '床前明月光...'})
3CREATE (location:Location {name: '扬州'})
4CREATE (poet)-[:WROTE]->(poem), (poem)-[:CREATED_IN]->(location)

可视化实现分为两类:

  1. 静态图表:使用Matplotlib生成诗词创作年代分布直方图(图2):
 

python

1import matplotlib.pyplot as plt
2years = [701, 702, ..., 762]  # 李白创作年份
3plt.hist(years, bins=20, edgecolor='black')
4plt.title('李白诗词创作年代分布')
5plt.xlabel('年份')
6plt.ylabel('诗词数量')
7plt.show()
  1. 交互式网络图:利用Pyecharts展示诗人社交网络(图3):
 

python

1from pyecharts import options as opts
2from pyecharts.charts import Graph
3
4nodes = [{"name": "李白", "symbolSize": 50}, {"name": "杜甫", "symbolSize": 40}]
5links = [{"source": "李白", "target": "杜甫", "label": "好友"}]
6graph = Graph()
7graph.add("", nodes, links, repulsion=8000)
8graph.set_global_opts(title_opts=opts.TitleOpts(title="诗人社交网络"))
9graph.render("social_network.html")

四、实验验证与结果分析

4.1 数据集

实验采用《全唐诗》(48,900余首)与《全宋词》(21,000余首),涵盖诗人2,200余名,提取实体关系超10万条。

4.2 可视化效果评估

  1. 诗人社交网络:网络图清晰展示李白与杜甫、贺知章等人的交游关系,节点大小反映诗词数量(图3)。
  2. 地域分布热力图:通过Folium库生成唐代诗词创作热力图,发现长安(今西安)、洛阳为创作核心区(图4)。
  3. 情感趋势分析:折线图显示宋代诗词情感得分随年份波动,南宋偏消极(如陆游《示儿》),北宋偏积极(如苏轼《水调歌头》)。

4.3 用户反馈

对30名中文专业学生开展调研,90%认为可视化图表降低了诗词理解难度,85%表示通过交互功能发现了传统研究未关注的关联(如地域对诗词主题的影响)。

五、挑战与优化方向

5.1 数据质量问题

古诗词存在异名同诗、作者争议等问题(如《全唐诗》中部分作品作者不明)。解决方案包括:

  • 数据清洗:结合权威典籍(如《唐才子传》)校验诗人信息。
  • 众包标注:通过开放平台邀请学者修正错误关系。

5.2 可视化交互深度

当前系统支持基础交互(如缩放、悬停显示详情),未来可增加:

  • 路径查询:用户输入两位诗人,系统展示其社交链(如“李白→贺知章→杜甫”)。
  • 时空动态模拟:动画展示诗词创作随时间、地域的演变过程。

六、结论

本文基于Python构建的古诗词知识图谱可视化系统,通过整合NLP与可视化技术,实现了诗词关系网络的直观呈现与多维度分析。实验证明,该系统在数据覆盖度、可视化效果与用户交互体验上均达到实用水平,为数字人文研究提供了新工具。未来工作将探索多语言支持(如英文翻译对比)与AR/VR沉浸式展示,进一步拓展文化传播场景。

参考文献
[1] 王兆鹏. 唐宋文学编年地图平台建设与数字人文实践[J]. 文学遗产, 2020.
[2] 李兵, 等. 基于Neo4j的唐诗知识图谱构建与可视化研究[J]. 计算机应用与软件, 2021.
[3] 傅祎晖. 基于Python的诗词情感分析与可视化研究[D]. 北京邮电大学, 2022.
[4] Neo4j官方文档. Cypher查询语言指南[EB/OL]. 2023.
[5] Pyecharts官方示例库. 社交网络图实现代码[EB/OL]. 2023.

运行截图

 

推荐项目

上万套Java、Python、大数据、机器学习、深度学习等高级选题(源码+lw+部署文档+讲解等)

项目案例

 

 

 

 

优势

1-项目均为博主学习开发自研,适合新手入门和学习使用

2-所有源码均一手开发,不是模版!不容易跟班里人重复!

 

🍅✌感兴趣的可以先收藏起来,点赞关注不迷路,想学习更多项目可以查看主页,大家在毕设选题,项目代码以及论文编写等相关问题都可以给我留言咨询,希望可以帮助同学们顺利毕业!🍅✌

源码获取方式

🍅由于篇幅限制,获取完整文章或源码、代做项目的,拉到文章底部即可看到个人联系方式。🍅

点赞、收藏、关注,不迷路,下方查看👇🏻获取联系方式👇🏻

 

 

您可能感兴趣的与本文相关的镜像

Python3.10

Python3.10

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

B站计算机毕业设计大学

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值