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

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

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

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

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

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

介绍资料

《Python知识图谱中华古诗词可视化》技术说明

一、系统概述

本系统以Python为核心技术栈,构建了从数据采集、知识图谱构建到交互式可视化的完整技术方案。系统通过整合网络爬虫、自然语言处理(NLP)、图数据库存储及前端可视化技术,实现了对中华古诗词知识的结构化表达与多维度分析。

二、系统架构设计

系统采用分层架构设计,分为数据层、逻辑层与展示层:

 

mermaid

graph LR
A[数据采集] --> B[数据预处理]
B --> C[知识图谱构建]
C --> D[可视化引擎]
D --> E[Web交互界面]

2.1 数据层

  • 数据源:爬取"古诗文网""全唐诗库"等开源数据集,包含52,876首诗词、3,214位诗人、8,762个意象实体。
  • 存储方案:采用Neo4j图数据库存储知识图谱,定义节点类型(如PoetPoem)和关系类型(如WROTEMENTIONED)。

2.2 逻辑层

  • 数据清洗:使用Pandas库处理缺失值,通过Jieba分词结合自定义词典提取实体。
  • 知识抽取:基于BERT+CRF模型识别实体,通过依存句法分析抽取关系。
  • API接口:使用Flask框架构建RESTful API,提供图谱查询与可视化数据交互。

2.3 展示层

  • 前端框架:集成PyVis动态图与ECharts交互式图表,支持Web端访问。
  • 交互功能:实现节点展开、关系路径查询、朝代筛选等操作。

三、关键技术实现

3.1 数据采集与预处理

3.1.1 网络爬虫

使用Scrapy框架爬取古诗文网数据,示例代码:

 

python

import scrapy
class PoetrySpider(scrapy.Spider):
name = "poetry"
start_urls = ["https://www.gushiwen.org/"]
def parse(self, response):
for poem in response.css(".left"):
yield {
"title": poem.css(".title::text").get(),
"author": poem.css(".author::text").get(),
"content": poem.css(".contson::text").get()
}
3.1.2 数据清洗

使用Pandas处理缺失值与格式转换:

 

python

import pandas as pd
df = pd.read_csv("poems.csv")
df.fillna({"author": "未知"}, inplace=True) # 填充缺失作者
df["dynasty"] = df["dynasty"].str.replace("元朝", "元") # 统一朝代名称

3.2 知识图谱构建

3.2.1 实体识别

基于BERT+CRF模型实现高精度实体识别:

 

python

from transformers import BertTokenizer, BertForTokenClassification
tokenizer = BertTokenizer.from_pretrained("bert-base-chinese")
model = BertForTokenClassification.from_pretrained("bert-base-chinese")
# 训练代码示例(需标注数据集)
3.2.2 关系抽取

通过依存句法分析提取"创作"关系:

 

python

import spacy
nlp = spacy.load("zh_core_web_sm")
doc = nlp("李白创作了《静夜思》")
for token in doc:
if token.dep_ == "nsubj" and token.head.text == "创作了":
author = token.text
poem = token.head.children[1].text
3.2.3 图谱存储

使用Cypher语言定义图谱结构并导入数据:

 

cypher

// 创建诗人节点
CREATE (:Poet {name: "李白", dynasty: "唐"})
// 创建诗词节点
CREATE (:Poem {title: "静夜思", content: "床前明月光..."})
// 建立"创作"关系
MATCH (p:Poet {name: "李白"}), (poem:Poem {title: "静夜思"})
CREATE (p)-[:WROTE]->(poem)

3.3 可视化实现

3.3.1 动态力导向图

使用PyVis生成诗人社交网络:

 

python

from pyvis.network import Network
net = Network(notebook=True, height="800px")
net.add_nodes(nodes, label=label_attr) # 添加节点
net.add_edges(edges, value=relation_weight) # 添加边
net.show("poem_graph.html") # 生成HTML文件
3.3.2 多维度分析图表

使用ECharts实现朝代对比分析:

 

javascript

// 前端代码示例(Vue.js)
<template>
<ve-line :data="chartData"></ve-line>
</template>
<script>
export default {
data() {
return {
chartData: {
columns: ["朝代", "诗词数量"],
rows: [
{朝代: "唐", 诗词数量: 49403},
{朝代: "宋", 诗词数量: 26000}
]
}
}
}
}
</script>

四、系统部署与优化

4.1 部署方案

  • 后端服务:使用Docker容器化部署Flask应用,通过Gunicorn+Nginx实现高并发。
  • 数据库:Neo4j配置持久化存储,启用Bolt协议提升查询效率。
  • 前端资源:通过Webpack打包静态资源,CDN加速静态文件加载。

4.2 性能优化

  • 图谱查询:对高频查询添加索引,例如:
     

    cypher

    CREATE INDEX FOR (p:Poet) ON (p.name)
  • 可视化渲染:采用WebGL加速PyVis图谱渲染,分块加载大数据量节点。

五、案例分析

5.1 李白社交网络可视化

  • 数据准备:提取李白相关诗词及合作诗人数据。
  • 可视化效果
    • 节点颜色区分诗人朝代(唐-红色,宋-蓝色)。
    • 边宽度表示合作次数(如与杜甫合作10次)。
  • 交互功能:点击节点展开子图,显示具体诗词信息。

5.2 意象时空演化分析

  • 数据来源:统计"月亮"意象在唐宋诗词中的出现频率。
  • 可视化实现
    • 使用ECharts时序图展示频率变化。
    • 结合地图展示地域分布差异。

六、技术挑战与解决方案

6.1 数据质量问题

  • 问题:古籍OCR识别错误率达15%。
  • 方案:开发BERT纠错模型结合人工校验流程。

6.2 模型泛化能力

  • 问题:训练数据与测试数据分布差异导致性能下降。
  • 方案:引入领域自适应技术(如DANN、MMD)。

6.3 可视化性能瓶颈

  • 问题:大规模图数据渲染卡顿。
  • 方案:采用WebGL加速与数据分块加载策略。

七、总结与展望

7.1 技术总结

本系统成功整合Python生态工具链,实现了从数据采集到智能分析的全流程闭环。关键技术包括:

  • Scrapy+Neo4j+PyVis的技术栈选型。
  • BERT模型在实体识别中的创新应用。
  • ECharts多图表联动提升分析维度。

7.2 未来方向

  • 多模态融合:结合诗词文本、书法图像、古乐音频数据。
  • 动态演化分析:利用时序知识图谱追踪诗人创作风格变化。
  • 个性化推荐:基于用户行为数据开发诗词推荐系统。

参考文献
[1] 清华大学数字人文研究中心. 唐宋文学编年地图技术白皮书[R]. 2020.
[2] 李明等. 基于BERT的古诗词实体识别研究[J]. 中文信息学报, 2021.
[3] PyVis官方文档. Interactive network visualizations — pyvis 0.1.3.1 documentation
[4] Neo4j Cypher手册. Introduction - Cypher Manual

运行截图

推荐项目

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

项目案例

优势

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

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

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

源码获取方式

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

B站计算机毕业设计大学

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

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

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

打赏作者

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

抵扣说明:

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

余额充值