图书知识图谱的设计与实现

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

前言

知识图谱,最早起源于Google Knowledge Graph,从最开始的Google搜索,到现在的聊天机器人、推荐系统、智能医疗、大数据风控、证券投资,都有知识图谱的身影。最近导师安排我复现一篇基于知识图谱和NLP的图书问答系统,以下浅浅的说一下这几天所学的内容和碰到的问题。

一、知识图谱是什么?

知识图谱是由 实体节点关系边组成的图的形式,这种图的形式可以将现实中不同类型的事物连接在一起。知识图谱的实体(entity)是节点,边(edge)是两个节点中间的有向连线,代表着实体之间的关系(relation)。知识图谱的基本组成单位是三元组,使用

; 二、图书知识图谱问答系统实现的两大主要模块

1.知识图谱构建模块

构建图书知识图谱,我们主要需要考虑三个方面, 数据获取数据处理,以及 数据存储

最初的想法是去各大图书网站上,通过 爬虫手段爬取相关数据。因为从图书网站爬取获得的数据中包含一些非格式化、杂乱的数据。所以需要对数据获取部分得到的初始数据进行 数据清洗,使其变成格式化数据。并且对获取的这些数据进行分析和设计,抽取实体、关系和属性的知识三元组。最后用 图数据库Neo4j进行存储。
由于笔者才疏学浅,爬虫技术和数据分析和清洗等技术是另外一门手艺,这里我就暂时不考虑这两个方面,而是直接从相关渠道直接下载一些处理好的数据集,并将其导如Neo4j中。

图书知识图谱的设计与实现
上图是Neo4j的界面。由于我只找到了电影方面的相关数据,但是为了体验一下强大的Neo4j的功能,就将电影数据导入里面玩了玩。至于后续图书数据的问题,要是最后还没找到的话,笔者就打算自己人工生产百来个图书信息。

; 2.基于模板方法的问答模块

基于模板方法的问答模块的实现,也需要考虑三个方面,分别是 实体识别文本分类答案获取。具体框架如下:

图书知识图谱的设计与实现
(1)实体识别模块:这个模块是对用户的问句进行实体识别操作,采用Aho-Corasick自动机算法对用户输入的问句匹配图书实体词典中的实体词,图书实体词典即构建知识图谱时数据存储模块导出的图书实体的txt文件,通过实体识别操作即可从用户的问句中获得相关图书实体
(2)文本分类模块:这个模块对用户的问句进行文本分类,也就是对用户输入的问题进行意图识别,即获取用户是要获得某本书的作者,还是某本书的出版日期,或者是某作者写的书等意图。本模块采用可以进行文本分类操作的深度学习模型,通过标注后的数据进行训练,使得模型能够获得意图识别功能。系统从用户问句中获得意图后,将识别到的意图转化为图数据库中存在的关系类型。
(3)答案获取模块:将用户问句从实体识别模块得到的实体,和意图识别模块得到的关系封装成字典,将字典转化为Cypher语句到Neo4j数据库中进行查询,得到实体的名字属性加入到经过提前设置好的回答模板中,从而获得了用户所需的答案。

该问答模块的设计,笔者目前只是浅浅地学习了一下上面的设计流程,还没有进行实际操作。

三、碰到的小问题

在写代码的过程中,因为要导入一个包pandas,由于解释器python3.7没有这个包,所以我就尝试在这里面搜索并下载导入

图书知识图谱的设计与实现
但是接下来它提示error
图书知识图谱的设计与实现
于是我就在终端控制台上尝试用镜像网站导入这个包,最后还是失败了
图书知识图谱的设计与实现
最后一行提示让我更新pip,我照做了,但也没能成功更新
图书知识图谱的设计与实现
我在网上也看到过类似的问题,于是我便按照他们的解决方案操作,令人悲哀的是,依旧失败了,所以我很崩溃,希望有友友们能帮我解决一下。

; 总结

以上就是这几天所学习的内容,经过这几天的学习,对知识图谱也有一定的认识,并且也了解了一下Neo4j的一些操作。

Original: https://blog.csdn.net/qq_56550595/article/details/125529906
Author: 今天又干了些什么呢
Title: 图书知识图谱的设计与实现

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/556135/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球