一种知识库及其建立、问答方法及应用装置
技术领域
本发明涉及智能问答领域,具体涉及一种知识库及其建立、问答方法及应用装置。
背景技术
知识库是用于知识管理的一种特殊的数据库,以便于有关领域知识的采集、整理以及提取。因为知识库常被应用于智能问答领域,因此现有的知识库在建库的时候多以问题答案一一对应的方式进行数据存储。
这种知识库的建库方式对于离散的问答对形式时常被使用。但是对于结构化信息,如一个二维的excel表格,表格的每一个行和每一列间可组成一种问题--答案的形式。如果按照常规知识库的办法,对于一个m*n的结构化表格,需要建立m*n个问答对。常规方法建立的知识库存在大量的冗余。不光如此,对于结构化表格的每一个属性项,如果存在相似问题,假设每项的相似问题数量为k,则知识库的问题的个数为(m*k)*(n*k)。知识库的问题数量多,且问题间存在一些相似,在文本相似度匹配时容易出现误匹配。另外,对于增加一个属性项,或者增加一个相似问题,传统的知识库建立方法非常复杂,需要逐一增加问题和答案进行配对。
发明内容
本发明意在提供一种存储空间占用更小的知识库。
本发明中的知识库,包括结构化数据包和非结构化问答包,所述结构化数据包包括结构化表和结构化数据,所述结构化表包括多个主体名、多个属性项和多个单元格;一组主体名和属性项对应一个单元格;所述结构化数据包括对应结构化表存储设置的主体名片段、属性片段和单元片段;每个属性项内设置至少一个属性片段;每个单元格内设置有至少一个单元片段;一个或者多个单元片段形成答案。
本发明知识库的优点在于:通过结构化表存储结构化数据,使原来需要一一对应设置的问题和答案变成用表格形式存储设置,避免了多个问题对应相同答案而答案重复出现的情况,有效节约了答案的存储空间。同时,也减少了在使用时逐个句子对比的时间。本发明中,无论是主体名还是属性项都以片段形式存在,能够通过片段识别先排除一些不相关的选项,使在使用该知识库时更加方便。
此外,属性项中设置的属性片段不止一个,能够使整个结构化表形成多维结构化表,能够使每个单元格的查找都更加精准,使获取作为答案的单元片段更加精准,进而使根据问题得到的答案更加精准,提高整个知识库的准确性。简言之,因为每个属性项中属性片段的增加,使属性项的对比过程中,因为增加了属性片段个数,相当于增加了判断条件,细化了一组属性项和主体名对应单元格的要求,使得出的单元格更加满足要求,提高准确性。
进一步,所述问答包包括问答索引表和问答数据;所述问答索引表包括一一对应设置的问题栏和答案栏;所述问题栏内设置有多个预设问题以及用来表示每个预设问题的多个关键词,所述答案栏对应设置有多个预设答案。
本发明除了结构化数据包外,还通过设置问答包来补充那些无法统计到结构化数据包中的答案。
进一步,所述知识库还包括缺失项回复答案,所述缺失项回复答案包括用户输入问题以及与此相关的所有缺失项。
与用户输入问题相关的所有缺失项,指的是能够与用户输入问题一起从结构化数据包或者问答包中获取答案的所有可以输入的内容,如包含属性片段或者关键词的语义片段。缺失项回复答案指的是用来在知识库无法查找答案时直接反馈的内容。
本发明还提供了一种建立前述知识库的方法,包括以下步骤:
步骤一,建立结构化表;分别设置多组对应设置的主体名、属性项和单元格;
步骤二,按照已经建立的结构化表对应存储设置主体名片段、属性片段和单元片段形成结构化数据;将结构化表中主体名和与之对应的属性项一起形成一个转换组,将转换组内的所有主体名片段和属性片段一起形成转换片段集合;
步骤三,建立问答索引表;一一对应设置问题栏和答案栏;
步骤四,按照已经建立的问题索引表对应存储设置多个预设问题和预设答案形成问答数据,并针对每个预设问题设置包含多个关键词的关键词集合。
通过本方法建立的知识库既包含结构化数据又包含非结构化数据,既有效减小了数据存储空间,又能够弥补仅仅使用结构化数据的不足。通过结构化表的设置,能够规范结构化数据,同时,使在使用知识库的时候,能够通过根据主体名和属性项中主体名片段和属性片段的分别对比,快速找到对应的单元格并获取该单元格中存储的单元片段作为答案进行反馈。
进一步,设置缺失项回复答案,缺失项回复答案包括对比用户输入片段缺失的主体名片段、属性片段或者关键词,在补齐这些主体名片段或者属性片段后能够和用户输入片段一起从结构化表中获取单元片段,在补齐这些关键词后能够和用户输入片段一起从问答索引表中获取预设答案。
通过设置缺失项回复答案,对用户进行引导,使用户能够利用建立形成的知识库找到想要的答案。相比于现有的知识库,简单粗暴地直接回绝用户找不到答案,本发明建立的知识库更加人性化,更有利于引导用户完善输入问题的片段,使用户在知识库中找到需要的答案。
进一步,在步骤二中,在一个主体名内设置一个主体名片段,在一个属性项中设置一个或者多个属性片段。
通过设置多个属性片段,使多个属性片段和一个主体名片段一起才能够确定一个单元格,进而获取单元片段,增加了单元片段获取的准确性。
本发明还提供一种应用前述知识库的应用装置,包括用来供用户进行问题输入的输入模块,用来对输入问题进行识别的识别模块,安装知识库用来对输入问题进行处理并反馈答案的问答模块,以及用来向用户呈现答案的显示模块。
本发明的应用装置能够利用知识库,快速为用户提供答案。
进一步,所述问答模块还设置有堆叠双向lstm神经网络和分类器。
通过堆叠双向lstm神经网将结构化数据和问答数据都变换为能够与输入问题进行对比的形式,通过分类器对比输入问题和知识库中存储主体名和属性项以及关键词集合,使输入问题能够找到对应的单元片段或者预设答案作为答案反馈。
本发明还提供一种应用前述装置的问答方法,包括以下步骤:
步骤一,将用户输入问题分词得到输入词片段;
步骤二,选取包含输入词片段最多的转换片段集合和关键词集合;
步骤三,将选取出来的转换片段集合和关键词集合分别通过堆叠双向lstm神经网络计算得到第一句子向量;同时,将所有输入词片段通过堆叠双向lstm神经网络得到输入句子向量;
步骤四,通过分类器比较输入句子向量与所有第一句子向量,将最接近输入句子向量的第一句子向量作为目标句子向量;
步骤五,若目标句子向量对应的是转换片段集合,则根据结构化表按照该转换片段集合提取对应的单元片段形成答案反馈给用户;若目标句子向量对应的是关键词集合,则根据问答索引表提取对应的预设答案作为答案反馈给用户。
本方法,能够使用户通过向知识库提问快速地获取答案。而且因为先通过片段对比,排出了一些转换片段集合和关键词集合,使最终被对比和计算的对象数量有限,能够节省计算时间,提高知识库反应的速度。
进一步,在步骤二中,若没有转换片段集合或者关键词集合能够包含所有用户输入片段,则将包含部分用户输入片段的转换片段集合或者关键词集合提取出来,将其中未被对比的主体名片段、属性片段或者关键词作为缺失项,通过缺失项回复答案反馈给用户。
当步骤二无法完成,则无法从知识库中反馈单元片段或者预设答案作为答案,此时直接反馈缺失项回复答案,对用户进行引导,使用户补齐对应的缺失项,进而能够通过知识库得到答案。本方法中,将所有可能涉及到的缺失项都呈现到用户面前供其选择,能够帮助用户快速输入缺失项。
附图说明
图1为本发明实施例一中知识库的架构图。
图2为本发明实施例一中知识库应用装置的结构示意图。
图3为本发明实施例一中堆叠双向lstm神经网络的结构示意图。
图4为本发明实施例一中分类器的结构示意图。
具体实施方式
下面通过具体实施方式进一步详细说明:
实施例一
(一)知识库
如图1所示,本实施例中的知识库,包括多个结构化数据包和一个非结构化的问答包。
每个结构化数据包均包括一个结构化表,以及与结构化表对应的结构化数据。每个结构化表均包括名称栏、表头栏和表体,名称栏包括多个主体名,主体名表示一个主体的名称,不同的主体其主体名不同,通过主体名能够用来区分主体。表头栏包括用来表示每个主体不同属性的多个属性项。表体包括多个单元格,每个单元格均与一组主体名和属性项对应,即,每个主体名对应某个属性项能够得到该主体在该属性项要求下的单元格。结构化数据为分别存储在结构化表的名称栏、表头栏和表体中的所有数据内容。本实施例中,主体名、属性项和单元格中的内容均为片段,分别叫做主体名片段、属性片段和单元片段。这些片段均可以是词、词组也可以是句子。
表1
主体/属性 |
属性1 |
... |
属性j |
... |
属性n |
主体1 |
Value11 |
... |
Value1j |
... |
Value1n |
... |
... |
... |
... |
... |
... |
主体i |
Valuei1 |
... |
Valueij |
... |
Valuein |
... |
... |
... |
... |
... |
... |
主体m |
Valuem1 |
... |
Valuemj |
... |
Valuemn |
如表1所示,名称栏中包含有m个主体名,每个主体名中只有一个主体名片段,其主体名片段分别为主体1、……、主体i、……、主体m。每个主体名都对应n个属性项,因为本实施例中的结构化表为二维结构化表,每个属性项中只有一维属性片段,这个一维属性片段可以只是一个属性词、词组或者句子,这些属性项的属性片段分别为属性1、……、属性j、……、属性n。只要与主体名片段和属性片段匹配成功,就能够得到对应的单元格片段。例如,用户输入问题片段与主体1和属性1匹配成功,则用户的输入问题中的这个片段就可以得到单元片段Value11,Value11就是这个问题得到的答案中的一部分内容。
非结构化问答包,包括问答索引表,以及对应问答索引表存储的问答数据。问答数据具体包括预设问题和预设答案。预设问题为一段意思完整的自然语言表达文本。预设答案为可以是一段文本、音乐、图片等用户希望通过问题查询到的对应内容。预设问题和预设答案都是预先存储的。预设问题相比于预设答案,标明了关键词。问答索引表如表2所示。
表2
问题 |
答案 |
Q1(关键词11、…、关键词1j、…、关键词1x) |
A1 |
... |
... |
Qi(关键词i1、…、关键词ij、…、关键词ix) |
Ai |
... |
... |
Qm(关键词m1、…、关键词mj、…、关键词mx) |
Am |
如表2所示,问答索引表包括一一对应设置的预设问题和预设答案,我们将所有预设问题的集合称为问题集合,将所有预设答案的集合称为答案集合。表2中,问题集合中包含有m个预设问题,答案集合中包含有m个预设答案,每个预设问题与每个预设答案一一对应,如Q1对应A1,Qi对应Ai,Qm对应Am。在预设问题中,均包含有用来描述该预设问题,以便与输入问题进行对比的x个关键词,例如,针对预设问题Q1,其具有的关键词分别为关键词11、……、关键词1j、……、关键词1x,通过对比这x个关键词能够判断输入问题与问题Q1是否相同,如果判断相同,则该输入问题对应的答案为Q1对应的预设答案A1。其中,输入问题在与预设问题Q1进行对比的时候,输入问题先被现有的分词算法分词,将分词得到的词与预设问题Q1对应的关键词进行对比。为了方便,我们将一个预设问题对应的所有关键词称为关键词集合。
根据实际情况,不同的预设问题,其设置的关键词的个数可以不同。
(二)知识库的建立
在建立以上知识库的时候,先建立结构化数据包,再建立非结构化问答包,具体采用以下步骤建立:
首先,建立结构化表;建立名称栏、表头栏和表体;名称栏包括多个主体名,表头栏包括多个属性项,表体包括多个单元格。每一组主体名和属性项都对应唯一一个单元格。
具体地,本实施例中,按照表1的结构,建立二维结构化表。通过这个二维结构化表,在已知主体名和属性项时,能够快速查找出对应的单元格。
其次,按照已经建立的结构化表采集结构化数据;将主体名片段写入名称栏的每个主体名中;将属性片段写入到每个属性项中;将单元片段写入到每个单元格中。
在本实施例中,每个主体名中只有一个主体名片段、每个属性项中只有一个属性片段,每个单元格中只有一个单元片段。主体名片段、属性片段和单元片段均是一个语义片段,语义片段既可以是一个词,也可以是一个词组,也可以是一个句子。将名称栏和表头栏的所有片段一起称为转换片段集合。通过转换片段集合,能够快速判断输入问题是否能够从该结构化表中寻找到答案。
初始化转换片段集合为fragment=(主体1,...,主体i,主体m,属性1,...,属性j,...属性n),初始化转换片段集合的总长度为m+n。在进行输入问题对比的时候,最多也只需要对比总长度为m+n个语义片段,相比于现有的需要对比m*n个语义片段,有效节省了对比和计算时间,同时节约了存储空间。
第三,将转换片段集合扩展若干相似问法,形成新的转换片段集合,其总长度保持m+n不变。扩展可以是每个语义片段通过同义词、同义词组、同义句的扩展,例如,将主体1替换为同义词主体01,将属性1替换为同义词属性01,在扩展的时候,可以是转换片段集合中的所有片段都进行扩展替换,也可以是只替换其中某几个片段,这样就能够将目标转换片段集合fragment_k扩展为另外的同样长度的转化片段集合fragment_k_sim_1、fragment_k_sim_2、……、fragment_k_sim_x,将所有的转换片段集合(fragment_k,fragment_k_sim_1……,fragment_k_sim_x)均作为结构化数据存储到知识库中。
第四,按照初始化转换片段集合,建立一维索引;即将根据初始化转换片段集合,将目标转换片段集合fragment_k,与根据fragment_k扩展变换得到的其他转换片段集合如fragment_k_sim_1、fragment_k_sim_2、……、fragment_k_sim_x分别一一建立一维索引。当已知扩展的相似片段时,能够快速找到原片段值。这样,能够在增加语言识别判断能力的同时,提高得到答案的速度。
此时,结构化数据包建立完成,继续建立非结构化问答包。
第五,建立问答索引表,将设置的预设问题和预设答案按照问答索引表一一对应设置。所有预设问题和预设答案采用现有手段,如线下收集或者采用爬虫直接从网络爬取再进行校对整理。
第六,将问题集合中的每个预设问题设置关键词。通过关键词能够与输入问题片段进行对比,进而能够比较出预设问题是否与输入问题相同。
此时,非结构化问答包建立完毕。
第七,设置缺失项回复答案。当无法从结构化数据包和问答包中得到答案时,直接向用户反馈预先设置的缺失项回复答案。
对于结构化数据包而言,如果主体名或者属性项缺失时,无法对应到具体的单元格,不能获取单元片段,进而无法合成答案。对于非结构化问答包而言,当输入问题中缺失片段,无法与任何一个预设问题中的所有关键词匹配成功时,也不能对应到具体的预设答案,进而无法得到答案。此时,直接反馈预先设置的缺失项回复答案作为答案。
具体地,缺失项回复答案可以简单地为“您输入的问题缺少内容,请重新输入”,或者是“您输入的问题超范围,无法回答”之类的句子,也可以是表达这些句子意思的图案。本实施例中,为了更好地引导用户快速获取答案,会将缺失项回复答案设置为引导用户输入缺失项的提示语,如“您已经输入‘主体1’,请继续输入‘属性1’、……、‘属性j’……、或者‘属性n’中任意一项”。这里的‘主体1’和‘属性1’至‘属性n’都只是举例,实际上缺失项回复答案,呈现在用户面前的就是用户已经输入的内容,以及用户还可以输入的缺失项,缺失项指的是只要输入就能够得到反馈的单元片段或者预设答案的任一项内容,可以是某些属性项,可以是某些主体名,当属性项为多维的时候,也可以是属性项中的某部分属性片段。
(三)知识库应用装置
如图2所示,应用前述知识库的应用装置,包括用来供用户进行问题输入的输入模块,用来对输入问题进行识别的识别模块,安装知识库用来对输入问题进行处理并反馈答案的问答模块,以及用来向用户呈现答案的显示模块。
其中,输入模块,可以是键盘、触摸屏之类的文字输入手段,也可以是摄像头之类的图像输入手段,或者是拾音器、录音笔等音频输入手段。如果采用图像输入手段或者音频输入手段,需要利用现有手段,先将图像或者音频转换为文字。
识别模块,为在现有的识别器件中设置有word2vec的识别器件。
问答模块,不仅包括存储有前述知识库的数据存储单元,还包括存储有堆叠双向lstm神经网络和分类器的数据处理单元。
显示模块,为具有显示功能的液晶显示屏、触摸屏、LED屏或者其他具有该功能的器件。
通过知识库应用装置,能够根据用户输入的用户问题,快速为用户提供针对该问题得到的答案。知识库应用装置能够广泛应用到各类咨询环境中。
(四)知识库问答方法
应用前述知识库应用装置进行问答时,包括以下步骤:
首先,识别模块按照现有技术将输入问题的语义片段进行分词得到输入词片段;
然后,通过word2vec将每个输入词片段转换为输入词向量;此时输入问题被转换为多个输入词向量;
第三步,将这些输入词片段与结构化数据包中结构化表的转换片段集合中的所有片段进行分别对比;找到与包含所有输入词片段的所有转换片段集合;
同时,将所有输入词片段与非结构化问答包中问答索引表中的所有关键词进行对比,找到包含所有输入词片段的所有关键词集合;其中,一个关键词集合对应一个预设问题。
在这一步中,通过现有的文本相似度算法进行输入词片段和转换片段集合以及关键词集合的对比,如BM25。通过文本相似度算法,能够快速地锁定后面需要进行精确对比的转换片段集合和关键词集合。
第四步,识别模块将被选出的转换片段集合和关键词集合输入到问答模块中,问答模块将这些转换片段集合和关键词集合都通过堆叠双向lstm神经网络转换为第一句子向量;
同时,问答模块将所有输入词向量通过堆叠双向lstm神经网络转换为输入句子向量。
其中,堆叠双向lstm神经网络是指在lstm神经网络中在迭代的每层中均输入词向量,使词向量在迭代的过程中能够通过堆叠的方式计算得到句子向量。
如图3所示,本实施例中的堆叠双向lstm神经网络为4层。一个句子所有的词向量以网络堆叠的方式,分别输入到lstm网络的每一层中,经过最大池化的方法计算后得到句子向量。当一个语义片段经过word2vec后,自动将该语义片段以最小词语信息为单位进行划分,根据lstm神经网络每层双向短路连接逐层计算每个词语的对应特征,进而将一个语句当中的词语特征按照最大池化的方法计算得到一个向量作为该语义片段的句子向量特征。通过堆叠方式,使lstm神经网络的反向传播机制在运作时,能够有效减小传播梯度消失而导致的训练梯度消失。
在此需要说明的是,经过文本相似度计算后选择出来的转换片段集合和关键词集合中的所有片段,包括主体名片段、属性片段和关键词,在第四步之前都通过word2vec转换为词向量,若某些片段本身为句子或者词组,则先分词后再进行词向量转换。
第五步,通过分类器将输入句子向量与所有第一句子向量进行对比,找到与输入句子向量最接近的第一句子向量作为目标句子向量。
如图4所示,分类器包括用来进行句子向量输入的输入层,批量归一化处理的批处理层Batch normalize layer,以及与批处理层连接的拼接层,与处理层连接的全连接层fully connected layer,以及与全连接层连接的概率层softmax layer。其中,输入层、批处理层、全连接层和概率层都是现在常用的层结构,其各项参数基本相同。而本实施例中的拼接层形成的行向量为:
[abs(u-v),element-wise product(u⊙v),cos similarity(u,v)];
其中,u为第一句子向量,v为输入句子向量;
abs(u-v)代表u-v向量的绝对值;
element-wise product(u⊙v)代表u,v向量的元素积;
cos similarity(u,v)代表u,v向量的cos相似度。
第六步,若目标句子向量为转换片段集合,则根据该转换片段集合提取对应的单元片段,将所有单元片段按照单元格的排列顺序拼凑形成反馈给用户的答案;若目标句子向量为关键词集合,则通过该关键词集合对应的预设问题根据问答索引表找到预设答案,将该预设答案作为反馈给用户的答案。
第七步,通过显示模块将从问答模块传递来的答案呈现给用户。
此外,在第三步寻找转换片段集合和关键词集合的时候也可以采用其他文本包含算法,如单向的emd算法、词匹配算法等。
在第五步计算相似度的时候,也可以采用wmd算法、深度学习文本相似度算法如Siamese、PWIM模型等。
若在第三步中,识别模块无法找到与输入问题相匹配的转换片段集合或者关键词集合时,问答模块直接向显示模块发送缺失项回复答案,引导用户完善缺失项。
综上,本实施例中的知识库,以及根据该知识库建立的应用装置和利用该应用装置的问答方法,具有以下优点:
回答多样性。问答内容可以覆盖结构化知识库的一项或者多项、或者某些属性值缺失,都能够回答。而不是像传统智能问答系统只能够回答固定的“问题--答案”形式的答案。
知识库更小,更便于建立。本发明的建库方法主要建立多维索引表,单维相似问题片段表就能够覆盖输入知识库的大多数问题。传统方法需要穷尽所有可能的组合情况甚至包括相似问题的问法,传统建库方法组合是个乘积的关系,而本发明是相加关系。
准确率更高。不仅是因为大量的相似片段通过一维表的索引有助于识别片段值,同时系统返回答案必须满足多维表索引条件才能对应所有片段被识别。当结构化知识库维度增加时,由于文本相似度算法识别多个维度准确率下降,而传统方法并没有本发明的索引条件机制,容易匹配上错误的问题。
此外,通过非结构化问答包和缺省项的设置,在尽量保证知识库存储空间的基础上,使知识库更加完善,使输入问题都尽可能得到正确的反馈,提高用户的使用体验感。
试验例
按照前述的方法建立和应用知识库,其中,设置的二维结构化表如表3所示:
表3
运动/课程 |
课程数 |
每节课时长 |
上课地点 |
击剑 |
4 |
60分钟 |
重庆九龙坡区奥体中心 |
壁球 |
2 |
60分钟 |
奥体路1号 |
高尔夫 |
4 |
40分钟 |
石子山体育公园 |
射箭 |
4 |
45分钟 |
鹅岭正街1号 |
棒球 |
1 |
50分钟 |
四公里学府路 |
表3中的主体名为运动,属性项为课程,第一个主体名中存储的主体名片段为“击剑”,第二个主体名中存储的主体名片段为“壁球”,以此类推,第三个到第五个主体名中存储的主体名片段分别为“高尔夫”、“射箭”、“棒球”。因为本表为二维结构化表,每个属性项中只有一个属性片段,从左往右,第一个属性项至第三个属性项中的属性片段分别为“课程数”、“每节课时长”、“上课地点”。
对于非结构化问答包,设置的问答索引表如表4所示,每个预设问题均对应一个预设答案,且每个预设问题中包含有一个关键词集合。如第一个预设问题“击剑服的存放位置在哪里”其关键词集合为(击剑、服、位置),若该关键词集合形成的第一句子向量被当做目标句子向量,则问答模块会将该预设问题对应的预设答案“场馆大门右边的存放柜”作为答案,通过显示模块反馈给用户。
表4
在本试验例中,用户通过输入模块向知识库输入“高尔夫球在哪里上课?”通过识别模块将作为输入问题的该输入语段分词为输入词片段“高尔夫”、“在”、“哪里”、“上课”,通过文本包含算法计算表3中被包含的片段;从表3中被选出的转换片段集合为(高尔夫、上课地点)。通过问句生成形成结构化数据包候选问题“高尔夫球上课地点”。
同时,对于知识库中非结构化问答包,采用文本相似度算法计算各个预设问题与用户输入问句的文本相似度,从表4中选出最相似的预设问题“高尔夫球损坏怎么赔偿”。
然后,将分别从表3和表4中选出的内容进行向量化。
分别通过堆叠双向lstm神经网络计算得到用户的输入句子向量v和知识库的第一句子向量u,其中结构化数据包和非结构化问答包中计算得到的句子向量都为第一句子向量,让输入句子向量分别与多个第一句子向量进行对比,得到最相近的第一句子向量作为目标句子向量。具体地,采用cos相似度的计算“高尔夫球在哪里上课”和“高尔夫球损坏怎么赔偿”,相似度分数为1。同时,按照同样的方法计算“高尔夫球在哪里上课”和“高尔夫球上课地点”,相似度为分数2。假设设定的相似度阈值为分数3.如果分数1和分数2都小于3,则认为用户问题不在知识库中。如果分数2大于等于分数1,且分数2大于分数3,则从结构化知识库中获取答案。按照该转换片段集合从表3中提取对应单元格中的单元片段,将“高尔夫”和“上课地点”对应的“石子山体育公园”作为答案发送给显示模块,呈现给用户。如果分数1大于分数2且大于分数3,则认为用户问题和非结构化知识库的问题“高尔夫球损坏怎么赔偿”匹配上,将对应的答案“五十元一个”呈现给用户。
具体地,每个片段都可以与对应的结构化表通过文本包含算法进行对比。事先,将每个片段和存储位置都进行了对应,比如“高尔夫”片段对应r1-4表示第一列第四行位置,“高尔夫上课地点”对应r4-4第四列第四行位置,而该位置存储的单元片段“石子山体育公园”也对应r4-4,因此当“高尔夫”和“上课地点”匹配成功后,就能够得到“石子山体育公园”这个答案。
因为知识库对每个结构化表都进行了同义词、近似词等的扩展,即使用户输入的语段文字有所改变,只要意思相同,仍会通过一维索引指向表3,从表3中得到单元片段。
实施例二
本实施例与实施例一的区别在于,每个属性项包括多个属性片段,即属性项为多维,使整个结构化表为多维结构化表。通过多维结构化表,使一个主体名片段和多个属性片段才能确定一个单元片段。使得到的单元片段更加准确,使由单元片段构成的答案更加精准。
举个例子,表1中存储属性1的属性项改为存储属性11、……、属性1j、……、属性1x,那么在主体1片段匹配成功的前提下,需要与属性11至属性1x这x个属性片段均匹配成功后,才能得到单元片段Value11。
当属性项为多维的时候,缺失项回复答案中就可能会引导用户继续输入缺失的属性片段。
实施例三
本实施例与实施例二的区别在于,表体的单元格,不仅可以是片段,也可以是地址链接,这样那些不方便直接存储在结构化表中的内容能够通过访问地址链接而被访问提取,单元格还可以是另一个主体名,这样对于具有相同对应关系的主体名,能够减少重复片段内容的存储。
以上所述的仅是本发明的实施例,方案中公知的具体结构及特性等常识在此未作过多描述,所属领域普通技术人员知晓申请日或者优先权日之前发明所属技术领域所有的普通技术知识,能够获知该领域中所有的现有技术,并且具有应用该日期之前常规实验手段的能力,所属领域普通技术人员可以在本申请给出的启示下,结合自身能力完善并实施本方案,一些典型的公知结构或者公知方法不应当成为所属领域普通技术人员实施本申请的障碍。应当指出,对于本领域的技术人员来说,在不脱离本发明结构的前提下,还可以作出若干变形和改进,这些也应该视为本发明的保护范围,这些都不会影响本发明实施的效果和专利的实用性。本申请要求的保护范围应当以其权利要求的内容为准,说明书中的具体实施方式等记载可以用于解释权利要求的内容。