发明内容
有鉴于此,本发明实施例提供一种机器人知识库的建设方法、机器人知识库、自动问答方法、自动问答系统、机器人知识库的建设系统、终端设备以及计算机存储介质,以实现自动生成知识点,减少操作人员工作量并提高知识点的准确性。
本发明实施例提供了一种机器人知识库的建设方法,包括:
获取静态二维表数据,所述静态二维表数据包括题目、表头和表体,所述表头为第一行,所述表体为第一行之外的其它行;
从表头中确定所述表体对应的两个以上属性信息,当多列数据的表头内容对应的属性相同时,将所述多列数据的表头内容归纳为一个所述属性信息,当仅一列数据的表头内容对应一个属性时,直接将该列数据的表头内容作为一个所述属性信息;
根据所述属性信息生成一个或多个自动问答知识点,每个自动问答知识点包括问题表达式和答案表达式,所述答案表达式包括所述题目;
将所述静态二维表数据、所述自动问答知识点及所述属性信息存储到知识库中。
可选地,所述方法还包括:
建立所述属性信息与对应的表体中内容或表头内容的包含关系;
将所述包含关系存储到知识库中。
可选地,所述方法还包括:
为所述表头或/和所述表体中的词语建立词类,所述词语作为对应词类的词类名,所述词类包括所述词语以及所述词语的同义词;
建立所述属性信息与对应的表体中内容的包含关系包括:建立所述属性信息与对应的表体或表头中词类名的包含关系;
将所述包含关系存储到知识库中还包括:将所述词类存储到知识库中。
可选地,根据所述属性信息生成一个或多个自动问答知识点包括:
根据至少两个所述属性信息自动生成一个初始知识点;
对每个所述初始知识点进行调整,得到所述自动问答知识点。
本发明实施例还提供了一种采用上述的机器人知识库的建设方法建设的机器人知识库。
本发明实施例还提供了一种基于上述机器人知识库的自动问答方法,包括:
在接收到用户的请求信息时,根据所述请求信息匹配知识库中的自动问答知识点;
根据匹配到的自动问答知识点对应的所述题目,查找对应的静态二维表,并获取查找到的静态二维表;
根据所述请求信息在所述静态二维表中查找对应的答案,根据查找到的答案以及确定的答案表达式生成最终答案,将所述最终答案返回给所述用户。
本发明实施例还提供了一种基于上述机器人知识库的自动问答系统,包括:
请求匹配模块,用于在接收到用户的请求信息时,根据所述请求信息匹配知识库中的问答知识点;
数据获取模块,用于根据匹配到的问答知识点对应的所述题目,查找对应的静态二维表,并获取查找到的静态二维表;
答案生成模块,根据所述请求信息在所述静态二维表中查找对应的答案,根据查找到的答案以及确定的答案表达式生成最终答案;
答案返回模块,用于将所述最终答案返回给所述用户。
本发明还提供了一种机器人知识库的建设系统,包括:
数据获取模块,用于获取静态二维表数据,所述静态二维表数据包括题目、表头和表体,所述表头为第一行,所述表体为第一行之外的其它行;
属性确定模块,从表头中确定所述表体对应的两个以上属性信息,当多列数据的表头内容对应的属性相同时,将所述多列数据的表头内容归纳为一个所述属性信息,当仅一列数据的表头内容对应一个属性时,直接将该列数据的表头内容作为一个所述属性信息;
知识点生成模块,根据所述属性信息生成一个或多个自动问答知识点,每个自动问答知识点包括问题表达式和答案表达式,所述答案表达式包括所述题目;
存储模块,用于将所述静态二维表数据、所述自动问答知识点及所述属性信息存储到知识库中。
本发明实施例还提供了一种终端设备,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现上述机器人知识库的建设方法或上述自动问答方法。
本发明实施例还提供了一种计算机存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述机器人知识库的建设方法或上述自动问答方法。
本发明实施例的技术方案,通过获取静态二维表数据,从静态二维表数据的表头中确定表体对应的两个以上属性信息,根据所述属性信息生成一个或多个自动问答知识点,每个自动问答知识点包括问题表达式和答案表达式,所述答案表达式包括所述题目,将静态二维表数据、自动问答知识点及属性信息存储到知识库中,实现了根据静态二维表数据自动生成知识点,并建立对应的知识库,不再需要操作人员根据静态二维表数据手动整理知识点,减少了操作人员的工作量,并减少了人为犯错的可能,提高了生成的知识点的准确性和生成效率。而且在对静态二维表数据进行修改时,可以不必像现有技术那样对手动整理生成的每条知识点进行修改,只需修改变化的属性信息对应的自动问答知识点,大大减少了操作人员的工作量。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部内容。
为了便于理解本发明实施例的内容,先介绍一下自动问答中常用到的名词:
1知识点
知识库中的基本知识点最原始和最简单的形式就是平时常用的FAQ,一般的形式是“问-答”对。例如,“彩铃的资费”就是表达清晰的标准问描述。这里的“问”不应被狭义地理解为“询问”,而应广义地来理解一“输入”,该“输入”具有对应的“输出”。例如,对于用于控制系统的语义识别而言,用户的一个指令,例如“打开收音机”也应可以被理解为是一个“问”,此时对应的“答”可以是用于执行相应控制的控制程序的调用。
用户在向机器输入时,最理想的情况是使用标准问,则机器的智能语义识别系统马上能够理解用户的意思。然而,用户往往并非使用的是标准问,而是标准问的一些变形的形式。例如,若对于收音机的电台切换的标准问形式是“换一个电台”,那么用户可能使用的命令是“切换一个电台”,机器也需要能够识别用户表达的是同一个意思。
对于智能语义识别而言,知识库里需要有标准问的扩展问,该扩展问与标准问表达形式有略微差异,但是表达相同的含义。
因此,知识库中包括多个知识点,每个知识点包括问题和答案,问题包括标准问和多个扩展问。
2词类
词类是按照词的语义进行划分的,把一组相关的词组织在一起形成一个树状结构的词类库,在这个树状结构中的任意一个非叶子结点都称作一个词类(广义词类),其中直接包含词的第一级词类称为狭义词类。定义词类的目的主要是为了分词、构造语义表达式以及使用其携带的语义信息进行语义相似度计算。
2.1词类的组成
词类(狭义词类)是对一组相关词的汇总,词类由词类名和一组相关词所组成。词类名是在这组相关词中具有标签作用的词,即词类的代表。一个词类中至少包含一个词(即词类名本身)。词类名一般需要符合以下规则:词类名应简单明了,通俗易懂,能突出重点;一组词里有拼音、英文、网络流行语、方言和书面语等词,这种情况下可以常用普通话作为词类名;设词类名中不应带有任何符号(如/,?等)。
2.2词类的语义标注
词类如果仅仅以一类词来使用,那其意义也就大打折扣。要对词类进行更好的应用,就需要在其上定义其默认的语义信息,以及标注其他的语义信息。有了这些语义信息,才可以在后续的语义分析中进行各种运算。标注的语义具有继承特性,即子类继承父类的标注语义。
2.2.1无标注词类
默认无任何标注时定义语义为“相似”,可理解为同义词,这种类型的词类对后续语义计算起到了很大的帮助,语义表达式中大量使用的都是这类词类。例如:“开通”这个词类,包含“开通”、“定制”、“开启”等词。
2.2.2集合词(#)
可以使用“#”标注为“不相似”。这时词类的主要作用是进行语义表达式的表示,其一般表现为同一类型的词,有一定的语义相关性,但是并非同义,称之为集合词类。例如:“操作系统”这个词类,包含“wince”、“linux”、“IOS”、“Android”、“palm”、“Symbian”等词。
2.2.3重要词(*n)
可以使用“*”或“*n”标注为“重要”(其中n表示重要度)。这类词相对其他词应该在计算相似度过程中提高权重。一般业务类名词都需要在语义上标注的更为重要以加强相似度计算中的权重。例如:“彩铃”这个词类,包含“七彩铃音”、“彩铃”等词。
2.2.4名称(%n)
可以使用“%n”标注一些专业词的词性。这类词一般在领域中有特定的意思,词性标注时很容易判断错误,因此需要通过人工标注来校正。通过准确的词性可以在后续句型分析及相似度计算中起到重要的作用。例如:“彩信珍藏夹”这个词类,包含的“彩信珍藏夹”、“彩信收藏夹”等词。
2.2.5动词(%v)
可以使用“%v”标注一些动词的词性。
2.2.6拼音纠错词(@)
可以使用“@”标注一些专业词的词类可以进行拼音纠错。如果在全部词库中进行拼音纠错,往往由于同音词原因纠错的正确率较低。通过对指定部分的词进行部分纠错虽然纠错范围变小了,但是纠错准确率可以大大的提升。“纠错”的标注一般是针对领域内的专业名词,其长度往往比常用词长,而且一般没有同音词,纠错效果明显。由于专业名词中往往包含有一些其他词,因此自动纠错的原则是纠错后对分词结果个数的影响不能增大。比如“悦读会会员包”这个词,用户往往由于输入法原因错误输入为“阅读会会员包”通过拼音纠错就可以避免这类由于用户输入错误造成的对用户问题的无法理解。
需要说明的是,上面标注仅是举例说明,如:其中的标注符号和/或对应关系等都可以发生变化,其不影响本发明的保护范围。
3语义表达式
语义表达式主要由词、词类以及他们的“或”关系构成,其核心依赖于“词类”,词类简单的理解即为一组有共性的词,这些词在语义上可以相似也可以不相似,这些词也可以被标注为重要或不重要。语义表达式与用户问句关系与传统的模板匹配有了很大的不同,在传统模板匹配中,模板和用户问句只是匹配与未匹配的关系,而语义表达式与用户问句之间关系是通过量化的值(相似度)来表示,同时这个量化的值与相似问句和用户问句之间的相似度是可以互相比较的。由于语义表达式要和相似问句一起参与相似度计算,所以模板语法的定义不宜复杂,但又要有足够的能力表达语义,以下举例说明语义表达式的具体组成和符号的表示。
3.1语义表达式中的符号
3.1.1词类的表示([])
为区分表达式中的词与词类,规定词类必须出现在方括号“[]”中,方括号中出现的词类一般为“狭义词类”,但是也可通过配置系统参数以支持“广义词类”。下面是一些简单表达式的示例:[飞信][如何][开通]、[介绍][彩信][业务]、[飞信]的[登录][方法]、[来电提醒][如何][收费]。
3.1.2或关系的表示(|)
在方括号中的词类可以通过“或”关系出现多次,这些“或”关系的词类会在计算相似度的时候以“展开”的方式单独计算。“展开”主要是根据“或”的意义将语义表达式展开成多个简单表达式的过程。如:[彩铃][开通]的[方法|步骤]可展开成“[彩铃][开通]的[步骤]”和“[彩铃][开通]的[方法]”两个简单的语义表达式。这类语义表达式的示例如下:[彩铃][开通]的[方法|步骤]、[怎样][查询|知道][PUK码]、[退订|撤销|关闭|停用][IP|17951][国内长途优惠包]、[来电提醒][功能费|月租费|信息费|通信费]。
3.1.3非必要的表示(?)
在方括号中的词类可以在结尾加入“?”表示可出现也可以不出现,即非必要的关系,这种非必要关系的词类也同样会在计算相似度的时候以“展开”的方式单独计算。“展开”主要是将语义表达式中含有非必要的词类(或词类的“或组合”)展开成包含和不包含这个词类的两个简单语义表达式的过程。
如:[介绍][手机视频][军事栏目][内容][什么?]可展开成“[介绍][手机视频][军事栏目][内容]”和“[介绍][手机视频][军事栏目][内容][什么]”两个简单语义表达式。
本发明中的问题表达式及答案表达式就是用表达式形式表示的问题和答案。
实施例一
图1是本发明实施例一提供的一种机器人知识库的建设方法的流程图,本实施例可适用于对静态二维表数据建设机器人知识库的情况,该方法可以由建设机器人知识库的装置来执行,该装置可以由软件和/或硬件来实现,一般可集成在终端设备中,该方法具体包括如下步骤:
步骤110,获取静态二维表数据,所述静态二维表数据包括题目、表头和表体。
其中,静态二维表数据是由二维表结构来逻辑表达和实现的数据,遵循数据格式与长度规范,主要通过关系型数据库进行存储和管理,其包括题目(如表1的题目“理财表”)、表头(如表1的第一行)和表体(除第一行外的数据)。
本实施例通过加载二维表的功能,直接将静态二维表导入并显示。
步骤120,从表头中确定所述表体对应的两个以上属性信息,每个所述属性信息与一列或多列的表头内容对应。
静态二维表数据的表头中表示了每列数据的属性,一般,主键列具有一个属性,其他列数据的属性可以相同,也可以不同,根据每列数据的属性,可以确定表体对应的至少两个属性信息,且每个所述属性信息与一列或多列的表头内容对应。
其中,主键列是在一张表中可以用来唯一标识一行数据的列,如表1中的第一列可以标识每行表示的具体理财产品,该列即为主键列。
具体实施时,根据表头内容确定每列数据的属性,选定其中的主键列(如表1的第一列和表2的第一列),根据主键列确定一个属性信息,再根据其他列的表头内容确定一个或多个属性信息(如表1中其他列的表头内容均是具体的天数,可归纳为一个属性信息,而表2中其他列的表头内容不能归纳为一个属性信息,可将每一列作为一个属性信息),还需要根据确定的属性信息判断加载的静态二维表数据可否构建为一个知识点,如,在具有两个属性信息时只能构建一个知识点,在具有多于两个的属性信息时可以构建多个知识点。例如,表1可构建为一个知识点,表2可构建为多个知识点,包括:xx书的价格、xx书的作者及xx书的简介等,其中,xx统称为所有的书。
表2书籍表
可选的,从表头中确定所述表体对应的两个以上属性信息包括:
当多列数据的表头内容对应的属性相同时,将所述多列数据的表头内容归纳为一个所述属性信息;
当仅一列数据的表头内容对应一个属性时,直接将该列数据的表头内容作为一个所述属性信息。
比较多列数据的表头内容,判断多列数据的表头内容对应的属性是否相同,在相同时,将多列数据的表头内容归纳为一个属性信息(如表1中除第一列外的其他各列的表头内容均是具体的天数,可归纳为一个属性信息,该属性信息可以为理财期限);当只有一列数据的表头内容对应一个属性时,直接将该列数据的表头内容作为一个属性信息,例如,主键列会具有一个单独的属性,该列的表头内容可作为一个属性信息(如表1中的第一列对应一个属性信息,该属性信息可以为理财产品),当然,其他列中也可能仅一列数据的表头内容对应一个属性(如表2中的第二列的属性是作者,第三列的属性是价格,不能归纳为同一属性信息,即每列分别对应一个属性信息)。通过归纳属性信息,为自动生成自动问答知识点提供依据,从而可以自动生成较少的自动问答知识点,提高生成知识点的效率,而且节省存储空间。
步骤130,根据所述属性信息生成一个或多个自动问答知识点,每个自动问答知识点包括问题表达式和答案表达式,所述答案表达式包括所述题目。
当只有两个属性信息时,生成一个自动问答知识点;当有M个属性信息时(M大于等于3),则可以根据其中的任意两个属性信息生成一个自动问答知识点,也可以根据其中的任意三个属性信息生成一个自动问答知识点,还可以根据其中任意N个属性信息生成一个自动问答知识点(N大于3且小于等于M)。即,根据两个以上属性信息,可以生成一个自动问答知识点,也可以通过对属性信息的组合生成多个自动问答知识点。
本发明实施例中的自动问答知识点中的答案表达式包括静态二维表数据的题目,用于在与用户交互时查找与该题目对应的静态二维表数据并获取答案。
步骤140,将所述静态二维表数据、所述自动问答知识点及所述属性信息存储到知识库中。
知识库中除了上述静态二维表数据、自动问答知识点和属性信息外,还包括普通知识点,普通知识点包括问题表达式和答案表达式,答案表达式中不存在所述题目。
本实施例的技术方案,通过获取静态二维表数据,从静态二维表数据的表头中确定表体对应的两个以上属性信息,根据所述属性信息生成一个或多个自动问答知识点,每个自动问答知识点包括问题表达式和答案表达式,所述答案表达式包括所述题目,将静态二维表数据、自动问答知识点及属性信息存储到知识库中,实现了根据静态二维表数据自动生成知识点,并建立对应的知识库,减少了操作人员工作量,并减少了人为犯错的可能,提高了生成的知识点的准确性和效率。
在上述技术方案的基础上,还可选包括:
建立所述属性信息与对应的表体中内容或表头内容的包含关系;
将所述包含关系存储到知识库中。
在将一列数据的表头内容作为一个属性信息时,建立该属性信息与对应的表体内容的包含关系(如建立属性信息与主键列的表体中内容的包含关系);在将多列数据的表头内容归纳为一个属性信息时,该属性信息可以是多列数据的表头内容的共性,从而建立属性信息与对应的表头内容的包含关系。将所述属性信息与对应的表体中内容的包含关系以及属性信息与对应的表头内容的包含关系存储到知识库中,便于在与用户进行自动问答交互中快速查找对应的知识点。
在上述技术方案的基础上,可选的,还包括:
为所述表头或/和所述表体中的词语建立词类,所述词语作为对应词类的词类名,所述词类包括所述词语以及所述词语的同义词;
建立所述属性信息与对应的表体中内容的包含关系包括:建立所述属性信息与对应的表体或表头中词类名的包含关系;
将所述包含关系存储到知识库中还包括:将所述词类存储到知识库中。
为了在与用户交互时更加快速的匹配到知识点,还可以为表头或/和表体中的词语建立词类,将所述词语作为对应词类的词类名,并确定所述词语的同义词,将所述词语连同对应的同义词一同放在所述词类下。在建立属性信息与对应的表体中内容的包含关系时,建立属性信息与对应的表体或表头中词类名的包含关系即可,记录的包含关系较为简单。在存储包含关系时连同建立的词类一同存储到知识库中。
以表1为例,首先,根据表头内容选择主键列,将主键列的列题目作为一个属性信息,属性信息为理财产品,而将该列下的值作为属性信息下的词类名,并添加对应的同义词丰富其语义信息,生成词类,也即对表体中的第一列中的词语建立词类,并建立属性信息与对应的表体中词类名的包含关系,如图2所示为本发明实施例提供的机器人知识库的建设方法中的对表1的主键列建立词类的示意图。通过判断,确定除主键列以外的列的表头内容均为具体的天数,对应的属性相同,对其他列的列题目进行归纳命名,作为一个属性信息,属性信息为理财期限,将其他列的列题目作为该属性信息下的词类名,并添加对应的同义词,生成与其他列的列数量相同的词类,也即对其他列的表头中的词语建立词类,并建立属性信息与对应的表头中词类名的包含关系,如图3所示为本发明实施例提供的机器人知识库的建设方法中的对表1的其他列的列题目建立词类的示意图。将建立的词类和包含关系一同存储到知识库中。
以表2为例,首先,根据表头内容选择主键列,将第一列作为主键列,将主键列的列题目作为一个属性信息,而将该列下的值作为属性信息下的词类名,并添加对应的同义词丰富其语义信息,生成词类,也即对表体中的第一列中的词语建立词类,并建立属性信息与对应的表体中词类名的包含关系。通过判断,确定除主键列外的其他列对应的属性均不同,即每列对应一个属性,对其他列中每列的列题目进行归纳命名,作为一个属性信息,比如“作者”这一列生成的属性信息可以为“作者名称”或“作者”,对应的列题目作为该属性信息下的词类名,同时将对应的表体中词语也作为该属性信息下的词类名,建立多个词类,也即对表头和表体中每一列中的词语建立词类,并建立属性信息与对应的表头和表体中词类名的包含关系。根据表2的列题目可以额外生成如表3所示的四个词类名:价格、简介、作者和书。
表3词类
在上述技术方案的基础上,可选的,根据所述属性信息生成一个或多个自动问答知识点包括:
根据至少两个所述属性信息自动生成一个初始知识点;
对每个所述初始知识点进行调整,得到所述自动问答知识点。
将至少两个所述属性信息合并,自动生成一个初始知识点,再对每个初始知识点进行调整,得到自动问答知识点。例如,表1中可以归纳为两个属性信息,即理财产品和理财期限,自动生成一个初始知识点,如下:
为该初始知识点生成初始问题表达式:[理财产品][理财期限]
为该初始知识点生成初始答案表达式:$[理财产品]的$[理财期限]是{ds.理财表}
对于上述自动生成的初始知识点,操作人员可以对其进行修改调整,得到自动问答知识点,如下:
修改后的问题表达式:[理财产品][理财期限][年利率][多少?]
修改后的答案表达式:$[理财产品]的$[理财期限]$[年利率]是{ds.理财表}
例如,表2中可以归纳为多个属性信息,可以根据主键列的属性信息和其他列中一列的属性信息生成初始知识点,生成的初始知识点如下(省略了答案表达式):知识点1、生成的问题表达式:[书籍名称][作者]
知识点2、生成的问题表达式:[书籍名称][价格]
知识点3、生成的问题表达式:[书籍名称][简介]
对于上述知识点,操作人员对其进行简单修改,如知识点3无需修改,知识点1和知识点2可以修改如下:
知识点1、修改后的问题表达式:[书籍名称][作者][谁?]
知识点2、修改后的问题表达式:[书籍名称][价格][多少?]
还可以根据其他列中一列的属性信息和主键列的属性信息生成初始知识点,可以为(省略了答案表达式):
样例:路遥出过哪些书?
生成的问题表达式:[作者名称][书]
操作人员可以修改如下:
修改后的问题表达式:[作者名称][写过|出版][书]
可见,根据静态二维表数据中对应的属性信息可以自动生成初始知识点,操作人员只需简单调整就可以得到标准的自动问答知识点,大大减少了操作人员的工作量。
当采用本实施例技术方案处理表1时,只需生成一个自动问答知识点即可,从而不再需要生成40条知识点,大大节省了存储空间,并减少了操作人员的工作量。
实施例二
本发明实施例二提供了机器人知识库,该机器人知识库通过实施例一提供的机器人知识库的建设方法建设的,也即,机器人知识库包括:
一个或多个静态二维表数据;
与一个所述静态二维表数据对应的两个以上属性信息;
多个自动问答知识点,每个自动问答知识点包括问题表达式和答案表达式,所述答案表达式包括一个所述题目。
所述知识库还可选包括:
所述属性信息与对应的表体中内容或表头内容的包含关系。
可选的,在建立所述知识库时,为所述表头或/和所述表体中的词语建立词类,所述词语作为对应词类的词类名,所述词类包括所述词语以及所述词语的同义词;
所述包含关系为所述属性信息与对应的表体或表头中词类名的包含关系;
所述知识库还包括:所述词类。
机器人知识库还存储普通自动问答知识点,普通自动问答知识点包括问题表达式和答案表达式,答案表达式中不会包括静态二维表数据的题目。
本实施例的技术方案,直接存储静态二维表数据及对应的自动问答知识点,自动问答知识点是通过总结静态二维表数据的共有属性得到的,涵盖了多个问题及答案,在与用户交互时,可以根据具体情况返回对应的答案。
实施例三
图4是本发明实施例三提供的一种自动问答方法的流程图,本实施例所述的自动问答方法的基础是本发明任一实施例所述的机器人知识库,本实施例可适用于对静态二维表数据存储的数据进行自动问答的情况,该方法可以由自动问答装置来执行,该装置可以由软件和/或硬件来实现,一般可集成在服务器中,该方法具体包括如下步骤:
步骤410,在接收到用户的请求信息时,根据所述请求信息匹配知识库中的自动问答知识点。
所述请求信息可以是语音信息,也可以是文本信息。当所述请求信息是语音信息时,可以先将语音信息转换为对应的文本信息。
在接收到用户的请求信息时,根据语义相似度计算将用户的请求信息与知识库中的自动问答知识点进行匹配,选取相似度大于预设阈值且相似度最高一个或多个的自动问答知识点,为匹配到的自动问答知识点。值得说明的是,这里的自动问答知识点可以是和静态二维表数据对应的自动问答知识点,此时自动问答知识点的答案表达式中包括静态二维表数据的题目,自动问答知识点还可以是普通知识点,此时自动问答知识点的答案表达式中不包括所述题目。
具体进行相似度计算时,可以先对请求信息进行分词处理,得到分词结果,将分词结果基于建立的词类来计算相似度。
当匹配到的自动问答知识点是普通知识点时,直接获取匹配到的知识点的答案并将所述答案返回给用户即可。需要说明的是,当答案为文本信息时,既可以直接将该文本信息返回给用户,也可以将该文本信息转换为语音信息后再返回给用户,其不影响本发明的保护范围。
而当匹配到的自动问答知识点是和静态二维表数据对应的自动问答知识点时,则需要继续执行下面的步骤。
步骤420,根据匹配到的自动问答知识点对应的所述题目,获取对应的静态二维表数据。
步骤420具体可以包括以下内容:
根据所述题目,查找对应的静态二维表;
获取查找到的静态二维表。
步骤430,根据所述请求信息在所述静态二维表数据中查找对应的答案,根据查找到的答案以及确定的答案表达式生成最终答案,将所述最终答案返回给所述用户。
根据所述请求信息在相似度计算时匹配到的词类名,查找静态二维表数据中的所述词类名,获取对应的数据,作为答案,并根据查找到的答案以及匹配到的自动问答知识点中的答案表达式生成最终答案,将最终答案返回给所述用户。
例如,结合表1,用户的请求信息为“点石成金系列九十天的年利率是多少?”,通过相似度计算匹配到问题表达式为“[理财产品][理财期限][年利率][多少?]”,答案表达式为“$[理财产品]的$[理财期限]$[年利率]是{ds.理财表}”的自动问答知识点,答案表达式中包括静态二维表数据的题目“理财表”,根据静态二维表数据的题目,直接获取该静态二维表,在该静态二维表中查找点石成金系列与九十天对应的具体数据,经查找,得到点石成金系列与九十天对应的具体数据是4.46,代入所述答案表达式,得到最终答案为“点石成金系列九十天的年利率是4.46”,将该最终答案返回给用户或将该最终答案转换为对应的语音信息并返回给用户。
本实施例的技术方案,通过在接收到用户的请求信息时,匹配知识库中的自动问答知识点,如果匹配到的自动问答知识点的答案表达式不包括静态二维表数据的题目,可以直接返回对应的答案,如果匹配到的自动问答知识点的答案表达式包括所述题目,则获取对应的静态二维表数据,在静态二维表数据中查找对应的答案,并根据答案表达式生成最终答案,返回给所述用户,从而根据知识库中存储的静态二维表数据及对应的自动问答知识点查找到与用户的请求信息对应的最终答案,从而在存储静态二维表数据对应的自动问答知识点时,只需存储与静态二维表数据的属性信息对应的自动问答知识点,不必像现有技术那样存储对应的很多条知识点,大大节省了知识库的存储空间,而且在根据用户的请求信息匹配知识库中的自动问答知识点时,由于待匹配的自动问答知识点较少,提高了匹配速度,从而提高了获取答案的速度。
实施例四
图5是本发明实施例四提供的一种自动问答系统的结构示意图,本实施例所述的自动问答装置的基础是本发明任一实施例所述的机器人知识库,本实施例可适用于对静态二维表数据存储的数据进行自动问答的情况,该装置可以由软件和/或硬件来实现,一般可集成在服务器中,该装置包括:请求匹配模块510、数据获取模块520、答案生成模块530和答案返回模块540。
其中,请求匹配模块510,用于在接收到用户的请求信息时,根据所述请求信息匹配知识库中的自动问答知识点;
数据获取模块520,用于根据匹配到的自动问答知识点对应的所述题目,获取对应的静态二维表数据;
答案生成模块530,用于根据所述请求信息在所述静态二维表数据中查找对应的答案,根据查找到的答案以及确定的答案表达式生成最终答案;
答案返回模块540,用于将所述最终答案返回给所述用户。
可选的,所述数据获取模块包括:
查找单元,用于根据所述题目,查找对应的静态二维表;
数据获取单元,用于获取查找到的静态二维表。
上述自动问答系统可执行本发明任意实施例所提供的自动问答方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本发明实施例三提供的自动问答方法。
实施例五
图6是本发明实施例五提供的一种机器人知识库的建设系统的结构示意图,本实施例可适用于对静态二维表数据建设机器人知识库的情况,该系统可以由软件和/或硬件来实现,一般可集成在终端设备中,该系统包括:数据获取模块610、属性确定模块620、知识点生成模块630和存储模块640。
其中,数据获取模块610,用于获取静态二维表数据,所述静态二维表数据包括题目、表头和表体;
属性确定模块620,用于从表头中确定所述表体对应的两个以上属性信息,每个所述属性信息与一列或多列的表头内容对应;
知识点生成模块630,用于根据所述属性信息生成一个或多个自动问答知识点,每个自动问答知识点包括问题表达式和答案表达式,所述答案表达式包括所述题目;
存储模块640,用于将所述静态二维表数据、所述自动问答知识点及所述属性信息存储到知识库中。
可选的,所述存储模块包括:
静态二维表存放单元,用于存储所述静态二维表。
可选的,所述属性确定模块包括:
判断单元,用于判断多列数据的表头内容对应的属性是否相同;
归纳单元,用于根据判断单元的判断结果将属性相同的多列数据的表头内容归纳为一个所述属性信息;
输出单元,用于将归纳单元得到的属性信息以及当仅一列数据的表头内容对应一个属性时的该列数据的表头内容进行输出。
可选的,所述系统还包括:
包含关系建立模块,用于建立所述属性信息与对应的表体中内容的包含关系;
包含关系存储模块,用于将所述包含关系存储到知识库中。
可选的,所述系统还包括:
词类建立模块,用于为所述表头或/和所述表体中的词语建立词类,所述词语作为对应词类的词类名,所述词类包括所述词语以及所述词语的同义词;
所述包含关系建立模块具体用于:建立所述属性信息与对应的表体或表头中词类名的包含关系;
所述包含关系存储模块还用于:将所述词类存储到知识库中。
可选的,所述知识点生成模块包括:
初始知识生成单元,用于根据至少两个所述属性信息自动生成一个初始知识点;
知识点调整单元,用于对每个所述初始知识点进行调整,得到所述自动问答知识点。
上述机器人知识库的建设系统可执行本发明任意实施例所提供的机器人知识库的建设方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本发明实施例一提供的机器人知识库的建设方法。
实施例六
图7为本发明实施例六提供的一种终端设备的结构示意图,如图7所示,该终端设备包括处理器710、存储装置720、输入装置730和输出装置740;终端设备中处理器710的数量可以是一个或多个,图7中以一个处理器710为例;终端设备中的处理器710、存储装置720、输入装置730和输出装置740可以通过总线或其他方式连接,图7中以通过总线连接为例。
存储装置720作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的机器人知识库的建设方法和/或自动问答方法对应的程序指令/模块(例如,机器人知识库的建设装置中的数据获取模块610、属性确定模块620、知识点生成模块630和存储模块640)。处理器710通过运行存储在存储装置720中的软件程序、指令以及模块,从而执行终端设备的各种功能应用以及数据处理,即实现上述的机器人知识库的建设方法和/或自动问答方法。
存储装置720可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储装置720可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储装置720可进一步包括相对于处理器710远程设置的存储器,这些远程存储器可以通过网络连接至终端设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置730可用于接收输入的数字或字符信息,以及产生与终端设备的用户设置以及功能控制有关的键信号输入。输出装置740可包括显示屏等显示设备。
实施例七
本发明实施例七还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行一种机器人知识库的建设方法和/或自动问答方法。
所述机器人知识库的建设方法具体可以参考实施例一,在此不再赘述。
所述自动问答方法具体可以参考实施例三,在此不再赘述。
当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的方法操作,还可以执行本发明任意实施例所提供的机器人知识库的建设方法和/或自动问答方法中的相关操作。
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
值得注意的是,上述装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。