一种基于知识图谱的勘察规范智能问答系统的建立方法

文档序号:7690 发布日期:2021-09-17 浏览:29次 英文

一种基于知识图谱的勘察规范智能问答系统的建立方法

技术领域

本发明属于行业知识图谱问答系统

技术领域

,具体涉及一种基于知识图谱的勘察规范智能问答系统的建立方法。

背景技术

问答系统(Question Answering System,QA System)是信息检索系统的一种高级形式,它能用准确、简洁的自然语言回答用户用自然语言提出的问题。不同的应用需要不同形式的问答系统,其所采用的语料和技术也不尽相同。按照知识领域,可以将问答系统分类为“具体领域”以及“开放领域”。具体领域系统专注于回答特定领域的问题,如医药、体育、政府事务等。开放领域系统则希望不设限问题的内容范围,天文地理无所不问。

知识图谱是结构化的语义知识库,通常以三元组的形式进行标识,用于以符号形式描述物理世界中的概念及其相互关系。以知识图谱为基础构建的问答系统,也称之为KBQA(Knowledge Base Question Answering)是具体领域问答系统的一种。通过给定自然语言问题,通过对问题进行语义理解和解析,进而利用知识图谱进行查询、推理得出答案。与开放领域的问答系统相比,基于知识图谱的问答系统能够储存一个或者多个领域的相关实体,并能基于知识图谱进行推理和演绎,深度回答用户提出的问题。知识图谱的构建过程中需要进行本体建模,其构建形式包括自顶向下和自底向上,对于具体领域的知识库,更多选择自顶向下进行模型的构建。

近年来,各领域内对于KBQA的需求日益增长,基于知识图谱的问答系统已经在各个领域广泛应用,特别是医疗领域,例如申请号CN202011067875.5的专利是关于高血压患者自我综合管理问答领域、申请号CN202010047420.0的专利是关于电子病历问答领域,然而对于建筑规范领域相关的研究和探讨则较少,随着黄土地区建设工程的扩张,在勘察工作中不免出现大量问题需要查阅相关规范,传统需要人为进行手动查阅,带来了较大工作量,不利于勘察工作的进展。

发明内容

本发明的目的是提供一种基于知识图谱的勘察规范智能问答系统的建立方法,解决了现有技术中存在的问答系统人为查找规范效率较低的问题。

本发明所采用的技术方案是,一种基于知识图谱的勘察规范智能问答系统的建立方法,具体按照以下步骤实施:

步骤1、构建ER关系:根据勘察规范设计勘察规范数据,包括实体集合、实体间属性和实体间关系的关系型数据库ER图,并将勘察规范数据采集存储至Excel表中;

步骤2、数据库构建:将步骤1所采集的勘察规范数据结合关系型数据库ER图构建勘察规范关系数据库;

步骤3、本体建模:基于所述步骤2得到的勘察规范关系数据库采用自顶向下的方法构建勘察规范领域本体;

步骤4、创建映射:采用W3C万维网联盟制定的映射标准,使用D2RQ工具根据所述步骤2得到的勘察规范关系数据库数据.sql文件生成mapping.ttl映射文件;

步骤5、用D2RQ工具提供的转换工具dump-rdf将步骤4得到的映射文件转换为RDF格式数据,以“N-TRIPLE”为默认格式进行数据储存;

步骤6、对关系数据库储存和管理:用Jena Fuseki组件通过网络接口导入RDF格式数据,并固化为TDB格式文件,运行fuseki-server.bat,然后退出;

步骤7、规则推理:使用Jena的OWLFBRuleReasoner工具结合步骤3构建的勘察规范领域本体文件实现对步骤6中的RDF格式数据进行知识推理;

步骤8、正则语义解析:使用正则表达式对预设问题进行字符串层面的切分、组合、匹配,从而实现字符串的组合查询,也即问题的输入;

步骤9、Python语言实现问答系统构建:使用Python程序语言实现对RDF格式数据的交互,将对RDF数据检索和推理的结果进行可视化的展示。

本发明的特点还在于,

步骤1具体如下:

步骤1.1、确定相关规范领域及范围;

步骤1.2、整理内容包括规范类型、规范内容和规范细则三部分内容,同时对规范类型与规范内容之间的对应关系、规范内容与规范细则之间的对应关系进行统一;

步骤1.3、在Excel表中建立规范类型数据表、规范内容数据表、规范细则数据表、规范内容与规范类型对应关系数据表和规范细则与规范内容对应关系数据表。

步骤2具体如下:

步骤2.1、打开Navicat Premium 15即开源软件MySQL数据库的可视化操作平台,将Navicat Premium 15与MySQL数据库连接,新建一个空的勘察规范关系数据库;

步骤2.2、将步骤1中构建的规范类型数据表、规范内容数据表、规范细则数据表、规范内容与规范类型对应关系数据表和规范细则与规范内容对应关系数据表导入步骤2.1新建的勘察规范关系数据库中;

步骤2.3、根据步骤2.2导入的关系数据,设置数据之间的字段类型、字段长度及添加主键;并且利用Navicat Premium 15中的索引和外键命令,设置规范内容与规范类型对应关系数据表和规范细则与规范内容对应关系数据表的索引关系,由此勘察规范关系数据库构建完成;

步骤2.4、将步骤2.3构建的勘察规范关系数据库以.sql脚本文件的形式进行保存。

步骤3具体如下:

步骤3.1、确定勘察规范类型、勘察规范内容和勘察规范细则三个实体及属性关系和数据关系,设定属性的类型,同时指定属性的特征以用于后续结合Jena工具进行知识推理,接下来使用开源软件Protégé完成勘察规范领域本体的构建;

步骤3.2、将构建的勘察规范领域本体进行形式化保存,保存时采用RDF/XML描述语言将构建的勘察规范领域本体进行保存。

步骤4具体如下:

步骤4.1、利用第三方开源软件包D2RQ中generat mapping脚本文件调用步骤3得到的勘察规范关系数据库,即.sql文件,通过脚本文件的调用命令生成预定义的映射文件,即mapping.ttl文件;

步骤4.2、依据步骤3构建的勘察规范领域本体文件修改步骤4.1得到的映射文件:

首先给本体的IRI设置前缀,即使用:http://www.kancha.com#criterion表示criterion,其他词汇同理;接下来还需将默认生成的映射词汇修改为本体中的词汇,得到修改后的mapping.ttl映射文件;

步骤4.3、使用脚本命令启动D2R Server对步骤4.2修改后的mapping.ttl映射文件进行校验:首先调用脚本文件运行勘察规范的映射文件,启动成功后,在浏览器通过“http://localhost:2020/”打开交互页面实现数据的访问,核查相关数据的完整性。

步骤7具体如下:

步骤7.1、进入“apache-jena-fuseki-3.17.0”文件夹,运行“fuseki-server.bat”,然后退出,当前目录下自动创建“run”文件夹,将步骤3中得到的勘察规范领域本体文件移入run文件夹下的databases文件夹中,并将该本体文件后缀名由owl改为ttl;

步骤7.2、同样在databases文件夹下配置rules文件,定义推理的规则:rules文件的配置是跟据Jena中的RDFS、OWL和通用规则推理机,依据官方文档中定义的语法规则将所构建的本体实体之间的关系进行形式化和实例化,文件后缀为.ttl;

步骤7.3、在配置好rules文件后,在run文件夹下的configuration目录中配置fuseki_conf.ttl文件用以集合推理引擎,依据Jena官方的推理规则语言分别引用本体.ttl和rules.ttl文件的地址,并进行推理范围的说明,配置好上述文件后,再次启动fuseki-server.bat服务,通过浏览器访问“http://localhost:3030/”,通过查询语句即实现对RDF数据的访问和推理。

步骤8具体如下:

步骤8.1、对输入问题的分词和实体识别:分词和实体识别使用jieba工具来完成,将所涉及到的先关勘察专业词汇作为外部词典;仔使用jieba的时候加载外部词典,从而能解决实体识别的问题。

步骤8.2、所述的正则表达式的具体方法为:将用户查询中的每个词作为对象,该对象具有两个基本属性即词汇和词性,利用开源工具REFO定义匹配规则,当拥有勘察专业词汇的组合出现时,一条规则匹配成功,执行预设的函数,针对每条用户查询,首先利用开源分词工具jieba对用户查询进行分词和词性标注,得到一个对象列表,其次与使用REFO定义的匹配规则逐一匹配;匹配成功,则执行对应的函数。

本发明的有益效果是,一种基于知识图谱的勘察规范智能问答系统的建立方法,1.基于传统建筑行业知识管理效率低下,人工查询规范费时费力,增加冗余成本,该系统提出了一种基于知识图谱勘的勘察规范智能问答系统及其建立方法,通过构建勘察规范的知识图谱并基于实现了一个勘察规范KBQA,为建筑领域提供了具有可拓展性的智能问答服务,从而有助于勘察工作的进展。2.该系统具有一定的推理能力,有助于规范之间的相互联动,通过定义推理规则,知识图谱能够进行知识推理和演绎,从而达到深度回答用户问题的目的,同时提高了用户获取知识的准确性和获取效率。

附图说明

图1是本发明的勘察规范问答系统流程图;

图2是本发明的勘察规范问答系统技术路线图。

具体实施方式

下面结合附图和具体实施方式对本发明进行详细说明。

本发明一种基于知识图谱的勘察规范智能问答系统的建立方法,结合图、图2,具体按照以下步骤实施:

步骤1、构建ER关系:根据勘察规范设计勘察规范数据,包括实体集合、实体间属性和实体间关系的关系型数据库ER图,并将勘察规范数据采集存储至Excel表中;

步骤1具体如下:

步骤1.1、确定相关规范领域及范围;

步骤1.2、通过对勘察报告的整理,整理内容包括规范类型、规范内容和规范细则三部分内容,同时对规范类型与规范内容之间的对应关系、规范内容与规范细则之间的对应关系进行统一;

步骤1.3、在Excel表中建立规范类型数据表、规范内容数据表、规范细则数据表、规范内容与规范类型对应关系数据表和规范细则与规范内容对应关系数据表。

步骤2、数据库构建:将步骤1所采集的勘察规范数据结合关系型数据库ER图构建勘察规范关系数据库;

步骤2具体如下:

步骤2.1、打开Navicat Premium 15即开源软件MySQL数据库的可视化操作平台,将Navicat Premium 15与MySQL数据库连接,新建一个空的勘察规范关系数据库;

步骤2.2、将步骤1中构建的规范类型数据表、规范内容数据表、规范细则数据表、规范内容与规范类型对应关系数据表和规范细则与规范内容对应关系数据表导入步骤2.1新建的勘察规范关系数据库中;

步骤2.3、根据步骤2.2导入的关系数据,设置数据之间的字段类型、字段长度及添加主键;并且利用Navicat Premium 15中的索引和外键命令,设置规范内容与规范类型对应关系数据表和规范细则与规范内容对应关系数据表的索引关系,由此勘察规范关系数据库构建完成;

步骤2.4、将步骤2.3构建的勘察规范关系数据库以.sql脚本文件的形式进行保存。

步骤3、本体建模:基于所述步骤2得到的勘察规范关系数据库采用自顶向下的方法构建勘察规范领域本体;

步骤3具体如下:

步骤3.1、确定勘察规范类型、勘察规范内容和勘察规范细则三个实体及属性关系和数据关系,设定属性的类型,同时指定属性的特征以用于后续结合Jena工具进行知识推理,接下来使用开源软件Protégé完成勘察规范领域本体的构建;

步骤3.2、将构建的勘察规范领域本体进行形式化保存,保存时采用RDF/XML描述语言将构建的勘察规范领域本体进行保存。

步骤4、创建映射:采用W3C万维网联盟制定的映射标准,使用D2RQ工具根据所述步骤2得到的勘察规范关系数据库数据.sql文件生成mapping.ttl映射文件;

步骤4具体如下:

步骤4.1、利用第三方开源软件包D2RQ中generat mapping脚本文件调用步骤3得到的勘察规范关系数据库,即.sql文件,通过脚本文件的调用命令生成预定义的映射文件,即mapping.ttl文件;

步骤4.2、依据步骤3构建的勘察规范领域本体文件修改步骤4.1得到的映射文件:

首先给本体的IRI设置前缀,即使用:http://www.kancha.com#criterion表示criterion,其他词汇同理;接下来还需将默认生成的映射词汇修改为本体中的词汇,得到修改后的mapping.ttl映射文件;

步骤4.3、使用脚本命令启动D2R Server对步骤4.2修改后的mapping.ttl映射文件进行校验:首先调用脚本文件运行勘察规范的映射文件,启动成功后,在浏览器通过“http://localhost:2020/”打开交互页面实现数据的访问,核查相关数据的完整性。

步骤5、用D2RQ工具提供的转换工具dump-rdf将步骤4得到的映射文件转换为RDF格式数据,以“N-TRIPLE”为默认格式进行数据储存;

步骤6、对关系数据库储存和管理:用Jena Fuseki组件通过网络接口导入RDF格式数据,并固化为TDB格式文件,运行fuseki-server.bat,然后退出;

步骤7、规则推理:使用Jena的OWLFBRuleReasoner工具结合步骤3构建的勘察规范领域本体文件实现对步骤6中的RDF格式数据进行知识推理;

步骤7具体如下:

步骤7.1、进入“apache-jena-fuseki-3.17.0”文件夹,运行“fuseki-server.bat”,然后退出,当前目录下自动创建“run”文件夹,将步骤3中得到的勘察规范领域本体文件移入run文件夹下的databases文件夹中,并将该本体文件后缀名由owl改为ttl;

步骤7.2、同样在databases文件夹下配置rules文件,定义推理的规则:rules文件的配置是跟据Jena中的RDFS、OWL和通用规则推理机,依据官方文档中定义的语法规则将所构建的本体实体之间的关系进行形式化和实例化,文件后缀为.ttl;

步骤7.3、在配置好rules文件后,在run文件夹下的configuration目录中配置fuseki_conf.ttl文件用以集合推理引擎,依据Jena官方的推理规则语言分别引用本体.ttl和rules.ttl文件的地址,并进行推理范围的说明,配置好上述文件后,再次启动fuseki-server.bat服务,通过浏览器访问“http://localhost:3030/”,通过查询语句即实现对RDF数据的访问和推理。

步骤8、正则语义解析:使用正则表达式对预设问题进行字符串层面的切分、组合、匹配,从而实现字符串的组合查询,也即问题的输入;

步骤8具体如下:

步骤8.1、对输入问题的分词和实体识别:分词和实体识别使用jieba工具来完成,由于jieba工具对相关专业词汇不能进行准确切分,因此将所涉及到的先关勘察专业词汇作为外部词典;仔使用jieba的时候加载外部词典,从而能解决实体识别的问题。

步骤8.2、所述的正则表达式的具体方法为:将用户查询中的每个词作为对象,该对象具有两个基本属性即词汇和词性,利用开源工具REFO定义匹配规则,当拥有勘察专业词汇的组合出现时,一条规则匹配成功,执行预设的函数,针对每条用户查询,首先利用开源分词工具jieba对用户查询进行分词和词性标注,得到一个对象列表,其次与使用REFO定义的匹配规则逐一匹配;匹配成功,则执行对应的函数。

步骤9、Python语言实现问答系统构建:使用Python程序语言实现对RDF格式数据的交互,将对RDF数据检索和推理的结果进行可视化的展示。

本发明中,以勘察规范中的结构化数据作为基础,通过Protégé自顶向下的构建了勘察规范本体模型,结合MySQL数据库建立数据表之间的外键和索引实现了数据存储,利用D2RQ将数据进行RDF的转换,实现了数据传输;通过在Apache Jena中建立Rule实现知识推理;利用正则语义解析生成SPARQL查询语句进行数据匹配,实现数据查找;通过Python组件实现最终网页展示;本发明能将自然语言转化为计算机,深度回答用户提出的问题,提高返回结果的效率与准确性,有利于促进建筑领域勘察工作的进度和效率。

实施例

以下结合上述技术路线详细说明实施该实例的具体步骤:

1.根据勘察领域规范设计出的ER图包括了规范种类、规范和细则;规范种类表包含了id和姓名;规范表包含了id、名称和具体要求;细则表包含了id、名称和内容。

2.结合设计的ER图,利用Protégé进行本体建模,构建了规范种类、规范和细则3个类;设计了包含等2个关系及细则名称等5个数据属性,导出Turtle Syntam格式本体文件。

3.在MySQL数据库中建立名为“kancha”的数据库;将Excel中的创建的3张数据表导入MySQL中;设计表设置字段类型、长度和数据表主键;创建新表使表之间产生联系,如规范种类表和规范表,添加2个字段,分别为规范种类表中的id及规范种类的id,添加索引和外键,使规范种类表和规范表产生引用的对应关系。

4.通过脚本利用D2RQ中generat mapping的命令调用“kancha”数据库,生成默认的mapping映射文件;打开映射文件脚本,把默认的映射词汇改为我们本体中的词汇即可;通过D2R Server命令即可在网页查看数据。

5.使用D2RQ中的dump-rdf命令将修改后的mapping映射文件转为RDF,格式为N-TRIPLE。

6.创建“tdb”目录存放tdb数据,进入apache-jena-3.5.0”文件夹的bat目录,我们使用“tdbloader.bat”将之前我们的RDF数据以TDB的方式存储;进入“apache-jena-fuseki-3.5.0”文件夹,运行“fuseki-server.bat”,然后退出。

7.程序会为我们在当前目录自动创建“run”文件夹。将我们的本体文件“ontology.owl”移动到“run”文件夹下的“databases”文件夹中,并将“owl”后缀名改为“ttl”。在“run”文件夹下的“configuration”中,我们创建名为“fuseki_conf.ttl”的文本文件,添加脚本;再次运行“fuseki-server.bat”,即可使用浏览器访问(http://localhost:3030/)。在“databases”文件夹下新建一个文本文件“rules.ttl”,添加脚本;定义规则,修改配置文件“fuseki_conf.ttl”,实现推理。

8.根据知识库之间的数据关系制定相应一系列的问题模板,并模拟问题的模式,然后使用正则表达式对问题进行字符串操作,匹配问题中实体的关系,将其输入到查询控制台,构建查询子图;将自然语言转化为计算机语言;在上述数据库中搜索选定答案。

9.使用Python下的包装器SPARQLWrapper编写脚本,向D2RQ endpoint发送查询问题,得到数据查询结果。

10.使用Python中的streamlit包对整个实现过程进行封装,完成交互式的问答系统。

完整详细技术资料下载
上一篇:石墨接头机器人自动装卡簧、装栓机
下一篇:一种模型训练和业务执行的方法及装置

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!