中华古诗词知识图谱之网页设计及实现(完结)

前台大屏数据可视化

朝代诗集总数-柱状图

统计各朝代的诗集总数,进行柱状图展示

 

宋词意象词频统计-词云图

 将收集的宋词,经过分词器,在进行统计后,得出的意象词频结果,再将其展示成为词云图。

 

 唐朝情感分布-饼状图

分析唐朝诗词,进行七种情感分析,统计情感的占比,绘制饼状图展示。

 

 诗人游历-旅行图

定义了三位出名的诗人:李白、白居易、杜甫。

通过之前对诗人生平的解析,解析出对应的事迹。

事迹实体包含:时间,地点,事迹内容。然后地点是古代地名,通过百度搜索爬取其现代地名,做一个古今地名转换,方便之后的高德地图定位。

设置的轨迹路径是从出生地到其他地方的路线图,触摸地点会展现出对应的时间,事件,出发地,终点地。

 

 宋代词牌名热度-横向柱状图

统计宋代的词牌名,进行频度统计,在展示其效果。

 

 朝代情感-折线图

分析每个朝代的诗词,根据七种情感,找出各朝代情感表达最多的,作为该朝代的主题情感。

 

 宋代诗词类别-南丁格尔图

统计带有类别标签的诗词,进行宋代的诗词类别统计,进行相应的展示。

 

 前端整体数据展示

 

 后端管理

首页

首页展示各朝代的诗词统计,诗人统计信息,以及各朝代的部分诗人浏览展示。

 

 

 

 

 

 

 

 

 

 诗词浏览

分为三部分:按照朝代浏览,按照诗人浏览,按照题材浏览

朝代浏览:分为唐宋元明清,五个朝代的诗词浏览。进入每个朝代的诗词浏览,可以看到卡片式的诗词布局展示,分页浏览以及根据诗名模糊查询本朝代的诗词。

朝代诗词浏览

 

分页浏览

模糊搜索

诗人浏览:分成李白、杜甫、白居易、苏轼、更多...。更多这里有个所有诗人的展示,分页展示所有的诗人,点击后进入单独的诗人诗集页面。在诗人诗集页面,会展示相关的诗人的诗集,同样也支持模糊搜索,分页展示。

李白诗集

 

分页浏览

 

 更多诗人页面浏览

 

 王昌龄诗集

题材浏览:五言绝句、七言绝句、五言律诗、七言律诗、词、曲。点击对应的详情页面,会展示和诗词题材相关的诗词,同样支持模糊搜索,分页展示。

 

 

 

 诗人浏览

按照朝代浏览:唐宋元明清

进入单个朝代页面可以浏览该朝代的诗人,一行设置四个诗人位置,左侧诗人头像,右侧诗人简介,下面是诗人的名字以及查看详情的链接跳转。

分页浏览:分页查询展示该朝代的诗人详情

模糊查询:根据诗人的名字,进行模糊查询

 

 诗人图谱

包含:基本介绍,诗人画像,诗人图谱(朋友圈),诗人轨迹,诗人生平,诗人合称

基本介绍

包含诗人的简介,诗人经历,通过数据库展示。之前重新爬取了诗人的经历,将其对应的html代码爬取到数据库中,因此页面展示的时候就会显得规则化一些,不至于太乱。

 

 诗人画像

诗人画像是对诗人个人简介的内容抽取,抽取出诗人的字,号,出生时间,去世时间,所属朝代,游历地点,合称称号,部分作品集。

分页展示诗人的名句与作品集

诗人的名句来源于:寻古诗词网名句

游历地点来源:通过对诗人的个人生平进行分析,提取其中的地点词,作为诗人的旅行地点词。

 

 诗人图谱(朋友圈)

诗人的朋友圈

通过收集诗人列表,在对诗人的个人生平进行人名提取,提取出同一朝代的诗人。

建立诗人的朋友列表,导入neo4j数据库。

页面展示:

通过D3将诗人关系图谱展示出来,展示诗人的直接朋友,再根据诗人的朋友展示其间接朋友,也就是我们常说的(朋友的朋友,不就是你的间接朋友)

改进:不触摸诗人,展示所有诗人关系;触摸到诗人,只展示其直接朋友关系,其他诗人关系不显示。

不触摸状态:

 

 触摸状态:

 

 诗人轨迹

轨迹地点:通过对诗人的个人生平,进行地点提取,通过古今地点对应表,查询现今地点的经纬度,在高德上可进行标记。

然后通过echarts的轨迹图,将作者的轨迹按照时间的顺序进行展示。

 诗词鉴赏

展示的内容:基本介绍、诗人信息、字词解释、情感分析、时空背景

情感分析

通过BILSTM情感分析模型,对单句进行七种细颗粒度的情感分析。然后对整首诗进行情感分析,得出最终的各类情感的占比。

 

 单句情感分析

 

 基本介绍

 

 诗人信息

 

 字词解释

 

 时空背景

创作该诗的前后几年,诗人在何时在哪里做了哪些诗词

 

 

机器作诗

实现给定一个开头词或者四个藏头字,数字5或7代表五言或七言。

改良:

①避免叠词出现:

例如:

楼高高高楼   ×

避免叠词产生

②开头词不重复

避免四句古诗,有相同的开题词,导致古诗不通顺

 

 成果展示:

 

 藏头七言古诗

 

 诗词问答

问答主体

#----------诗人相关问题-------------------------------------------------
        # 诗人的作品
        self.poem_name_qwds=['','作品','诗集','诗词']
        # 诗人的朋友
        self.poemer_friend_qwds=['好友','朋友','知己']
        # 诗人的出生年月
        self.poemer_born_qwds=['出生','生于']
        # 诗人的去世年月
        self.poemer_die_qwds = ['', '去世']
        # 诗人的简介
        self.author_qwds=['简介','介绍']
        # 诗人所属朝代
        self.author_desty_qwds=['朝代','','年代','']
        # 诗人的合称
        self.author_common_name_qwds=['合称','称号']
        # 诗人旅行地点
        self.author_travel_where_qwds=['旅行','游历','游玩','','地点']
        # 诗人的字
        self.author_zi_qwds=['']
        # 诗人的号
        self.author_hao_qwds=['']
        # 诗人的诗集总数
        self.author_poem_sum_qwds=['总数','合计','总共','诗词总数']
# ----------诗词相关问题-------------------------------------------------
        # 诗词的内容
        self.poem_qwds=['内容']
        # 诗词作诗时间
        self.poem_date_qwds=['时间','作诗时间']
        # 诗词的创作背景
        self.poem_back_qwds=['创作背景','背景']
        # 诗词的翻译
        self.poem_trans_qwds=['翻译']
        # 诗词的作者
        self.poem_author_qwds=['作者','诗人']
        # 诗词的朝代
        self.poem_desty_qwds=['朝代','','年代','']
        # 诗词的类别
        self.poem_tag_qwds=['','类别','类型','风格']
        # 诗词的形式
        self.poem_formal_qwds=['形式','题材']
        # 诗词的词牌名
        self.poem_cipaiming_qwds=['词牌名']
        # 诗词的曲牌名
        self.poem_qupaiming_qwds = ['曲牌名']
# ----------类别相关问题-------------------------------------------------
        # 所有诗词类别?
        self.tag_qwds = ['诗词类别']
        # 类别包含哪些诗?
        self.tag_poem_qwds=['','']
# ----------形式相关问题-------------------------------------------------
        # 所有诗词形式?
        self.formal_qwds = ['诗词形式']
        # 形式包含哪些诗?
        self.formal_poem_qwds=['','']
# ----------词牌名问题-----------------------------------------------
        # 所有的词牌名?
        self.cipaiming_qwds = ['词牌名']
        # 词牌名包含哪些诗?
        self.cipaiming_poem_qwds=['','']
# ----------曲牌名问题-----------------------------------------------
        # 类所有曲牌名?
        self.qupaiming_qwds = ['曲牌名']
        # 曲牌名包含哪些诗?
        self.qupaiming_poem_qwds = ['', '']
# ----------朝代问题-----------------------------------------------
        # 所有的朝代?
        self.desty_qwds = ['朝代']
        # 朝代包含哪些诗?
        self.desty_poem_qwds = ['', '']
        # 朝代包含的诗人?
        self.desty_author_qwds=['诗人','']
# ----------诗人合称问题-----------------------------------------------
        # 所有合称
        self.common_name_qwds = ['诗人合称']
        # 诗人合称包含哪些人?
        self.common_name_author_qwds=['','诗人']
# ----------飞花令问题--------------------------------------------------
        # 飞花令的诗句
        self.word_qwds = ['飞花令']
        # 飞花令的诗句
        self.word_poem_qwds=['飞花令']

问答展示

 

 总结

整个项目完结!!总结一下,遇到的困难:分析诗人的事迹,七种情感分析,基于规则模板的诗词问答。

遇到困难,认真分析,逐个攻破,保持热爱

posted @ 2022-01-04 22:19  清风紫雪  阅读(6965)  评论(47编辑  收藏  举报