一种基于知识图谱模型的信息检索方法与流程

文档序号:32474837发布日期:2022-12-07 08:37阅读:70来源:国知局
一种基于知识图谱模型的信息检索方法与流程

1.本发明涉及人工智能技术领域,具体涉及到一种基于知识图谱模型的信息检索方法。


背景技术:

2.知识图谱是将实体作为节点(实体是客观存在的事物),将关系作为边的数据结构,其中,关系是描述两个实体之间的联系,比如“同事”、“夫妻”等。已知某个实体和关系,则能从知识图谱中快速检索出相关的另外一个实体。目前的知识图谱在构建的时候,需要人为定义各种关系,过程较为复杂。且多采用聚类算法等对指定数据进行迭代计算,检索出主题,导致计算量较大,进而降低了检索效率,还有一些传统的方法仅通过抽取的方式构建知识地图谱,导致容易出现部分关系丢失的情况,使得查询结果不准确。
3.综上所述,如何克服上述缺陷,是本领域技术人员急需解决的问题。


技术实现要素:

4.本方案针对上文提到的问题和需求,提出一种基于知识图谱模型的信息检索方法,具体由于采取了如下技术方案而能够解决上述技术问题。
5.为实现上述目的,本发明提供如下技术方案:一种基于知识图谱模型的信息检索方法,包括:获取文本知识资料,并基于所述文本知识资料构建语料库;采用分词方法对所述语料库中的每个句子进行分词处理,根据得到的分词结果进行实体词抽取、关系词抽取和停用词抽取;根据抽取的实体词、关系词和停用词数据处理构建四元组子图数据,并将所述四元组子图数据存储至图数据库,完成知识图谱的构建,所述四元组子图数据结构类型为“实体词—关系词—实体词—停用词”;在接收到用户输入的查询请求时,对所述查询请求中的自然语言问句进行分析,得到所述自然语言问句对应的实体词,根据所述自然语言问句对应的实体词和所述知识图谱中的四元组子图数据检索出问题的答案。
6.进一步地,所述基于所述文本知识资料构建语料库包括:对所述文本知识资料进行篇章划分和句子划分;为每个句子分配一个id,采用每个句子构建一个子图数据;记录每个子图数据对应的id的前一个子图数据对应的id和后一个子图数据对应的id,并将记录的id信息和每个句子的内容进行关联存储得到语料库。
7.进一步地,所述根据抽取的实体词、关系词和停用词数据处理构建四元组子图数据之前,所述方法还包括:构建一个修饰关系预测模型,所述修饰关系预测模型用于确定第一实体词和第二实体词之间的修饰关系;
所述修饰关系预测模型的构建步骤如下:构建训练样本集,所述训练样本集包括不同的文本知识资料样本语句及其语句标注信息,所述文本知识资料样本语句为与用户可能会问到的自然语言问句相关的文本信息,所述语句标注信息包括文本中的实体词以及实体词之间的修饰关系标签,若文本中两个实体词之间没有关系词,则用“缺失”进行填充;将训练样本集中的样本语句进行向量化处理,得到对应的样本语句特征向量,将所述样本语句特征向量转化为可以被并行操作的数据集rdd,基于所述数据集rdd,利用朴素贝叶斯分类算法训练得到朴素贝叶斯分类器;获取待处理文本知识资料中的分词结果,并将分词后的待处理文本知识资料中的语句转换为语句向量;将转换后的语句向量输入训练好的朴素贝叶斯分类器,输出与待处理文本知识资料中的语句相对应的标签,根据标签得到第一实体词和第二实体词信息。
8.更进一步地,所述根据抽取的实体词、关系词和停用词数据处理构建四元组子图数据包括:根据抽取的实体词、关系词和停用词数据,将没有修饰关系的第一实体词、关系词和停用词数据构建成序列,若两个第一实体词之间没有关系词,则用“缺失”进行填充;将第二实体词按照修饰关系,连接到所述序列中的第一实体词上,完成一个子图的构建。
9.更进一步地,所述根据抽取的实体词、关系词和停用词数据处理构建四元组子图数据还包括:构建主实体词预测模型,所述主实体词预测模型用于确定每个句子所有第一实体词中的主实体词,所述主实体词为每个句子针对的实体词,所述主实体词预测模型为一关键词抽取模型。
10.更进一步地,将所述主实体词预测模型抽取得到的主实体词与所有含有所述主实体词的句子的id进行关联记录,则得到所述主实体词对应的所有子图的id,并将记录数据存储至图数据库中。
11.更进一步地,所述在接收到用户输入的查询请求时,对所述查询请求中的自然语言问句进行分析,得到所述自然语言问句对应的实体词,根据所述自然语言问句对应的实体词和所述知识图谱中的四元组子图数据检索出问题的答案包括:在接收到用户输入的查询请求时,分析所述查询请求中的自然语言问句,对自然语言问句进行分词处理,抽取对应的实体词、关系词和停用词数据,并将对应的实体词与知识图谱进行关联;根据关联出的实体词和该实体词所有子图数据对应的id,统计知识图谱中各实体词的子图数量,确定包含子图数量最少的实体词;对所述包含子图数量最少的实体词的所有子图进行检索,利用图神经网络给各子图中所有实体词打分,并对打分结果进行排序,输出得分最高的实体词作为问题的答案。
12.更进一步地,所述利用图神经网络给各子图中所有实体词打分,并对打分结果进行排序,输出得分最高的文本数据作为问题的答案包括:获取主实体词对应的所有子图的id,检索到所述包含子图数量最少的实体词对应
的所有子图数据;构建用于答案检索的图神经网络,并根据训练集对所述图神经网络进行训练,得到训练好的图神经网络;获取检索到的各子图数据中所有实体词;将各子图数据中的各实体词分别输入训练好的图神经网络,进行各实体词打分;对所有实体词的打分结果按照分数高低进行排序,输出得分最高的实体词作为问题的答案。
13.从上述的技术方案可以看出,本发明的有益效果是:1、通过知识图谱的自动构建,避免了查阅信息和网页搜索的低效和繁琐;2、利用修饰关系预测模型对实体词类型进行划分,确定修饰实体词和主要实体词,然后根据主实体词预测模型在主要实体词中确定出该句子针对的重要主题词,构建“实体词—关系词—实体词—停用词”类型的四元组子图数据结构的知识图谱,基于该知识图谱再根据提出的问题中的主题词和神经网络对检索到的各相关句子进行筛选,最终得出问题对应的答案,避免了使用固定的规则进行检索,提高了检索答案的精确率。
14.除了上面所描述的目的、特征和优点之外,下文中将结合附图对实施本发明的最优实施例进行更详尽的描述,以便能容易地理解本发明的特征和优点。
附图说明
15.为了更清楚地说明本发明实施例或现有技术中的技术方案,下文将对本发明实施例或现有技术描述中所需要使用的附图作简单地介绍,其中,附图仅仅用于展示本发明的一些实施例,而非将本发明的全部实施例限制于此。
16.图1为本发明中一种基于知识图谱模型的信息检索方法的具体步骤示意图;图2为本实施例中修饰关系预测模型的构建步骤示意图;图3为本实施例中知识图谱构建过程的示意图;图4为本实施例中子图的构建过程的示意图;图5为本实施例中利用知识图谱检索出问题答案的过程示意图;图6为本实施例中图神经网络打分过程示意图。
具体实施方式
17.为了使得本发明的技术方案的目的、技术方案和优点更加清楚,下文中将结合本发明具体实施例的附图,对本发明实施例的技术方案进行清楚、完整地描述。附图中相同的附图标记代表相同的部件。需要说明的是,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于所描述的本发明的实施例,本领域普通技术人员在无需创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
18.在构建知识图谱的时候,目前需要人为定义各种关系,并使用信息抽取等技术得到“左实体”、“关系”、“右实体”这个三元组。但是关系定义的过程较为繁琐复杂,不可能把所有关系都事先人为的定义好,这个缺陷就限制了知识图谱技术的发展。
19.本技术针对解决构建知识图谱时需要事先定义“关系”的痛点,构建图谱时,不再需要各种的无限的强关系(如“夫妻”、“同事”),而是使用有限的弱关系(如“和”、“的”、“是”)进行关联。
20.如图1至图2所示,一种基于知识图谱模型的信息检索方法具体包括以下步骤:步骤step1:获取文本知识资料,并基于所述文本知识资料构建语料库。
21.具体地,所述基于所述文本知识资料构建语料库包括:(1)对所述文本知识资料进行篇章划分和句子划分;(2)为每个句子分配一个id,采用每个句子构建一个子图数据;(3)记录每个子图数据对应的id的前一个子图数据对应的id和后一个子图数据对应的id,并将记录的id信息和每个句子的内容进行关联存储得到语料库。
22.知识文本中的每一句话都会构建一个子图,每个子图分配一个id,需要记录某个图id的前一个图id和后一个图id,这样就能查找到前一句话和后一句话。
23.步骤step2:采用分词方法对所述语料库中的每个句子进行分词处理,根据得到的分词结果进行实体词抽取、关系词抽取和停用词抽取。
24.在本实施例中,可将一句话使用现有的分词技术做分词,并将词分为三种:实体词、关系词、停用词,其中,关系词包括:如“的”、“是”、“不是”、“和”等,它们表示两个实体之间关系的词,关系词不会特别多,所以可以事先构建一个关系词表;停用词包括:如“啊”,“呀”,“了”,同样需要构建停用词表;除了关系词和停用词,其他都是实体词。
25.在根据抽取的实体词、关系词和停用词数据处理构建四元组子图数据之前,所述方法还包括:构建一个修饰关系预测模型,所述修饰关系预测模型用于确定第一实体词和第二实体词之间的修饰关系。
26.如图2所示,所述修饰关系预测模型的构建步骤如下:(1)构建训练样本集,所述训练样本集包括不同的文本知识资料样本语句及其语句标注信息,所述文本知识资料样本语句为与用户可能会问到的自然语言问句相关的文本信息,所述语句标注信息包括文本中的实体词以及实体词之间的修饰关系标签,若文本中两个实体词之间没有关系词,则用“缺失”进行填充;(2)将训练样本集中的样本语句进行向量化处理,得到对应的样本语句特征向量,将所述样本语句特征向量转化为可以被并行操作的数据集rdd,基于所述数据集rdd,利用朴素贝叶斯分类算法训练得到朴素贝叶斯分类器;(3)获取待处理文本知识资料中的分词结果,并将分词后的待处理文本知识资料中的语句转换为语句向量;(4)将转换后的语句向量输入训练好的朴素贝叶斯分类器,输出与待处理文本知识资料中的语句相对应的标签,根据标签得到第一实体词和第二实体词信息,其中,第一实体词为一句话中的主要实体词,第二实体词为修饰第一实体词的修饰实体词。
27.在本实施例中,构建和训练修饰关系预测模型是为了确定各实体词之间的修饰关系,比如:“男a和女b在上海徐汇区婚姻登记处,正式领取了结婚证书”,“上海”修饰“徐家汇”,“正式”修饰“领取”,如表1所示:表1
步骤step3:根据抽取的实体词、关系词和停用词数据处理构建四元组子图数据,并将所述四元组子图数据存储至图数据库,完成知识图谱的构建,所述四元组子图数据结构类型为“实体词—关系词—实体词—停用词”。
28.如图3所示,所述根据抽取的实体词、关系词和停用词数据处理构建四元组子图数据包括:步骤step3.1:根据抽取的实体词、关系词和停用词数据,将没有修饰关系的第一实体词、关系词和停用词数据构建成序列,若两个第一实体词之间没有关系词,则用“缺失”进行填充;步骤step3.2:将第二实体词按照修饰关系,连接到所述序列中的第一实体词上,完成一个子图的构建。
29.在本实施例中,确定好实体词之间的修饰关系后,再将没有修饰关系的实体词,和关系词构建成序列,如:男a [和] 女b [在] 婚姻登记处 [缺失] 领取 [缺失] 结婚证,若两个实体词之间没有关系词,就用一个特殊的关系词来填充,这个关系词叫“缺失”。
[0030]
如图4所示,然后将修饰词“上海”和“正式”等按照修饰关系,连接到序列中的实体上,就完成一个子图的构建。
[0031]
更进一步地,所述根据抽取的实体词、关系词和停用词数据处理构建四元组子图数据还包括:步骤step3.3:构建主实体词预测模型,所述主实体词预测模型用于确定每个句子所有第一实体词中的主实体词,所述主实体词为每个句子针对的实体词,所述主实体词预测模型为一关键词抽取模型。
[0032]
在本实施例中,为了确定一句话主要是针对哪些实体的,需要训练一个“主实体词预测”模型,确定一句话中的主实体词,即这句话针对的实体词。
[0033]
例如:男a、“男a和女b在上海徐汇区婚姻登记处,正式领取了结婚证书”的主实体词是“男a,女b”,因为这句话主要是针对“男a和女b”,而不是针对“上海”或者“结婚证书”。
[0034]
b、“无论怎么说,男c都是男a职业生涯的最佳队友”的主实体词是“男a,男c”。
[0035]
而抽取一句话的主实体词,是标准的信息抽取任务,本实施例中采用的主实体词预测模型包括但不限于bert+crf模型等关键词抽取模型。
[0036]
步骤step3.4:将所述主实体词预测模型抽取得到的主实体词与所有含有所述主
实体词的句子的id进行关联记录,则得到所述主实体词对应的所有子图的id,并将记录数据存储至图数据库中。
[0037]
在本实施例中,将主实体词预测模型抽取出来的主实体词,存入数据库,并记录它所关联的所有子图id,这样,就可在检索某个实体词时,得到它关联的所有子图。
[0038]
例如:使用“男a”作为key去检索,就可以得到以下两句话的子图:男a、“男a和女b在上海徐汇区婚姻登记处,正式领取了结婚证书”的主实体词是“男a,女b”。
[0039]
b、“无论怎么说,男c都是男a职业生涯的最佳队友”。
[0040]
而如果使用“女b”去检索,只能得到第一句话。
[0041]
步骤step4:在接收到用户输入的查询请求时,对所述查询请求中的自然语言问句进行分析,得到所述自然语言问句对应的实体词,根据所述自然语言问句对应的实体词和所述知识图谱中的四元组子图数据检索出问题的答案。
[0042]
如图5所示,具体地,所述在接收到用户输入的查询请求时,对所述查询请求中的自然语言问句进行分析,得到所述自然语言问句对应的实体词,根据所述自然语言问句对应的实体词和所述知识图谱中的四元组子图数据检索出问题的答案包括:步骤step4.1:在接收到用户输入的查询请求时,分析所述查询请求中的自然语言问句,对自然语言问句进行分词处理,抽取对应的实体词、关系词和停用词数据,并将对应的实体词与知识图谱进行关联;步骤step4.2:根据关联出的实体词和该实体词所有子图数据对应的id,统计知识图谱中各实体词的子图数量,确定包含子图数量最少的实体词;步骤step4.3:对所述包含子图数量最少的实体词的所有子图进行检索,利用图神经网络给各子图中所有实体词打分,并对打分结果进行排序,输出得分最高的实体词作为问题的答案。
[0043]
在本实施例中,采用一种简单快速的办法,找到对应语句的关键词。比如,用户检索:“男a在上海的地址”,“上海”和“地址”都会索引出海量的文本子图,但“男a”的相关子图最少,选择“男a”这个词去检测问题的答案会更精准。
[0044]
更进一步地,所述利用图神经网络给各子图中所有实体词打分,并对打分结果进行排序,输出得分最高的文本数据作为问题的答案包括:步骤step4.3.1:获取主实体词对应的所有子图的id,检索到所述包含子图数量最少的实体词对应的所有子图数据;步骤step4.3.2:构建用于答案检索的图神经网络,并根据训练集对所述图神经网络进行训练,得到训练好的图神经网络;步骤step4.3.3:获取检索到的各子图数据中所有实体词;步骤step4.3.4:将各子图数据中的各实体词分别输入训练好的图神经网络,进行各实体词打分;步骤step4.3.5:对所有实体词的打分结果按照分数高低进行排序,输出得分最高的实体词作为问题的答案。
[0045]
在本实施例中,所述图神经网络采用一个分类网络f(x,q,k),对该分类网络行训练,如下:
x是“底图”,即数据库中预先用文本构建的图q是“问题图”,即用户问的某个问题文本转化成的图k是x底图中的某个实体。
[0046]
构建训练集,如下:0=f(“男a和女b在上海结婚”,”男a的爱人是谁”,“上海”)0=f(“男a和女b在上海结婚”,”男a的爱人是谁”,“男a”)0=f(“男a和女b在上海结婚”,”男a的爱人是谁”,“结婚”)1=f(“男a和女b在上海结婚”,”男a的爱人是谁”,“女b”)基于训练集对参数进行调整得到训练好的网络结构,根据训练好的网络结构对用户提问的q所召回的相关x,从x中找到打分最高的k,作为问题的答案。
[0047]
在训练好一个图神经网络后,输入两个子图(底图、问题图)和一个答案实体词,做真和假的二分类的分类打分,则可得到对应的问题答案。
[0048]
例如:底图:“男a和女b在上海徐汇区婚姻登记处,正式领取了结婚证书”;问题图:“男a的老婆是谁”;gnn(底图,问题图,“男a”)=0:男a实体词不是问题图的答案;gnn(底图,问题图,“女b”)=1:女b实体词是问题图的答案。
[0049]
如图6所示,检索问题答案的时候,先找到问题图中主实体词所有关联的所有子图,再按照上述步骤得到问题答案。并根据gnn的打分可得男a的老婆是“女b”,而不是“男c”(因为“女b”的预测分数最高),其中,gnn是图神经网络。
[0050]
本发明设计少量虚拟关系来代替现实世界中的各种复杂关系,比如文本中两个实体词先后出现时就给建立一个“前后关系”;如果两个实体词之间有“的”字就给建立一个“的关系”;如果两个实体词之间有“是”字就给建立一个“是关系”;如果两个实体词之间有“和”字就给建立一个“和关系”。
[0051]
比如:(1)”上海徐家汇”,“上海”是“徐家汇”的修饰,上海到徐家汇就有一个虚拟关系(修饰关系):上海-》徐家汇;(2)”领取结婚证”,“领取”和“结婚证”这两个词没有修饰关系,但前后出现,所以又可以建立一个虚拟关系(先后关系):领取-》结婚证。
[0052]
使用虚的关系边和信息抽取方法,将文本变成一个个子图。此时,其实已经完成了知识图谱的自动构建。其中,需要统计包含某个实体的子图数量,并保证能用一个实体,快速索引出所有包含它的子图。
[0053]
在想要检索某个问题的答案时,比如:男a的老婆是谁,只需要检索问题中包含子图数量最少的那个实体,比如:男a的所有子图,借助图神经网络给子图中所有实体打分,打分最高的那个实体就是需要的答案。
[0054]
本发明采用虚拟关系来代替现实中的复杂关系,实现知识图谱的自动构建。并使用图神经网络,对和问题相关的所有子图中的所有实体打分;打分最高的那个实体就是问题的答案,便捷快速,检索时不再使用固定的规则,而是使用图神经网络的打分,来找到最合适的答案实体。
[0055]
应当说明的是,本发明所述的实施方式仅仅是实现本发明的优选方式,对属于本发明整体构思,而仅仅是显而易见的改动,均应属于本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1