2

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

 2 years ago
source link: https://www.cnblogs.com/xiaofengzai/p/15763492.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

1|0前台大屏数据可视化

1|1朝代诗集总数-柱状图

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

1717524-20220104091940433-1126302359.png

1|2宋词意象词频统计-词云图

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

1717524-20220104092631160-1848492405.png

1|3 唐朝情感分布-饼状图

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

1717524-20220104093620919-993777463.png

1|4 诗人游历-旅行图

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

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

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

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

1717524-20220104095357490-1817591313.png

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

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

1717524-20220104095621459-679943850.png

1|6 朝代情感-折线图

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

1717524-20220104095746408-826956195.png

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

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

1717524-20220104095946200-1000724006.png

1|8 前端整体数据展示

1717524-20220104100253361-332661123.png

2|0 后端管理

2|1首页

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

1717524-20220104100712044-1507044199.png

 1717524-20220104100730285-512533049.png

 1717524-20220104100745205-768095348.png

 1717524-20220104100757244-1417771622.png

 1717524-20220104100807668-1021618145.png

2|2 诗词浏览

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

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

朝代诗词浏览

1717524-20220104110639154-1736658037.png

1717524-20220104110659114-625311041.png

1717524-20220104110840228-927900918.png

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

1717524-20220104113102414-482860909.png

1717524-20220104113118720-919049313.png

 更多诗人页面浏览

1717524-20220104113434908-228672077.png

 王昌龄诗集

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

2|3 诗人浏览

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

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

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

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

2|4 诗人图谱

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

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

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

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

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

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

 诗人图谱(朋友圈)

诗人的朋友圈

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

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

页面展示:

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

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

不触摸状态:

 触摸状态:

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

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

2|5 诗词鉴赏

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

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

 单句情感分析

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

2|6机器作诗

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

①避免叠词出现:

楼高高高楼   ×

避免叠词产生

②开头词不重复

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

 成果展示:

 藏头七言古诗

2|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=['飞花令']

3|0 总结

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

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

__EOF__

作  者:清风紫雪
出  处:https://www.cnblogs.com/xiaofengzai/p/15763492.html
关于博主:编程路上的小学生,热爱技术,喜欢专研。评论和私信会在第一时间回复。或者直接私信我。
版权声明:署名 - 非商业性使用 - 禁止演绎,协议普通文本 | 协议法律文本
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK