一种知识库构建方法、基于对话的参数设置方法及装置
技术领域
本申请涉及自然语言处理技术领域,尤其涉及一种知识库构建方法、基于对话的参数设置方法及装置。
背景技术
人工智能(英语:Artificial Intelligence,AI)亦称机器智能,是指由人工制造出来的系统所表现出来的智能,通常人工智能是指通过普通计算机系统实现的智能。在人工智能领域,通常把能够表现出人工智能的计算机系统成为人工智能系统,例如具备人机对话功能的对话系统,搭载人工智能系统的设备称为人工智能机器人。
现有技术中提供多种人工智能机器人,其中,具备对话系统的会话机器人能够接收并理解人类的自然语言,并实现与人类进行对话。当会话机器人接收到人类的自然语言信息时,会话机器人的自然语言理解系统将自然语言转化成计算机程序易于处理的形式,然后会话机器人根据自身的参数设置和知识库生成对话内容,并通过自然语言生成系统把计算机程序生成的对话内容转化成自然语言,实现与人类的会话交互。
为了使会话机器人在与人类用户进行对话时,能够适应不同的会话场景,需要根据不同的对话场景设置不同的机器人参数,例如,对于用户提出的对话内容:你能唱首歌给我听吗?如果用户为儿童,会话机器人的参数应该设置为开启儿童模式,会话机器人回应给用户一首儿歌;如果用户不为儿童,会话机器人的参数应该设置为关闭儿童模式,会话机器人回应给用户一首流行歌曲。图1为现有技术的一种对话系统参数设置方法,从图1可以看出,现有技术的对话系统参数设置方法是通过对话系统的管理后台进行手动的参数设置,当用户想要改变对话系统的参数时,管理人员登入机器人的管理后台,手动修改对话系统的参数。
然而,由于会话机器人在实际运行中,会经历不同的会话场景,这就要求会话机器人能够根据会话场景的变化实时修改会话参数,以适应不同的会话场景,而现有技术的对话系统参数设置方法由于需要通过管理后台来实现参数设置,无法实现参数的实时设置。
发明内容
为了解决现有技术中存在的问题,本申请实施例提供了一种知识库构建方法、基于对话的参数设置方法及装置。
第一方面,本申请实施例提供了一种知识库构建方法,所述知识库包括指令概念库、参数概念库和接口型知识库,所述构建方法包括:根据预设的指令类型构建所述指令概念库,所述指令概念库包含至少一个所述指令类型,每个所述指令类型包含至少一个指令概念;以及,根据预设的参数类型构建所述参数概念库,所述参数概念库包含至少一个所述参数类型,每个所述参数类型包含至少一个参数概念;以及,根据所述指令类型和所述参数类型构建所述接口型知识库,所述接口型知识库包含至少一个知识接口;每个所述知识接口对应设置有知识标题;每个所述知识接口包括指令类型接口、参数类型接口和参数值接口。
第二方面,本申请实施例提供了一种基于对话的参数设置方法,应用于本申请构建的知识库,所述方法包括:当用户输入对话时,根据缓存数据设置对话系统的当前对话状态;根据所述知识库,从所述对话中获取参数设置对话;根据所述知识库,从所述参数设置对话中获取设置要素,所述设置要素包括指令类型、参数类型和参数值;根据所述设置要素,刷新所述对话系统的所述缓存数据。
第三方面,本申请实施例提供了一种基于对话的参数设置装置,应用于本申请构建的知识库,所述装置包括:初始化模块,用于当用户输入对话时,根据缓存数据设置对话系统的当前对话状态;第一获取模块,用于根据所述知识库,从所述对话中获取参数设置对话;第二获取模块,用于根据所述知识库,从所述参数设置对话中获取设置要素,所述设置要素包括参数类型、指令类型和参数值;刷新模块,用于根据所述设置要素,刷新所述对话系统的所述缓存数据。
由以上技术方案可知,本申请实施例提供的技术方案,根据对话系统能够实现的预设指令类型,构建指令概念库,根据预设的参数类型,构建参数概念库,然后根据预设指令类型和预设参数类型构建接口型知识库。在用户输入对话时,本申请根据缓存数据设置对话系统的当前对话状态,并根据本申请构建的接口型知识库,从对话中获取参数设置对话,然后从参数设置对话中获取实现参数设置所需的设置要素,包括指令类型、参数类型和参数值,最后根据设置要素刷新对话系统的缓存数据,由于本申请在用户输入对话时,会根据缓存数据设置对话系统的当前对话状态,当刷新了缓存数据后,用户再一次与对话系统进行对话时,对话系统会根据最新的缓存数据设置对话系统的状态,从而实现了对话系统参数的实时设置。
附图说明
为了更清楚地说明本申请的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为现有技术的一种对话系统参数设置方法示意图;
图2为本申请实施例提供的一种知识库构建方法流程图;
图3为本申请实施例提供的一种基于对话的参数设置方法的流程图;
图4为本申请实施例提供的一种基于对话的参数设置方法步骤S120的流程图;
图5为本申请实施例提供的一种基于对话的参数设置方法步骤S123的流程图;
图6为本申请实施例提供的一种基于对话的参数设置方法步骤S130的流程图;
图7为本申请实施例提供的一种基于对话的参数设置方法步骤S140的流程图;
图8为本申请实施例提供的一种基于对话的参数设置装置框图。
具体实施方式
为了使本技术领域的人员更好地理解本申请中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
在人工智能领域,带有对话系统的会话机器人能够接收并理解人类的自然语言,并实现与人类进行对话。为了使会话机器人在与人类用户进行对话时,能够适应不同的会话场景,需要根据不同的对话场景设置不同的对话参数,现有技术中通过在会话机器人的对话系统管理后台手动设置机器人的参数,但是,由于会话机器人在实际运行中,会经历不同的会话场景,这就要求会话机器人能够根据会话场景的变化实时修改参数,以适应不同的会话场景,而现有技术通过人工进入对话系统后台设置参数的方法无法实现对话参数的实时修改。
为了解决现有技术中存在的问题,本申请实施例提供了一种知识库构建方法,图2为本申请实施例提供的一种知识库构建方法流程图,如图2所示,所述方法构建包括:
步骤S010,根据预设的指令类型构建所述指令概念库,所述指令概念库包含至少一个所述指令类型,每个所述指令类型包含至少一个指令概念。
本申请中,指令概念库中包含了对话系统在进行参数设置时常用的指令类型,例如“开启”“关闭”“提高”“降低”等,表示在参数设置中要执行的动作。在本申请的参数设置中,对话系统可以从指令类型中获取参数设置的动作指令。同时,描述同一个动作指令可以有不同的表达方式,例如“开启”还可以表达成“启用”“打开”等,关闭还可以表达成“停用”“断开”等,在本申请中,这些不同的表达方式被定义为指令概念,每个指令类型下可以包含多个指令概念。更进一步地,本申请实施例从每个指令类型所包含的多个指令概念中,选取一个指令概念作为标准指令,以该标准指令作为指令类型的命名,并将其余的指令概念作为同位指令。例如,对于“开启”“启用”“打开”“启动”等指令概念,可将“开启”作为标准指令,将“启用”“打开”“启动”等作为同位指令,将上述标准指令和同位指令所属的指令类型命名为“开启”,同一个指令类型中的标准指令和同位指令具有等效含义。
示例地,本申请实施例构建的指令概念库可以为以下形式:
指令类型 |
标准指令 |
同位指令 |
开启 |
开启 |
打开、启用、开、启动、…… |
关闭 |
关闭 |
关停、停用、停止、关、关掉、…… |
提高 |
提高 |
增大、调高、提升、变大、改大、…… |
修改 |
修改 |
变成、变为、变更为、改成、…… |
步骤S020,根据预设的参数类型构建所述参数概念库,所述参数概念库包含至少一个所述参数类型,每个所述参数类型包含至少一个参数概念。
本申请中,参数概念库中包含了对话系统在进行参数设置时常会涉及到的参数类型,例如“评价”“音量”“语速”等,表示在参数设置中的被操作对象。在本申请的参数设置中,对话系统可以从参数类型中获取参数设置中的被操作对象,例如,某对话系统具有记录用户评价的功能,其中用户评价的字数限制可以修改,此时,在设置用户评价字数限制的过程中,“评价”就是被操作对象,同时,描述同一个被操作对象或同一类被操作对象可以有不同的表达方式,例如,“评价”还可以有“评论”“点评”等表达方式。本申请中,将被操作对象的每种表达方式定义为参数概念,每个参数类型下可以包含多个参数概念。更进一步地,本申请实施例从每个参数类型所包含的多个参数概念中,选取一个参数概念作为标准参数,以该标准参数作为参数类型的命名,并将其余的参数概念作为同位参数。例如,对于“推荐结果”“相似结果”“同类结果”等参数概念,可将“推荐结果”作为标准参数,将“相似结果”“同类结果”等作为同位参数,将上述标准参数和同位参数所属的参数类型命名为“相似结果”,同一个参数类型中的标准参数和同位参数具有等效含义。
示例地,本申请实施例构建的参数概念库可以为以下形式:
参数类型 |
标准参数 |
同位参数 |
评价 |
评价 |
评论、点评、评价尾巴、…… |
推荐结果 |
推荐结果 |
相似结果、同类结果、猜您喜欢…… |
问候 |
问候 |
寒暄、问好、打招呼…… |
显示屏 |
显示屏 |
屏幕、显示器、荧幕…… |
在本申请中,指令类型、参数类型构成了对话系统参数设置的必须要素,此外,对于部分指令类型来说,实现参数设置还需要获得参数类型中参数概念的具体参数值。因此,指令类型、参数类型和参数值可称为参数设置的设置要素。
步骤S030,根据所述指令类型和所述参数类型构建所述接口型知识库,所述接口型知识库包含至少一个知识接口;每个所述知识接口对应设置有知识标题;每个所述知识接口包括指令类型接口、参数类型接口和参数值接口。
本申请中,每个知识接口对应对话系统常用的一个可设置的参数项,每个知识接口对应设置有知识标题。由于,在人会话中,用户向对话系统传递信息要通过与对话系统对话的方式实现,例如,当用户希望修改对话系统显示的推荐结果的数量时,用户可能会向对话系统提出“我要修改推荐结果的数量”“修改推荐结果的数量”“我要相似结果的数量”等。因此,本申请可以从用户可能提出的对话中,选择出一个标准语句,作为知识标题,例如,将“修改推荐结果的数量”选定为标准语句,作为知识标题。
本申请中,指令类型、参数类型构成了对话系统参数设置的必须要素,此外,对于部分指令类型来说,实现参数设置还需要获得参数类型中参数概念的具体参数值。因此,与必须要素对应地,每个知识接口包括指令类型接口、参数类型接口和参数值接口,其中每个知识接口对应一个知识标题,其指令类型接口、参数类型接口和参数值接口也就与知识标题对应的指令类型、参数类型这参数值对应。
示例地,本申请中的接口型知识库可以用户数据表的形式构建,每个知识接口具有一个知识标题项和一个数据表项,例如:
知识标题:修改推荐结果的数量。
接口编码 |
指令类型接口 |
参数类型接口 |
参数值接口 |
XXXXXX |
修改 |
(待获取参数类型) |
(待获取参数值) |
作为一种可选择的实施方式,参数类型接口包括参数标签和第一请求信息,其中,参数标签包括必要和非必要信息,第一请求信息用于发起获取参数类型的第一请求对话。
并且,参数值接口可以包括数值标签和第二请求信息,数值标签包括必要标签和非必要标签;第二请求信息用于发起获取参数值的第二请求对话。
由于,用户与对话系统进行对话时,用户对对话系统发起的对话内容的形式多种多样,因此,当用户想对对话系统进行参数设置时,很多情况下并不以标准语句的形式与对话系统对话,这就导致了用户的对话中缺少对话系统进行参数设置的必须要素,例如参数类型、参数值等。例如,当用户对对话系统说:“我要修改参数”,即使对话系统理解了用户要修改参数的需求,也会由于不知道用户要修改什么参数而无法进行参数修改。
此外,对于不同的指令类型来说,参数设置所需的必须要素也不同。例如,当指令类型为“开启”时,参数设置所需的必须元素可仅包括参数类型,即开启的对象是什么,如:当用户说“开启日志”时,“开启”是指令类型,“日志”是参数类型,对话系统不再需要其他的元素信息,就能够执行开启日志的操作。又例如,当指令类型为“修改”时,参数设置所需的必须元素除了包括参数类型外,还应该包括参数值,如:当用户说“修改推荐结果的数量为2”时,“修改”是指令类型,“推荐结果”是参数类型,“2”是参数值,此时,对话系统能够执行修改推荐结果数量为2的操作。但是,如果用户说“修改推荐结果的数量”,即使对话系统理解了用户要“修改”“推荐结果”,也会由于缺少参数值而不知道用户到底想要将推荐结果的数量修改为多少,导致无法执行参数设置,此时,参数值为参数设置所需的必须元素。
对此,本申请的参数类型接口中包括参数标签和第一请求信息,其中参数标签包括必要标签和非必要标签,参数标签用于标记每个知识接口中参数类型是否为必须元素,其中,如果参数类型是必须元素,则参数标签为必要标签,如果参数类型不是必须元素,则参数标签为非必要标签;第一请求信息用于在对话系统从用户的对话中未获取到参数类型时,向用户发起第一请求对话。
此外,本申请中的参数值接口中包括数值标签和第二请求信息,其中数值标签包括必要标签和非必要标签,数值标签用户标记每个知识接口中参数值是否为必须元素,其中,如果参数值是必须元素,则数值标签为必要标签,如果参数值不是必须元素,则数值标签为非必要标签;第二请求信息用于在对话系统从用户的对话中未获取到参数值时,向用户发起第二请求对话。
示例地,带有参数标签和第一请求信息,数值标签和第二请求信息的知识接口为以下形式:
知识标题:XXXXXXXXXXX。
接口编码 |
指令类型接口 |
参数类型接口 |
参数值接口 |
XXXXXX |
参数类型 |
参数标签丨第一请求信息 |
数值标签丨第二请求信息 |
对于标准语句“修改推荐结果的数量”,其对应的知识接口为:
知识标题:修改推荐结果的数量。
对于标准语句“开启系统日志”,其对应的知识接口为:
知识标题:开启系统日志。
接口编码 |
指令类型接口 |
参数类型接口 |
参数值接口 |
B10001 |
开启 |
必要丨你要开启什么? |
非必要丨(null) |
其中,数值标签为非必要标签,第二请求信息中的null表示无第二请求信息。
由以上技术方案可知,本申请实施例提供了一种知识库构建方法,为了解决现有技术中无法实现实时设置对话系统参数的问题,根据对话系统能够实现的预设指令类型,构建指令概念库,根据预设的参数类型,构建参数概念库,然后根据预设指令类型和预设参数类型构建接口型知识库。本申请实施例提供的指令概念库、参数概念库和接口型知识库,可用于实现从用户的对话中获取参数设置的必须要素,如指令类型、参数类型和参数值等,从而,使对话系统根据参数设置的必须要素实现在对话中,对对话系统的参数进行实时设置。
本申请实施例还提供了一种基于对话的参数设置方法,图3为本申请实施例提供的一种基于对话的参数设置方法的流程图,如图3所示,所述方法包括:
步骤S110,当用户输入对话时,根据缓存数据设置对话系统的当前对话状态。
本申请提供的一种基于对话的参数设置方法可应用于具备人机语言交互功能的对话系统中,例如:对话系统。本申请中缓存数据存在对话系统的缓存数据库中,缓存数据中包含了对话系统的各种参数设置信息,例如:会话参数设置、系统环境设置等。本申请在检测到用户输入对话时,不立即对用户输入的对话进行分析,而是先从缓存数据中获取已有的会话参数设置,然后根据获取到的已有的会话参数设置对话系统的当前对话状态。
本申请可选择在每次获取到用户输入的对话时,设置对话系统的当前对话状态,也可以在每次执行会话参数设置后,再一次获取到用户输入的对话时,设置对话系统的当前对话状态,从而使每次执行会话参数设置以后,新的会话参数设置都能够在下一次对话时生效。
需要说明的是,本申请中,根据对话系统类型的不同,用户与对话系统的对话方式可以是语音对话,也可以是文字对话。
步骤S120,根据所述知识库,从所述对话中获取参数设置对话。
本申请中,根据知识库中的指令概念库、参数概念库,从用户与对话系统的对话中获取参数设置的要素,并对用户输入的对话内容执行相似度分析等语义分析过程,从而,从对话中获取参数设置对话。
图4为本申请实施例提供的一种基于对话的参数设置方法步骤S120的流程图,在一种可选择的实施方式中,如图4所示,步骤S120可以包括以下步骤:
步骤S121,获取所述对话的分词结果。
在步骤S121中,如果用户输入的是对话文本,则对对话文本进行分词,如果用户输入的是对话语音,则将对话语音识别成对话文本,然后对对话文本进行分词。本申请在对对话文本进行分词时,可对对话文本进行去停用词处理,将文本分词并去除停用词后的结果作为分词结果。
本申请可设置停用词库,以对对话文本进行停用词识别,具体可根据用户与对话系统对话过程中常用的口头语、语气助词等设置停用词库,例如:“那么”“呃”等;或者,考虑不同地区用户的语言习惯和方言特点,设定不同地区的停用词库。本申请中的去停用词的过程旨在去除对话文本中对识别参数设置对话无用的干扰信息,从而提高识别参数设置对话的准确性,因此对于是否去除停用词和设置什么样的停用词库,本领域技术人员可在本申请提供的技术启示下合理实施,本实施例中不再赘述。
示例地,对话系统获取到的对话为:“修改那个同类结果的个数”。对该对话进行文本分词后得到:
修改/那个/同类/结果/的/个数
然后,对上述分词进行去停用词处理,其中,在本示例中,口头语“那个”为停用词,去除停用词后,得到的分词结果为:
修改/同类/结果/的/个数
步骤S122,根据所述分词结果,以及,根据指令概念库和参数概念库,获取所述对话中的指令概念和参数概念。
本申请中,根据分词结果,查询指令概念库和参数概念库中是否包含分词结果中的内容,从而获取对话中的指令概念和参数概念。
示例地,使用本申请在知识库构建过程中构建的指令概念库和参数概念库,其中指令概念库为:
指令类型 |
标准指令 |
同位指令 |
开启 |
开启 |
打开、启用、开、启动、…… |
关闭 |
关闭 |
关停、停用、停止、关、关掉、…… |
提高 |
提高 |
增大、调高、提升、变大、改大、…… |
修改 |
修改 |
变成、变为、变更为、改成、…… |
参数概念库为:
对步骤S121的示例中获取到的分词结果中的每个分词,在指令概念库和参数概念库中进行比对查询,其中,分词“修改”在指令概念库中匹配到了标准指令“修改”,其对应的指令类型为“修改”;分析“同类”和“结果”匹配到了同位参数“同类结果”,其对应的参数类型为“推荐结果”。
步骤S123,如果至少获取到了所述指令概念,分别获取所述对话与每个知识标题的余弦相似度。
如果获取到了指令概念,例如步骤S122中获取到的标准指令“修改”,说明对话可能是参数设置对话,本申请在至少获取了指令概念时,将对话与每个知识接口中的知识标题计算余弦相似度。为了提高余弦相似度计算的准确性,可以使用去除停用词以后的对话与每个知识标题计算余弦相似度。
图5为本申请实施例提供的一种基于对话的参数设置方法步骤S123的流程图,在一种可选择的实施方式中,如图5所示,步骤S123包括以下步骤:
步骤S1231,根据所述分词结果,获取所述对话的第一分词向量。
本申请中,根据接口型知识库中所有知识标题的分词结果,确定本申请中使用的第一分词向量和第二分词向量的维度,有多少个不同的分词就有多少个维度,每个不同的分词对应多维向量的一个维度。
根据分词结果,对去停用词后的对话生成一个N维向量,T1=[S1,S2,S3,……,SN]。该N维向量T1即为第一分词向量。
步骤S1232,提高所述第一分词向量中,所述指令概念和所述参数概念的分词权重,生成所述对话的加权分词向量。
本申请中,指令概念和参数概念作为对话系统参数设置的必要要素,对参数设置对话的识别作用比其他分词要大,因此,本申请提高了指令概念和参数概念的分词权重,并根据分词权重,对第一分词向量中,指令概念和参数概念对应的维度进行加权,生成对话的加权分词向量。
示例地,在N维向量T1=[S1,S2,S3,……,SN],维度S1对应的分词为“修改”,当不加权时,维度值为1,本申请中设置“修改”分词权重为1.3,则对N维向量T1加权后,维度S1的值为1×1.3=1.3。
步骤S1233,获取每个所述知识标题的第二分词向量。
在步骤S1233中,根据每个知识标题的分词结果,对每个知识标题生成一个N维向量,作为每个知识标题的第二分词向量。若有M个知识标题,则生成M个第二分词向量,分别为V1、V2、V3、……、Vm。
步骤S1234,分别计算所述加权分词向量和每个所述第二分词向量的余弦值,获取所述余弦相似度。
在步骤S1234中,分别计算加权分词向量和每个第二分词向量的余弦值,例如cos(T1,V1)等,将计算结果作为对话与每个知识标题的余弦相似度,即:
Ave(T1,Vk)=cos(T1,Vk),n为整数,且1≤k≤m
步骤S124,如果所述余弦相似度的最大值高于预设阈值,则所述对话为所述参数设置对话。
在步骤S124中,可对步骤S123中获取的对话与每个知识标题的余弦相似度进行冒泡比对,从所有的余弦相似度计算结果中获取最大值,并比较最大值是否高于预设阈值,如果高于预设阈值,则对话为参数设置对话。
本申请中的预设阈值为大于0且小于1的数值,其取值的大小影响判断对话是否为参数设置对话的精度,当取值过小时,可能会导致一些非参数设置对话的对话内容被判断成参数设置对话,当取值过大时,可能会导致一些参数设置对话被判断成非参数设置对话。此外,在实践本方法时,指令概念的不同、参数概念的不同或知识标题的不同都会影响预设阈值的合理取值,因此,对预设阈值的具体取值,本领域技术人员可在实践本方法时,根据实际情况选择,本实施例中不再赘述。
步骤S130,根据所述知识库,从所述参数设置对话中获取设置要素,所述设置要素包括指令类型、参数类型和参数值。
在步骤S122中,可以获取到对话中的指令概念和/或参数概念,其中指令概念可能是标准指令或同位指令,参数概念可能是标准参数或同位参数,根据获取到的指令概念和/或参数概念,在指令概念库中和参数概念库中可对应地确定指令概念所属的参数类型和/或参数概念所属的参数类型;设置要素中的参数值可以从参数设置对话中直接获取,也可通过引导用户的方式获取。
图6为本申请实施例提供的一种基于对话的参数设置方法步骤S130的流程图,在一种可选择的实施方式中,如图6所示,步骤S130包括以下步骤:
步骤S131,根据所述指令概念库和所述参数概念库,从所述参数设置对话中获取设置要素。
示例地,对于“修改同类结果的个数”来说,在步骤S122中,能够从对话中获取到指令概念“修改”,为标准指令,从指令概念库中可以确定其所属的指令类型为“修改”。并且,能够从对话中获取到参数概念“同类结果”,为同位参数,从参数概念库中可以确定其所述的参数类型为“推荐结果”。因此,“修改同类结果的个数”在步骤S131中能够获取到的设置要素为指令类型“修改”、参数类型“推荐结果”。
需要补充说明的是,用户输入的参数设置对话中,有时仅包含指令类型,不包含参数类型,例如,用户说“我要修改参数”,其中仅包含指令类型“修改”。此外,用户输入的参数设置对话中,有时会包含参数值,例如,用户说“将推荐结果的个数改成2个”其中包含指令类型“修改”、参数类型“推荐结果”、参数值为“2”,在本申请中,如果参数设置对话中包含参数值,直接获取该参数值,当指令类型、参数类型和参数值这三个设置要素都获取到时,直接跳转至步骤S140,执行步骤S140。
步骤S132,根据所述接口型知识库,分析所述设置要素是否缺失。
在对话系统的参数设置中,不同指令类型的参数设置需要的设置要素的种类会有所不同,例如:当指令类型为“开启”时,设置要素仅需指令类型和参数类型,如开启扬声器,其中,“扬声器”为参数类;当指令类型为“修改”时,设置要素需要包括指令类型、参数类型和参数值,如修改推荐问题数量为2,其中参数值为“2”,如果没有参数值,则对话系统就无法确定要将推荐问题修改为什么值,无法进行参数设置。
本申请针对不同指令类型的参数设置需要的设置要素的种类会有所不同的情况,根据接口型知识库,分析设置要素是否缺失。
在一种可选择的实施方式中,步骤S132可以包括以下步骤:
步骤S1321,获取所述参数设置对话对应的知识接口。
通过参数设置对话与知识标题的余弦相似度计算结果,或者,根据参数设置对话中的指令类型和参数类型,匹配知识接口中的指令类型接口和参数类型接口,可以确定参数设置对话对应的知识接口。示例地,如果参数设置对话为“修改同类结果的个数”,其中包含指令类型为“修改”,参数类型为“推荐结果”,根据余弦相似度计算结果,可以找到与该参数设置对话具有最高余弦相似度的知识标题,如“修改推荐结果的数量”,从而确定知识接口或者,根据指令类型“修改”和参数类型“推荐结果”,也能够匹配到知识标题为“修改推荐结果的数量”的知识接口。
需要补充说明的是,当参数设置对话中不包含参数类型时,参数设置对话根据指令类型可能会匹配到多个指令类型相同的知识接口,此时根据步骤S1322-S1324可获取参数类型,并进一步确定参数设置对话对应的知识接口。
步骤S1322,如果所述知识接口的所述参数类型接口包含必要标签,且所述设置要素中不包含所述参数类型,则所述参数类型缺失。
示例地,参数设置对话为“我要修改一下推荐结果的数量”,对应的知识接口为:
知识标题:修改推荐结果的数量。
其中,在该知识接口中,参数类型接口包含必要标签,参数设置对话中包括参数类型“推荐结果”,因此参数类型不缺失。
示例地,参数设置对话为“我要修改数量”,在步骤S1322中能够匹配到多个指令类型为“修改”的知识接口,在指令类型为“修改”的知识接口中,其参数类型接口中包含必要标签,而参数设置对话中不包含参数类型,因此参数类型缺失。
步骤S1323,如果所述知识接口的所述参数值接口包含必要标签,且所述设置要素中不包含所述参数值,则所述参数值缺失。
示例地,参数设置对话为“我要修改一下推荐结果的数量”,对应的知识接口为:
知识标题:修改推荐结果的数量。
其中,在该知识接口中,参数值接口包含必要标签,参数设置对话中不包括参数值,因此参数值缺失。
步骤S133,如果缺失,向用户发起获取缺失的所述设置要素的请求对话。
本申请在步骤S133中,在设置要素缺失的情况下,向用户发起获取缺失的设置要素的请求对话,以从用户的回答中补齐缺失的设置要素。
在一种可选择的实施方式中,步骤S133可以包括以下步骤:
步骤S1331,当所述参数类型缺失时,根据所述参数类型接口的所述第一请求信息,发起获取所述参数类型的第一请求对话。
示例地,参数设置对话为“我要修改数量”,由于缺少参数类型,在步骤S13331中,会调用第一请求信息向用户提问“你要修改的参数是什么”。
步骤S1332,当所述参数值缺失时,根据所述参数值接口的所述第二请求信息,发起获取所述参数值的第二请求对话。
示例地,参数设置对话为“我要修改一下推荐结果的数量”,由于缺少参数值,在步骤S13332中,会调用第二请求信息向用户提问“你要把推荐结果的数量修改为多少”。
步骤S134,从用户对所述请求对话的应答中获取缺失的所述设置要素。
示例地,当向用户发起的请求对话为“你要把推荐结果的数量修改为多少”时,用户应答的内容可能为“2个”,从中可获取缺失的参数值“2”。
需要说明的是,当从用户对第一请求会话的应答中获取了参数类型后,可进一步确定具体的知识接口,例如,对于参数设置对话“我要修改数量”如果从用户对第一请求会话的应答中获取到“推荐结果”,则根据“修改”和“推荐结果”可以匹配到知识标题为“修改推荐结果的数量”的知识接口,并根据是否缺少设置要素,确定是否继续下个用户发起请求对话。
步骤S140,根据所述设置要素,刷新所述对话系统的所述缓存数据。
当根据知识接口确定了实现参数设置的设置要素已经获取完整后,根据设置要素,刷新对话系统的缓存数据,由于本申请设置了对话系统在用户输入对话时,根据缓存数据设置对话系统的当前对话状态,当刷新了对话系统的缓存数据之后,如果用户再与对话系统产生对话,新的参数设置就会生效。
图7为本申请实施例提供的一种基于对话的参数设置方法步骤S140的流程图,在一种可选择的实施方式中,如图7所示,步骤S140包括以下步骤:
步骤S141,获取所述对话系统的参数设置接口。
对话系统的参数设置接口能够以特定的数据格式接收参数设置的设置要素,本申请获取参数接口,了解参数设置接口的类型以及参数设置接口所能接收的数据格式。
步骤S142,根据所述参数设置接口的类型,生成所述设置要素的字符转码。
示例地,设置要素中包含“修改”“推荐结果”“2”,其中,将“修改”转化为字符串类型的“update”,将“推荐结果”转化为字符串类型的“recommend”,如果获取到的参数值不是数字,例如“两个”,则还要将“两个”转换成数字类型的“2”。
步骤S143,通过所述参数设置接口,将所述字符转码写入所述缓存数据。
示例地,通过参数设置接口,将字符串类型和数字类型的设置要素写入缓存数据。
由以上技术方案可知,本申请提供了一种基于对话的参数设置方法,在用户输入对话时,根据缓存数据设置对话系统的当前对话状态,并能够从对话中获取参数设置对话,然后从参数设置对话中获取实现参数设置所需的设置要素,包括指令类型、参数类型和参数值,最后根据设置要素刷新对话系统的缓存数据,由于本申请在用户输入对话时,会根据缓存数据设置对话系统的当前对话状态,当刷新了缓存数据后,用户再一次与对话系统进行对话时,对话系统会根据最新的缓存数据设置对话系统的状态,从而实现了对话系统参数的实时设置。
本申请还提供了一种基于对话的参数设置装置,图8为本申请实施例提供的一种基于对话的参数设置装置的框图,如图8所示,所述装置包括:
初始化模块210,用于当用户输入对话时,根据缓存数据设置对话系统的当前对话状态。
第一获取模块220,用于根据所述知识库,从所述对话中获取参数设置对话。
第二获取模块230,用于根据所述知识库,从所述参数设置对话中获取设置要素,所述设置要素包括参数类型、指令类型和参数值。
刷新模块240,用于根据所述设置要素,刷新所述对话系统的所述缓存数据。
由以上技术方案可知,本申请提供了一种基于对话的参数设置装置,在用户输入对话时,根据缓存数据设置对话系统的当前对话状态,并能够从对话中获取参数设置对话,然后从参数设置对话中获取实现参数设置所需的设置要素,包括指令类型、参数类型和参数值,最后根据设置要素刷新对话系统的缓存数据,由于本申请在用户输入对话时,会根据缓存数据设置对话系统的当前对话状态,当刷新了缓存数据后,用户再一次与对话系统进行对话时,对话系统会根据最新的缓存数据设置对话系统的状态,从而实现了对话系统参数的实时设置。
本申请可用于配备了对话系统的人工智能机器人中,示例地,包括:会话机器人,如幼教机器人、服务机器人等;专用机器人,如扫地机器人、保姆机器人等;工业机器人,如机械手臂、无人运输设备等。
本申请还可用于众多通用或专用的计算系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、可穿戴设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的消费电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。
本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求指出。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。