发明内容
针对现有技术中的上述问题,本发明提供了一种基于APP生态系统进行语音交互的方法、装置。
本发明提供了一种APP生态图生成的方法,包括以下步骤
步骤11,监测用户与APP之间的交互;
步骤12,获取并存储连续使用的APP名称,以及使用APP的顺序;
其中,连续使用APP是指当前处于前台的APP切换到后台运行或者关闭的时间与另一APP打开或切换到前台运行的时间间隔小于预定连续时间间隔;
步骤13,判断连续使用的APP之间是否存在信息传递或者信息传递的需求;若是,则执行步骤14;
步骤14,根据用户使用APP的顺序,和/或APP之间的调用关系,建立APP之间的有向图;
其中,APP之间的有向图的节点为APP,有向边表示用户使用APP的顺序或者APP之间的调用顺序,有向边的箭头指向为后使用或调用的APP;
步骤16,根据APP之间的有向图,生成APP生态图;
其中,APP生态图是根据APP之间的交互性建立的多个APP之间的有向图。
优选的,步骤13包括:
实时监测用户与APP之间交互,
判断APP之间是否存在调用关系,若是,则APP之间存在信息传递或者信息传递的需求,
或者,判断连续使用的APP是否具有相同的槽位内容,若是,确定所述APP之间存在信息传递或者信息传递的需求。
优选的,若槽位内容不同,判断是否存在相同或属性相同的槽位,若是,则确定存在信息传递或者信息传递的需求。
优选的,在步骤13中,若判断连续使用的APP之间不存在信息传递或者信息传递的需求;执行步骤15;
步骤15,删除存储的不存在信息传递或者信息传递的需求的APP对。
优选的,为有向边设置权重系数,权重系数的大小表示其连接的两个APP之间信息传递的概率的大小。
本发明还提供了一种APP生态系统生成装置,用于初始化APP生态图所述装置包括
检测模块,用于监测用户与APP之间的交互;
生成模块,用于获取并存储连续使用的APP名称,以及使用APP的顺序;
其中,所述连续使用的APP是指在前处于前台的APP切换到后台运行或者关闭的时间与另一APP打开或切换到前台运行的时间间隔小于预定连续时间间隔;
判断模块,用于判断连续使用的APP之间是否存在信息传递或者信息传递的需求;若是,触发生成模块建立APP之间的有向图;
生成模块,用于根据用户使用APP的顺序,和/或APP之间的调用关系,建立APP之间的有向图;
其中,APP之间的有向图包含节点和有向边,其中所述节点表示APP,所述有向边表示用户使用APP的顺序或者APP之间的调用顺序,有向边的箭头指向为后使用或调用的APP;
生成模块,还用于根据APP之间的有向图,生成APP生态图;
其中,APP生态图是根据APP之间的交互性建立的多个APP之间的有向图。
优选的,检测模块具体用于实时监测用户与APP之间交互,
判断模块具体用于判断APP之间是否存在调用关系,若是,则APP之间存在信息传递或者信息传递的需求,
或者,判断连续使用的APP是否具有相同的槽位内容,若是,确定所述APP之间存在信息传递或者信息传递的需求。
优选的,判断模块还用于确定槽位内容不同时,判断是否存在相同或属性相同的槽位,若是,则确定存在信息传递或者信息传递的需求。
优选的,判断模块若判断连续使用的APP之间不存在信息传递或者信息传递的需求,则触发生成模块删除存储的不存在信息传递或者信息传递的需求的APP对;
生成模块,用于根据判断模块的上述触发消息删除存储的不存在信息传递或者信息传递的需求的APP对。
优选的,生成模块还用于为有向边设置权重系数,权重系数的大小表示其连接的两个APP之间信息传递的概率的大小。
本发明还提供了一种生成APP生态系统的方法,包括以下步骤
步骤21,检测语音助手的行为;
步骤22,获取并存储语音助手执行任务时连续调用的APP名称,以及调用APP的顺序;
步骤23,判断连续调用的APP之间是否存在信息传递或者信息传递的需求;若是,则执行步骤24;
步骤24,根据连续调用APP的顺序,建立APP之间的有向图;执行步骤26;
步骤26,根据APP之间的有向图,生成APP生态图;
其中,在步骤24中还包括以下步骤:
若APP之间存在调用关系,则获取被调用的APP利用的在先使用的APP的槽位,将该槽位设置为有向边的槽位;
若APP之间存在填充相同槽位内容的槽位,则将在先填充该相同槽位内容的槽位设置为有向边的槽位,并且将有向边的方向确定为从在先填充该相同槽位内容的APP指向在后填充该相同槽位内容的APP。
优选的,步骤24还包括以下步骤:
步骤241,判断APP之间是否存在有向图,若存在有向图,执行步骤242;若不存在,执行步骤245;
步骤242,判断要建立的有向边与已存在的有向边方向是否相同,若方向相同,执行步骤243,若方向不同,执行步骤244;
步骤243,增加与所述方向同向的有向边的权重系数;
步骤244,建立具有新方向的有向边;
步骤245,建立APP之间的有向边。
优选的,在步骤21之前,还包括以下步骤
步骤01,获取终端安装的APP名称;
步骤02,将APP按功能分类,将相同或相似功能的APP分组为一个簇,形成一个或多个APP簇;其中APP簇中有一个或多个APP。
优选的,在步骤21之前,执行以下步骤
步骤103,判断终端是否具有APP生态系统,若无,执行步骤21;若有,则结束。
本发明还提供了一种APP生态系统生成装置,用于构建APP生态系统,其特征在于,该装置包括
监测模块,用于检测语音助手的行为;
生成模块,用于获取并存储语音助手执行任务时连续调用的APP名称,以及调用APP的顺序;
判断模块,用于判断连续调用的APP之间是否存在信息传递或者信息传递的需求;若是,触发生成模块建立APP之间的有向图;
生成模块,用于根据连续调用APP的顺序,建立APP之间的有向图;
生成模块,还用于根据APP之间的有向图,生成APP生态图;
生成模块还用于:
若APP之间存在调用关系,则获取被调用的APP利用的在先使用的APP的槽位,将该槽位设置为有向边的槽位;
若APP之间存在填充相同槽位内容的槽位,则将在先填充该相同槽位内容的槽位设置为有向边的槽位,并且将有向边的方向确定为从在先填充该相同槽位内容的APP指向在后填充该相同槽位内容的APP。
优选的,生成模块建立APP之间的有向图前,还执行以下步骤:
步骤241,判断APP之间是否存在有向图,若存在有向图,执行步骤242;若不存在,执行步骤245;
步骤242,判断要建立的有向边与已存在的有向边方向是否相同,若方向相同,执行步骤243,若方向不同,执行步骤244;
步骤243,增加与所述方向同向的有向边的权重系数;
步骤244,建立具有新方向的有向边;
步骤245,建立APP之间的有向边。
优选的,检测模块执行其检测功能之前,生成模块还用于执行以下步骤:
步骤01,获取终端安装的APP名称;
步骤02,将APP按功能分类,将相同或相似功能的APP分组为一个簇,形成一个或多个APP簇;其中APP簇中包含一个或多个APP。
优选的,在检测模块执行检测功能之前,判断终端是否具有APP生态系统,若无,执行检测功能。
本发明还提供了一种槽位信息关联关系建立的方法,包括以下步骤:
步骤201,APP生态系统生成应用执行检测功能;
步骤202,检测用户与所有被使用的APP之间的交互;
步骤203,获取并存储APP执行任务时填充的槽位、槽位内容,以及填充槽位内容的时间;
步骤204,判断用户是否还存在与APP之间的交互,若是,执行步骤202;若否,执行步骤205;
步骤205,判断是否存储有多个APP执行任务时填充的槽位及填充的槽位内容信息,若否,执行步骤206;若是,则执行步骤207;
步骤206,关闭或者休眠APP生态系统生成应用。
步骤207,判断APP之间是否存在信息传递或信息传递的需求,若是,则将存在信息传递或信息传递需求的槽位作为所述APP之间的公共槽位;若否,则结束。
优选的,步骤207具体包括以下步骤
步骤2071,判断存储的任意两个或多个APP填充槽位内容的时间间隔是否小于预定连续时间间隔,若是,执行步骤2072,若否,执行步骤2074;
步骤2072,将满足该条件的APP分为一组;基于存储的信息判断每组中任意两个或多个APP是否填充相同的槽位内容;若是,执行步骤2073;
步骤2073,将在先填充相同槽位内容的槽位作为公共槽位;
步骤2074,判断存储的信息中槽位内容填充时间与当前时间间隔是否大于等于删除时间,若是,则删除该填充时间对应的条目内容,若否,则结束;
其中删除时间大于预定连续时间间隔。
优选的,还包括以下步骤
为公共槽位设置权重系数wij,表示该公共槽位将APPi的信息传递至APPj的权重系数,类似的wji,表示该公共槽位将APPj的信息传递至APPi的权重系数。
优选的,还包括
对应同一公共槽位的槽位内容以矩阵方式存储。
本发明还提供了一种APP生态系统生成装置,用于建立槽位信息关联关系,包括
检测模块,用于执行检测功能;
检测模块还用于检测用户与所有被使用的APP之间的交互;
生成模块,用于获取并存储APP执行任务时填充的槽位、槽位内容,以及填充槽位内容的时间;
判断模块,用于判断用户是否还存在与APP之间的交互,若是,则触发检测模块检测用户与所有被使用的APP之间的交互;若否,判断是否存储有多个APP执行任务时填充的槽位及填充的槽位内容信息,若否,触发关闭模块将该装置关闭或者休眠;若是,判断APP之间是否存在信息传递或信息传递的需求,若是,则触发生成模块将存在信息传递或信息传递需求的槽位作为所述APP之间的公共槽位;
生成模块还用于判断存储模块是否存储有多个APP执行任务时填充的槽位及填充的槽位内容信息,若是,则将存在信息传递或信息传递需求的槽位作为所述APP之间的公共槽位。
优选的,判断模块判断APP之间是否存在信息传递或信息传递的需求包括以下步骤:
步骤2071,判断存储的任意两个或多个APP填充槽位内容的时间间隔是否小于预定连续时间间隔,若是,执行步骤2072,若否,执行步骤2074;
步骤2072,将满足该条件的APP分为一组;基于存储的信息判断每组中任意两个或多个APP是否填充相同的槽位内容;若是,执行步骤2073;
步骤2073,触发生成模块将在先填充相同槽位内容的槽位作为公共槽位;
步骤2074,判断存储的信息中槽位内容填充时间与当前时间间隔是否大于等于删除时间,若是,触发生成模块删除该填充时间对应的条目内容,若否,则结束;
其中删除时间大于预定连续时间间隔。
优选的,生成模块,还用于为公共槽位设置权重系数wij,表示该公共槽位将APPi的信息传递至APPj的权重系数,类似的wji,表示该公共槽位将APPj的信息传递至APPi的权重系数。
优选的,生成模块将对应同一公共槽位的槽位内容以矩阵方式存储。
本发明还提供了一种通用APP生态图的生成与共享方法,
步骤301,获取APP生态图;
步骤302,对APP生态图分类,形成APP生态图簇;
步骤303,对APP生态图簇中的APP生态图进行训练,形成对应用户属性的通用APP生态图;
其中,步骤303包括以下步骤:
步骤3031,获取簇内多个APP生态图包括的APP;
步骤3032,为功能相同或可以互相替代的多个APP添加相同的标签;
步骤3033,对多个APP生态图进行融合,形成通用APP生态图;
步骤3035,存储通用APP生态图。
优选的,步骤302具体为:
根据APP生态图的用户的属性进行分类,将用户属性相同的APP生态图分为一组,成为APP生态图簇。
优选的,步骤3033之后还包括以下步骤
步骤3034-1,将融合后的APP生态图中有向边的权重系数低于最低权重系数的有向边删除;
步骤3034-2,判断是否存在孤立的APP或APP组,若是,则删除该APP或APP组,生成精简通用APP生态图;
步骤3034-3,存储该精简APP生态图。
优选的,所述方法还包括以下步骤
步骤051,接收终端发送的APP生态图获取请求,
步骤052,基于该请求携带的用户的属性信息,确定满足用户属性要求的通用APP生态图;
步骤054,将响应消息发送给用户的终端,该响应消息携带满足用户属性要求的通用APP生态图的。
优选的,在步骤052中,当用户的属性信息包括多个用户属性时,优先选择满足最多用户属性的通用APP生态图作为满足用户属性要求的APP生态图。
本发明还提供了一种通用APP生态系统生成装置,用于生成与共享通用APP生态图,
获取模块,用于获取APP生态图;
分类模块,用于对APP生态图分类,形成APP生态图簇;
训练模块,用于对APP生态图簇中的APP生态图进行训练,形成对应用户属性的通用APP生态图;
训练模块具体用于执行以下步骤:
步骤3031,获取簇内多个APP生态图包括的APP;
步骤3032,为功能相同或可以互相替代的多个APP添加相同的标签;
步骤3033,对多个APP生态图进行融合,形成通用APP生态图;
步骤3035,将通用APP生态图存储于存储模块。
优选的,分类模块,具体用于根据APP生态图的用户的属性进行分类,将用户属性相同的APP生态图分为一组,成为APP生态图簇。
优选的,步骤3033之后还包括以下步骤
步骤3034-1,将融合后的APP生态图中有向边的权重系数低于最低权重系数的有向边删除;
步骤3034-2,判断是否存在孤立的APP或APP组,若是,则删除该APP或APP组,生成精简通用APP生态图;
步骤3034-3,存储该精简APP生态图。
优选的,获取模块,还用于接收终端发送的APP生态图获取请求,
训练模块,用于基于该请求携带的用户的属性信息,确定满足用户属性要求的通用APP生态图;
获取模块,用于将响应消息发送给用户的终端,该响应消息携带满足用户属性要求的通用APP生态图的。
优选的,训练模块用于当用户的属性信息包括多个用户属性时,优先选择满足最多用户属性的通用APP生态图作为满足用户属性要求的APP生态图。
本发明还提供了一种语音交互的方法,其特征在于,包括以下步骤
步骤501,获取用户输入的语音命令;
步骤502,判断是否可以准确执行用户的语音命令;若否,获取APP执行语音命令未填充的槽位,执行步骤503;
步骤503,调用APP生态图,获取与执行语音命令的APP具有有向边且有向边方向指向执行语音命令的APP的候选APP;
步骤504,从候选APP中提取用于填充未填充的槽位的内容,将其填充至APP对应的槽位。
优选的,步骤503具体包括:
判断执行语音命令的APP在APP生态图中是否具有与其关联且有向边方向指向执行语音命令的APP的有向边,若具有,则进一步提取与执行语音命令的APP具有有向边且有向边方向指向执行语音命令的APP的候选APP。
优选的,在步骤503中还包括以下步骤,
判断提取的APP是否具有所述未填充内容的槽位或与该槽位具有相同属性的槽位,若具有,则将该提取的APP作为初选APP,该初选APP为候选APP。
优选的,步骤507,判断上述槽位填充是否准确,若是,则执行步骤508,若否,执行步骤509;
步骤508,增加APP生态图中所述执行命令的APP与候选APP之间的有向边的权重系数;
步骤509,获取用户纠正的槽位内容,判断所述纠正的槽位内容是否与APP生态图中的APP填充的槽位内容相同,若相同,则当执行命令的APP与所述槽位内容相同的APP之间存在有向边,则增加该有向边的权重,若不存在有向边,则建立有向边。
本发明还提供了一种用于语音交互的装置,其特征在于,该装置包括
收发模块,用于获取用户输入的语音命令;
执行模块,用于执行以下步骤:
步骤502,判断是否可以准确执行用户的语音命令;若否,获取APP执行语音命令未填充的槽位,执行步骤503;
步骤503,调用APP生态图,获取与执行语音命令的APP具有有向边且有向边方向指向执行语音命令的APP的候选APP;
步骤504,从候选APP中提取用于填充未填充的槽位的内容,将其填充至APP对应的槽位。
优选的,步骤503具体包括:
判断执行语音命令的APP在APP生态图中是否具有与其关联且有向边方向指向执行语音命令的APP的有向边,若具有,则进一步提取与执行语音命令的APP具有有向边且有向边方向指向执行语音命令的APP的候选APP。
优选的,在步骤503中还包括以下步骤,
判断提取的APP是否具有所述未填充内容的槽位或与该槽位具有相同属性的槽位,若具有,则将该提取的APP作为初选APP,该初选APP为候选APP。
优选的,步骤507,判断上述槽位填充是否准确,若是,则执行步骤508,若否,执行步骤509;
步骤508,增加APP生态图中所述执行命令的APP与候选APP之间的有向边的权重系数;
步骤509,获取用户纠正的槽位内容,判断所述纠正的槽位内容是否与APP生态图中的APP填充的槽位内容相同,若相同,则当执行命令的APP与所述槽位内容相同的APP之间存在有向边,则增加该有向边的权重,若不存在有向边,则建立有向边。
本发明提供了一种语音交互的方法,包括以下步骤
步骤601,获取用户输入的第一语音命令;
步骤602,根据第一语音命令填充APP对应的槽位内容;
在该步骤中,APP解析语音命令,提取关键信息进行槽位的填充;
步骤603,调用APP生态图,获取与APP具有有向边,且有向边的箭尾指向该APP的另一个或多个APP;
步骤604,将填充的槽位及槽位内容推送至所述另一个或多个APP;
步骤605,第二APP检测对第二APP的使用;判断用户使用APP时,执行步骤606;
步骤606,获取用户输入的第二语音命令;
步骤607,判断执行第二语音命令所需的槽位是否全部填充内容,若否,执行步骤608;
步骤608,调用推送的槽位及槽位内容,判断推送的槽位内容是否可以填充APP中执行第二语音命令所需的槽位,若是,将所述槽位内容填充槽位。
优选的,步骤608具体包括以下步骤:
步骤081,获取与第二语音命令相关的任务所需填充的槽位中未填充的槽位;
步骤082,判断推送的槽位是否与所需填充的槽位相同或属性相同;若是,执行步骤083;
步骤083,利用推送的槽位内容填充未填充的槽位;
具体的,对于每个未填充的槽位,判断是否具有多个推送的槽位内容可以用于填充该槽位,若否,将对应的槽位内容填充至对应的未填充的槽位;若是,执行步骤084;
步骤084,对槽位内容进行筛选,利用选择的槽位内容对未填充的槽位进行内容填充。
优选的,步骤608还包括以下步骤
判断是否可以执行语音命令,若可以执行语音命令,执行步骤610,若不能执行语音命令,执行步骤609;若不能填充,执行步骤609;
步骤609,与用户进行多轮对话,获取需要填充的槽位对应的内容;执行步骤610;
步骤610,执行语音命令对应的任务。
优选的,步骤084之后执行步骤085,步骤085,判断是否可以执行用户的第二语音命令;若是,执行步骤610;若否,执行步骤609。。
优选的,在步骤610之后,该方法还包括以下步骤:
步骤507,判断上述槽位填充是否准确,若是,则执行步骤508,若否,执行步骤509;
步骤508,增加APP生态图中所述执行命令的APP与候选APP之间的有向边的权重系数;
步骤509,获取用户纠正的槽位内容,判断所述纠正的槽位内容是否与APP生态图中的APP填充的槽位内容相同,若相同,则当执行命令的APP与所述槽位内容相同的APP之间存在有向边,则增加该有向边的权重,若不存在有向边,则建立有向边。
本发明还提供了一种用于语音交互的装置,该装置包括
收发模块,用于获取用户输入的第一语音命令;
执行模块,用于执行以下步骤:
步骤602,根据第一语音命令填充APP对应的槽位内容;
在该步骤中,执行模块解析语音命令,提取关键信息进行槽位的填充;
步骤603,调用APP生态图,获取与APP具有有向边,且有向边的箭尾指向该APP的另一个或多个APP;
步骤604,将填充的槽位及槽位内容推送至所述另一个或多个APP;
检测模块,用于检测用户对第二APP的使用;判断用户使用第二APP时,触发收发模块获取用户输入语音命令;
收发模块,还用于获取用户输入的第二语音命令;
执行模块,还用于执行以下步骤:
步骤607,判断执行第二语音命令所需的槽位是否全部填充内容,若否,执行步骤608;
步骤608,调用推送的槽位及槽位内容,判断推送的槽位内容是否可以填充APP中执行第二语音命令所需的槽位,若是,将所述槽位内容填充槽位。
优选的,步骤608具体包括以下步骤:
步骤081,获取与第二语音命令相关的任务所需填充的槽位中未填充的槽位;
步骤082,判断推送的槽位是否与所需填充的槽位相同或属性相同;若是,执行步骤083;
步骤083,利用推送的槽位内容填充未填充的槽位;
具体的,对于每个未填充的槽位,判断是否具有多个推送的槽位内容可以用于填充该槽位,若否,将对应的槽位内容填充至对应的未填充的槽位;若是,执行步骤084;
步骤084,对槽位内容进行筛选,利用选择的槽位内容对未填充的槽位进行内容填充。
优选的,步骤608还包括以下步骤
判断是否可以执行语音命令,若可以执行语音命令,执行步骤610,若不能执行语音命令,执行步骤609;若不能填充,执行步骤609;
步骤609,与用户进行多轮对话,获取需要填充的槽位对应的内容;执行步骤610;
步骤610,执行语音命令对应的任务。
优选的,步骤084之后执行步骤085,步骤085,判断是否可以执行用户的第二语音命令;若是,执行步骤610;若否,执行步骤609。。
优选的,在步骤610之后,执行模块还用于执行以下步骤:
步骤507,判断上述槽位填充是否准确,若是,则执行步骤508,若否,执行步骤509;
步骤508,增加APP生态图中所述执行命令的APP与候选APP之间的有向边的权重系数;
步骤509,获取用户纠正的槽位内容,判断所述纠正的槽位内容是否与APP生态图中的APP填充的槽位内容相同,若相同,则当执行命令的APP与所述槽位内容相同的APP之间存在有向边,则增加该有向边的权重,若不存在有向边,则建立有向边。
本发明提供了一种语音交互的方法,包括以下步骤
步骤701,获取用户输入的第一语音命令;
步骤702,根据第一语音命令填充第一APP执行语音命令对应的第一任务时相应的槽位以及公共槽位;
步骤703,获取用户输入的第二语音命令;
步骤704,根据第二语音命令填充执行该语音命令对应的第二任务的APP的槽位;
步骤705,判断是否存在未填充的执行第二任务必须填充的一个或多个槽位,若是,执行步骤706;
706,查询槽位信息的关联关系,判断该必须填充的一个或多个槽位是否可以利用公共槽位内容矩阵,若是,利用公共槽位内容填充该必须填充的槽位。
优选的,步骤706具体为,
步骤7061,第二APP判断其是否具有与该必须填充的槽位相同或者属性相同的一个或多个公共槽位,若否,执行步骤7062;若是,将所述公共槽位作为待选公共槽位,并执行步骤7063;
步骤7062,第二APP判断其所属的簇中其他APP是否具有与该必须填充的槽位相同或属性相同的一个或多个公共槽位,若是,将所述公共槽位作为待选公共槽位;
步骤7063,对所述待选公共槽位的槽位内容矩阵进行预处理,将填充时间满足删除时间对应的矩阵的行删除,筛选槽位内容矩阵不为空矩阵的待选公共槽位为候选公共槽位;
步骤7064,从候选公共槽位的槽位内容矩阵中选择满足条件的槽位内容填充该必须填充的槽位。
优选的,步骤7065具体为,确定是否可以基于用户与APP的交互过程得出用户意图填充的槽位内容是与哪个特征相关的槽位内容,若可以确定,则优先选择该特征对应的槽位内容填充待填充的槽位。
优选的,步骤7065具体为,基于一定规则从候选公共槽位的槽位内容矩阵中选择满足条件的槽位内容填充该必须填充的槽位。
本发明提供了一种用于语音交互的装置,其特征在于
收发模块,用于获取用户输入的第一语音命令;
执行模块,用于根据第一语音命令填充第一APP执行语音命令对应的第一任务时相应的槽位以及公共槽位;
收发模块,还用于获取用户输入的第二语音命令;
执行模块还用于执行以下步骤:
步骤704,根据第二语音命令填充执行该语音命令对应的第二任务的APP的槽位;
步骤705,判断是否存在未填充的执行第二任务必须填充的一个或多个槽位,若是,执行步骤706;
706,查询槽位信息的关联关系,判断该必须填充的一个或多个槽位是否可以利用公共槽位内容矩阵,若是,利用公共槽位内容填充该必须填充的槽位。
优选的,步骤706具体为,
步骤7061,判断执行第二任务的APP是否具有与该必须填充的槽位相同或者属性相同的一个或多个公共槽位,若否,执行步骤7062;若是,将所述公共槽位作为待选公共槽位,并执行步骤7063;
步骤7062,判断执行第二任务的APP所属的簇中其他APP是否具有与该必须填充的槽位相同或属性相同的一个或多个公共槽位,若是,将所述公共槽位作为待选公共槽位;
步骤7063,对所述待选公共槽位的槽位内容矩阵进行预处理,将填充时间满足删除时间对应的矩阵的行删除,筛选槽位内容矩阵不为空矩阵的待选公共槽位为候选公共槽位;
步骤7064,从候选公共槽位的槽位内容矩阵中选择满足条件的槽位内容填充该必须填充的槽位。
优选的,步骤7065具体为,确定是否可以基于用户与APP的交互过程得出用户意图填充的槽位内容是与哪个特征相关的槽位内容,若可以确定,则优先选择该特征对应的槽位内容填充待填充的槽位。
优选的,步骤7065具体为,基于一定规则从候选公共槽位的槽位内容矩阵中选择满足条件的槽位内容填充该必须填充的槽位。
本发明提供一种语音交互的方法,包括以下步骤
步骤801,监测用户对APP的使用;
步骤806,获取用户的语音命令;
步骤807,判断是否可以根据用户的语音命令执行对应的任务,若否,执行步骤812;
步骤812,查询APP生态系统,识别与APP建立有向图、有向边箭头指向该APP、并且有向边的槽位与该未填充的槽位相同或属性相同的一个或多个第二APP;
步骤813,基于识别的一个或多个APP填充APP中未填充的槽位;
步骤813具体包括:
获取所述一个或多个APP与该APP之间有向边的槽位的标签信息,基于标签信息确定信息源APP,并从信息源APP获取与该有向边槽位相同的槽位的内容,并填充至APP未填充的对应槽位中;
其中,该标签指示该有向边的槽位对应的槽位内容更新时间。
优选的,在步骤801之后,步骤806之前,还包括以下步骤
步骤802,判断终端是否存在对应的APP生态系统若是,则执行步骤806。
优选的,在步骤807中,若判断结果为是,则执行步骤808;
步骤808,执行该任务,并且根据APP生态系统获取箭尾指向该APP的有向边的槽位与执行该任务填充的槽位相同或属性相同的槽位;执行步骤809;
步骤809,为该有向边的槽位添加标签,该标签指示该有向边的槽位对应的槽位内容更新时间。
本发明提供一种用于语音交互的装置,其特征在于
检测模块,用于监测用户对APP的使用;
收发模块,用于获取用户的语音命令;
执行模块,用于执行以下步骤:
步骤807,判断是否可以根据用户的语音命令执行对应的任务,若否,执行步骤812;
步骤812,查询APP生态系统,识别与APP建立有向图、有向边箭头指向该APP、并且有向边的槽位与该未填充的槽位相同或属性相同的一个或多个第二APP;
步骤813,基于识别的一个或多个APP填充APP中未填充的槽位;
步骤813具体包括:
获取所述一个或多个APP与该APP之间有向边的槽位的标签信息,基于标签信息确定信息源APP,并从信息源APP获取与该有向边槽位相同的槽位的内容,并填充至APP未填充的对应槽位中;
其中,该标签指示该有向边的槽位对应的槽位内容更新时间。
优选的,判断模块,用于判断终端是否存在对应的APP生态系统。
优选的,在步骤807中,若判断结果为是,则执行步骤808;
步骤808,执行该任务,并且根据APP生态系统获取箭尾指向该APP的有向边的槽位与执行该任务填充的槽位相同或属性相同的槽位;执行步骤809;
步骤809,为该有向边的槽位添加标签,该标签指示该有向边的槽位对应的槽位内容更新时间。
其中,APP生态系统包括APP生态图以及槽位信息的关联关系;
APP生态图是根据APP之间的交互性建立的多个APP之间的有向图;
APP之间的有向图包括节点和有向边,其中所述节点表示APP,所述有向边表示用户使用APP的顺序或者APP之间的调用顺序,有向边的箭头指向为后使用或调用的APP;
槽位信息的关联关系是指根据APP生态图或者根据APP之间的信息传递或信息传递需求建立的多个APP之间存在信息传递或信息传递需求的相同或属性相同的槽位的关联关系;
有向边的槽位是指有向边连接的两个APP都具有的相同的或相同属性的槽位。
本发明提供一种计算机设备,其特征在于,所述计算机设备包括处理器和存储器,所述存储器中存储有可在处理器上运行的计算机程序,所述计算机程序在被所述处理器执行时实现如上所述的方法。
本发明提供一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有可在处理器上运行的计算机程序、所述计算机程序在被执行时实现如上所述的方法。
本发明提供一种语音助手系统,其特征在于,包括如上任一项所述的装置。
本发明提供一种装置,其特征在于,包括如上任一项所述的装置,或包括如上所述的一种语音助手系统。
通过本发明的方法、装置,能够在终端不具有实时监控器的情况下有针对性的进行APP之间的信息传递,定制用户专属的APP信息传递方式,进一步的提高语音交互的智能性,提高人机交互效率,并且可以降低终端功耗消耗,提升用户的体验。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
本申请中描述了一个或多个不同的发明。对于本申请描述的一个或多个发明,其中包括多个实施例,各个实施例并非进行限制,其可应用于一个或多个发明,可以利用各个实施例修改或改变一个或多个发明。本申请既不是一个或多个发明的所有实施例的文字描述,也不是必须要存在于所有实施例中的一个或多个发明的特征列示。本申请的章节标题是为了便于理解发明,并非限制本发明。此外,尽管按照顺序次序描述本发明的方法步骤,但是可以以其他可实现本发明的顺序替代。对于一些步骤,其也可以是同时执行。
本文所描述的方法可以在硬件或软件与硬件的组合上实施,可以由处理器调用存储在存储器上的计算机程序而实现,该程序可以为语音助手或其他应用程序可以调用的插件,也可以为独立的应用程序,也可以为一表单用于存储关键信息。
同样的,本文所描述的方法可以全部在一个设备中实现,也可以由多个设备交互实现,例如由终端侧和服务器侧交互实现。如图1所示,包括运行于终端侧的部分软件,例如多个APP,语音助手,APP生态系统生成应用等,以及运行于服务器侧的部分软件,如通用APP生态系统生成应用,其中服务器可以为云服务器,其接收终端的消息,并响应终端的消息,其中服务器的数量可以为一个或多个。
在一个实施方式中,不同的终端之间可以通过网络进行信息交互,在实现本文所述的方法的软件的触发下,不同终端运行的所述软件之间可以进行通信,实现信息的交互。
此外,服务器可以根据需要从外部获取信息,该信息可以来自于其他服务器,或者终端。
在另一个实施方式中,本文所描述的方法产生的数据可以存储在终端侧,也可以一部分存储在终端侧,一部分存储在服务器侧,或者数据全部存储于服务器侧。
基本概念
本文首次提出了多个概念,包括APP生态系统,APP生态图、槽位信息的关联关系、APP有向图、有向边的槽位。下面先对所述的几个概念进行解释,以利于对本文的理解。
图2为APP生态系统的一个示例,APP生态系统包括APP生态图以及槽位信息的关联关系。APP生态图为APP生态系统的控制面,槽位和/或槽位内容为APP生态系统的数据面,其中槽位与APP之间的关联关系为控制面和数据面的连接纽带。
APP生态图是根据APP之间的交互性建立的APP之间的有向图,是各个APP之间建立的关联关系,该关联关系是用户在使用多个APP实现特定的任务时,为存在信息传递需求的多个APP之间建立的连接关系。
例如,用户要制定旅游计划,其需要确定旅游目的地、交通方式、住宿、景点、天气、饮食等信息,在使用如携程、京东、大众点评、墨迹天气等APP时存在信息传递的需求,如地点、日期在各个APP是一致的,因此在上述APP之间建立关联关系,形成APP生态图,从而便于用户与各个APP之间的语音交互。
APP有向图包含节点和有向边,其中所述节点表示APP,所述有向边表示用户使用APP的顺序或者APP之间的调用顺序,有向边的箭头指向为后使用或被调用的APP,例如APP之间的有向图APPi——>APPj,有向边的箭头方向表示用户使用APPi后使用APPj或者APPi调用APPj。
槽位信息的关联关系是指根据APP生态图或者根据APP之间的信息传递或信息传递需求建立的多个APP之间存在信息传递或信息传递需求的相同或属性相同的槽位的关联关系。
槽位信息的关联关系包括槽位,以及槽位与APP之间的关联关系,进一步的,可以包括对应的槽位内容(图中未示出)。
槽位包括与之对应的槽位内容、槽位属性,槽位内容为槽位填充的内容,槽位属性为槽位所述的类别,例如日期槽位的属性为时间,出行地槽位的属性为地址。
有向边的槽位是指有向边连接的两个APP都具有的相同的或相同属性的槽位,且对于该槽位,所述APP之间存在信息传递或信息传递需求。如图所示,槽位1为APP1与APP2,以及APP2与APP3之间有向边的槽位。
其中,APP生态系统的初始化包括APP生态图的初始化以及建立槽位信息的关联关系。
通过利用该APP生态系统,可以有效的实现APP之间信息的传递与调用,降低终端的功耗。
下面对本文提到的方法进行详细描述。
初始化APP生态图:
步骤105,初始化APP生态图;
其中,初始化APP生态图具体包括以下步骤,如图3所示:
步骤11,监测用户与APP之间的交互;
具体的,在该步骤中,APP生态系统生成应用实时监测用户与APP之间的交互,记录用户与APP之间的交互过程;其中,该交互可以是语音交互,也可以是其他交互方式,例如文字输入。记录的信息包括用户使用APP的时间,用户使用APP执行任务时对应槽位填充的内容以及填充槽位内容时对应的时间信息,例如用户在上午8:00使用携程查询10.1在上海的住宿,在8:20使用携程查询10.1在南京的住宿。为了便于后续使用存储的信息,记录用户使用APP执行任务时槽位填充的内容,以及填充槽位的内容对应的时间信息,例如,以上述使用携程APP为例,如下表所示方式存储使用APP时的信息。
表1用户与APP交互执行的功能的记录表
或者,
以预定时间间隔获取用户使用终端的日志,该日志中包括用户与各个APP的交互信息,从日志中获取用户与APP交互的记录,其中,该记录中包括用户与APP交互的时间信息。例如,日志中包括用户在8:00使用携程,8:10使用墨迹天气,8:12使用百度地图,从该日志中提取上述信息,并进行存储,存储方式如下表所示。
表2日志信息存储
时间 |
APP |
8:00 |
携程 |
8:10 |
墨迹天气 |
8:12 |
百度地图 |
步骤12,获取并存储连续使用的APP名称,以及使用APP的顺序;
在本文中,使用的APP包括以下含义:
1)用户正在使用的APP,即处于前台的被用户使用或者处于空闲状态的APP;
2)从后台运行状态切换到前台的APP。
连续使用APP是指在前处于前台的APP切换到后台运行或者关闭的时间与另一APP打开或切换到前台运行的时间间隔小于预定连续时间间隔。两个APP的状态切换包括由于APP之间的调用导致的,如点击微信消息中的地图信息,可以直接调用百度地图;或者用户执行特定任务时,通过多个APP共同完成,用户手动切换APP导致的,例如用户要到绿茶餐厅吃饭,通过大众点评查看餐厅信息,随后关闭大众点评,打开百度地图查询到该餐厅的路线。在前台运行的程序从微信切换到百度地图,或者从大众点评切换到百度地图的时间间隔小于预定连续时间间隔,则确定微信与百度地图,大众点评与百度地图是连续打开的两组APP,其打开顺序依次是微信、百度地图,大众点评、百度地图。
在该步骤中,对于实时监测用户与APP之间交互的场景,实时监测APP的状态改变,根据APP状态改变以及对应的时间信息确定连续使用的APP以及使用的顺序。
对于以预定时间间隔获取用户使用终端的日志,从日志中获取用户与APP交互的记录的场景,根据用户与APP交互的记录信息获取用户使用两个APP的时间间隔是否小于预定连续时间间隔,若是,则确定所述使用的两个APP是连续使用的APP,否则确定不是连续使用的APP。例如,用户在8:00使用微信,在8:03使用百度地图,8:12使用滴滴,微信与百度地图、微信与滴滴、百度地图与滴滴两两之间的使用时间间隔均小于预定连续时间间隔,则判断两两之间属于连续使用的APP。
在另一实施方式中,对获取的连续使用的APP进行存储,进一步的,以APP对的方式进行存储,例如:
{APP1,APP2}
其中,表示在先使用的是APP1,在后使用的是APP2;
对于例如如上所述的用户使用的多个APP两两之间的使用时间间隔均小于预定连续时间间隔的,则将属于连续打开的APP分别存储为一组APP对:
{APP3,APP4}
{APP3,APP5}
{APP4,APP5}
其中,使用APP的顺序从先到后依次为:APP3、APP4、APP5。
步骤13,判断连续使用的APP之间是否存在信息传递或者信息传递的需求;若是,则执行步骤14,若否,执行步骤15。
具体的,对于实时监测用户与APP之间交互的场景,判断连续使用的APP之间是否存在信息传递或者信息传递的需求包括以下步骤:
判断APP之间是否存在调用关系,若是,则APP之间存在信息传递或者信息传递的需求,例如在微信中点击地图,则调用百度地图显示微信中地图的详细信息,则微信与百度地图存在调用关系,二者之间存在信息传递。
或者,判断连续使用的APP执行任务时是否对槽位填充相同的槽位内容,若是,确定所述APP之间存在信息传递或者信息传递的需求,例如用户打开携程查看去上海的机票,其涉及目的地槽位:上海,随后用户打开墨迹天气查询上海的天气,其涉及地址槽位:上海,对于连续打开的携程与墨迹天气,二者均具有相同的槽位内容,即对应于地址属性的槽位的内容均是上海,则确定携程与墨迹天气存在信息传递的需求。
进一步的,若槽位内容不同,判断连续使用的APP是否存在相同或者属性相同的槽位,若是,则确定存在信息传递或者信息传递的需求。
对于以预定时间间隔获取用户使用终端的日志,从日志中获取用户与APP交互的记录的场景,根据日志中记录的用户与APP交互的信息,判断连续使用的APP执行任务时调用的槽位是否填充相同的槽位内容,若是,则确定连续使用的APP之间存在信息传递或者信息传递的需求,若否,则判断二者是否具有相同或属性相同的槽位,若是则确定二者存在信息传递或信息传递的需求。
步骤14,根据用户使用APP的顺序,和/或APP之间的调用关系,建立APP之间的有向图;执行步骤16;
在该步骤中,对存在信息传递或信息传递需求的连续使用的APP,建立APP之间的有向图,具体的,将存在信息传递或信息传递需求的APP对作为建立APP之间有向图的数据源,根据APP对存储的格式构建APP之间的有向图,其中,位于APP对中前面的APP为有向图的起点,位于后面的APP为有向图的终端。
例如被选择的APP对为{携程,墨迹天气},基于该存储格式建立二者之间的有向图,其中,有向边为从携程到墨迹天气,具体为:
携程——>墨迹天气
步骤15,删除存储的不存在信息传递或者信息传递的需求的连续使用的APP;
具体的,当APP之间不存在信息传递或者信息传递的需求,则删除存储的APP对;
步骤16,根据APP之间的有向图,生成APP生态图。
通过APP有向图的建立,可以初步形成APP生态图,如图4所示,形成了多个APP有向图,将建立的多个APP有向图进行融合,即将所有APP有向图在一个图中汇总,设置各个APP为节点,节点之间的有向边的连接与APP有向图的有向边的连接相同,形成例如如图5所示的多个APP之间有向图的合集,即生成了APP生态图。
通过上述方法,建立了各个APP之间的关联关系,当用户通过语音交互,或其他交互方式与在后使用的APP进行交互时,对于指代不明的信息,在后使用的APP通过查询APP生态图即可获知如何获取用户指代不明的信息,提高了用户与APP交互的便利性,提高了用户体验度。
在另一实施方式中,初始化APP生态图还包括以下步骤,如图6所示:
步骤21,检测语音助手的行为;
如大家所知,语音助手在人机交互中充当了很重要的角色,用户通过与语音助手交互可实现特定的任务,在此过程中,语音助手根据需要调用APP,协助用户实现特定的任务,因此,通过检测语音助手的行为可以提高生成APP生态图的效率。
在该步骤中,实时监测语音助手的行为,如语音助手与用户的交互行为,或者语音助手在执行特定任务时调用APP的行为。
步骤22,获取并存储语音助手执行任务时连续调用的APP名称,以及调用APP的顺序。
其中,连续调用APP指语音助手从调用当前的APP切换到调用另一APP的时间间隔小于预定连续时间间隔,或者语音助手在执行一个任务或连续执行一组任务时调用多个APP。例如语音助手执行为用户订购咖啡的任务,其中包括两个子任务:订购咖啡以及取回咖啡,在执行该任务时通过大众点评筛选咖啡店,选择了星巴克,随后调用百度地图导航至选择的星巴克,其中从大众点评切换到百度地图的时间间隔小于预定连续时间间隔,或者调用大众点评和百度地图均是为了完成订购咖啡的任务,则大众点评与百度地图是语音助手连续调用的APP,并且调用顺序依次是大众点评、百度地图。
存储连续调用的APP名称的方式与上述存储连续使用的APP名称的方式相同,均采用APP对的方式存储。
步骤23,判断连续调用的APP之间是否存在信息传递或者信息传递的需求;若是,则执行步骤24;若否,执行步骤25;
在该步骤中,判断APP之间是否存在信息传递或信息传递的需求的方式与上述记载相同。
步骤24,根据连续调用APP的顺序,建立APP之间的有向图;执行步骤26;
步骤25,删除存储的不存在信息传递或者信息传递的需求的连续调用的APP;
步骤26,根据APP之间的有向图,生成APP生态图;
同样的,在该步骤中,将APP有向图进行融合,生成APP生态图。
在该实施方式中,步骤24-26与上述步骤14-16的具体执行步骤相同或类似。
在另一个实施方式中,为有向边设置权重系数,权重系数的大小表示其连接的两个APP之间信息传递的概率的大小。APP之间初始建立有向图的有向边时,权重系数均为相同的值。
在步骤14、24中建立APP之间的有向图前,执行以下步骤:
步骤241,判断APP之间是否存在有向图,若存在有向图,执行步骤242;若不存在,执行步骤244;
步骤242,判断要建立的有向边与已存在的有向边方向是否相同,若方向相同,执行步骤243,若方向不同,执行步骤244;
步骤243,增加与所述方向同向的有向边的权重系数;
步骤244,建立具有新方向的有向边;
步骤245,建立APP之间的有向边。
其中,权重系数按△w的步长增加或减小。
在另一实施方式中,生成APP生态图时,APP之间有向边的权重系数APP有向图中的对应有向边的权重系数相同。
通过设置权重系数,当APP连接多个有向边时,可以基于权重系数优先选择权重系数最高的有向边连接的APP,从选择的APP获取信息或者将信息发送至选择的APP,有效提高了信息传递的效率和准确性。
在另一实施方式中,在步骤11和/或21之前,还包括以下步骤:
步骤01,获取终端安装的APP名称;
具体的,终端中包括多个APP,APP生态系统生成应用获取终端中安装的APP名称;
步骤02,将APP按功能分类,将相同或相似功能的APP分组为一个簇,形成一个或多个APP簇;其中APP簇中包含一个或多个APP;
用户通常在终端安装大量的APP,用于实现各种功能,例如用于出行时订机票的携程、京东,订火车票的铁路12306,打车软件滴滴,用于查询天气的墨迹天气,用于导航的百度地图,高德地图等。获取用户安装的APP名称后,将APP按照其主要功能分类,将具有相同或相似功能的APP作为一个簇。例如按照饮食、出行、地图、天气等功能进行簇的划分。
进一步的,当一个APP具有多种功能时,则可以对其进行交叉划分,即划分到多个簇中,该APP属于多个APP簇的交集。
如图7所示,将APP分为三个簇,其中虚线围成的椭圆内的APP属于同一个簇,由图可见,APP3既属于簇1,又属于簇2。
优选地,对于具有多种功能的APP,可以结合用户使用习惯对其分簇进行优化,优先按用户使用习惯进行分簇。例如用户习惯用京东订机票,购物则习惯于使用淘宝,虽然京东具有购物的功能,但是按用户使用习惯将京东划分为出行分类中,淘宝划分为购物分类中。
在另一实施方式中,APP生态系统生成应用检测到终端安装了新的APP,或者检测到终端中存在APP生态图或APP生态系统中不包括的APP,则根据APP功能将其添加到与其功能对应的APP簇中,并检测用户对新APP的使用,其中,该检测操作可以是当新APP启动或被用户使用时向APP生态系统生成应用发送的触发消息下执行的。
在另一实施方式中,当新的APP安装于终端时,新APP检测到终端中存在APP生态图或APP生态系统或者槽位信息关联关系,则根据自身功能将其添加至APP生态图或APP生态系统或者槽位信息关联关系中与其功能相同或类似的簇中。
如图8所示,APP7为安装的新的APP,根据其功能将其添加至簇2。在该图中,虽然其未与其他APP之间建立有向边,但是当其存在获取信息的需求时,可以结合该簇中其他APP的有向边预测获取信息的APP,在该APP生态图中,可见属于簇2的APP3、6均与APP2建立了有向边,且方向指向均为从APP2获取信息,从而优先选择从APP2获取信息。
进一步的,APP生态系统生成应用或者APP自身去检测从其他APP获取的信息是否正确,若正确,APP生态系统生成应用或者APP自身更新对应的APP生态图或APP生态系统或者槽位信息关联关系,例如建立新的APP与信息源APP对应的有向边,若错误,则基于用户更正信息判断是否可以更新有向边,若可以,则更新对应的有向边,若无法建立有向边,则APP生态系统生成应用继续检测用户对该APP的使用,或者APP基于对APP生态图或APP生态系统或者槽位信息关联关系的利用对其进行更新。
优选的,APP生态系统生成应用基于一定的规则启动检测功能,如周期性的,或者根据用户设置的,或者在事件触发时,例如APP生态系统生成应用为新的APP分簇后,向APP发送消息,或者检测到新的APP时发送消息,该消息中携带一信息,指示该APP未与其他APP建立有向边,新APP收到该消息后,当其启动或者被用户使用时,向APP生态系统生成应用发送消息,触发其对该APP的使用进行检测。
通过对APP进行分簇,合理利用了用户的使用习惯,可以提高对APP的管理效率,加强APP生态图的生成,进一步提高信息传递的效率。
在另一个实施方式中,在步骤105之前,还包括以下步骤:
步骤103,判断终端是否具有APP生态图,若无,执行步骤105;若有,则结束。
APP生态系统生成应用判断终端是否具有APP生态图,其中,APP生态图可以存储于终端本地,也可以存储于云服务器。
在该步骤中,首先查询终端本地是否存储有该APP生态图,若有,则结束,若未存储APP生态图,则向云服务器发送APP生态图获取请求,接收云服务器返回的该请求对应的响应消息,判断响应消息是否携带APP生态图,若不携带,执行步骤105;若携带,则结束。
进一步的,设置终端与APP生态图之间的对应关系,所述对应关系可以通过终端的唯一标识标识其对应的生态图,该唯一标识可以是终端的IMEI等唯一标识终端的信息,或者是使用终端的用户标识,该用户标识唯一标识一个用户。
通过上述方法,初步建立了终端的APP生态图,通过该生态图,建立了APP之间的交互关系,可以使得后续打开的APP需要从其他APP获取信息时,较为快速准确的定位信息获取方,进一步提高与用户语音交互的效率、提高对用户的语音语义理解的准确率,提高了APP的智能性。
建立槽位信息的关联关系
在建立APP生态图后,可以确定APP之间的关联关系,从而可以优先的从相关联的APP查询信息或者获取信息,在另一实施方式中,为了加快APP响应用户语音命令的速度,建立与APP生态图关联的数据层,通过该数据层建立各个APP槽位信息的关联关系,该槽位信息关联关系的建立可以在APP生态图生成后建立,也可以与APP生态图同步建立,或者独立于APP生态图而生成。具体包括以下步骤:
在生成APP生态图执行步骤13或23时,若判断APP之间存在信息传递或者信息传递需求,在步骤14或者24还执行以下步骤:
若APP之间存在调用关系,则获取被调用的APP利用的在先使用的APP的槽位,将该槽位设置为有向边的槽位;
若APP之间存在填充相同槽位内容的槽位,则将在先填充该相同槽位内容的槽位设置为有向边的槽位,并且将有向边的方向确定为从在先填充该相同槽位内容的APP指向在后填充该相同槽位内容的APP;
在该步骤中,在后填充相同槽位内容的APP调用在先填充该相同槽位内容的概率较高,因而基于填充该相同槽位内容的时间关系可以确定两个APP之间的调用关系,从而可以更准确的确定有向边的方向。
若槽位内容不同,存在相同或者属性相同的槽位,则将该相同的槽位或者在先使用的APP的后在后使用的APP的属性相同的槽位设置为有向边的槽位。
通过上述过程,可以将有向边的槽位确定,形成了完整的APP生态系统,既包括APP之间的关联关系,也包括建立APP之间关联关系的纽带:槽位,可以预先获知各个APP之间的关联性,即APP之间进行信息传递的槽位,也就是明确槽位内容的获取方向,提高在后打开的APP与用户交互的智能性,而且可以无需监控器实时监控终端,降低终端的功耗。
进一步的,建立了有向边的槽位后,当APP生态图更新或基于已有APP生态图生成新的APP生态图时,有向边的槽位随着其对应的有向边进行更新,例如当有向边删除时,其对应的槽位也删除。
在另一实施方式中,提供了另一种槽位信息关联关系建立方法,如图9所示,在该方法中,具体包括以下步骤:
步骤201,APP生态系统生成应用执行检测功能,检测用户与APP之间的交互;
在该步骤中,该检测功能的启动如上所述基于一定的规则,如周期性的,或者根据用户设置的,或者在事件触发时,如上述实施方式中所列的示例。
在一个实施方式中,事件触发还包括以下方式
APP接收用户的命令;其中APP接收用户的命令,则表明用户将使用该APP;其中,该命令可以是语音命令,也可以是其他方式的命令,APP判断槽位信息关联关系建立完成标识是否为真,若是,则不发送触发启动APP生态系统生成应用的消息,若该标识为否,则进一步判断是否已启动APP生态系统生成应用;若已启动,则APP不向APP生态系统生成应用发送使其启动的消息,若未启动,则向APP生态系统生成应用发送消息,触发其启动,并执行检测功能,APP生态系统生成应用基于接收到的消息启动并执行检测功能。
槽位信息关联关系建立完成标识存储于终端,用于标识该关联关系是否完成建立,其中在APP生态系统生成应用中设置检测计时器,当检测计时器的时间大于检测完成时间时,设置该标识为真,否则设置为假,该检测计时器可以根据用户的需求重新置零。
步骤202,检测用户与所有被使用的APP之间的交互;
在该步骤中,APP生态系统生成应用对用户与所有APP之间的交互都进行检测,检测APP执行的任务以及执行任务时填充的槽位以及填充的槽位内容。
步骤203,获取并存储APP执行任务时填充的槽位、槽位内容,以及填充槽位内容的时间;
步骤204,判断用户是否还存在与APP之间的交互,若是,执行步骤202;若否,执行步骤205;
在该步骤中,判断用户是否仍然与APP进行交互,若是,则继续监测用户与APP之间的交互,若否,执行后续步骤。
步骤205,判断是否存储有多个APP执行任务时填充的槽位及填充的槽位内容信息,若否,执行步骤206;若是,则执行步骤207;
APP生态系统生成应用查询其存储的信息,判断是否存储有多个APP的相关信息,若是,则可以基于存储的信息建立槽位信息的关联关系,若否,则无法基于当前存储的信息建立该关联关系。
步骤206,关闭或者休眠APP生态系统生成应用,结束;
当用户结束与所有APP之间的交互后,APP生态系统生成应用则没有继续监测的需求,可以关闭或进入休眠状态。
步骤207,判断APP之间是否存在信息传递或信息传递的需求,若是,则将存在信息传递或信息传递需求的槽位作为所述APP之间的公共槽位;若否,则结束。
具体的,该步骤包括以下步骤:
步骤2071,判断存储的任意两个或多个APP填充槽位内容的时间间隔是否小于预定连续时间间隔,若是,执行步骤2072,若否,执行步骤2074;
步骤2072,将满足该条件的APP分为一组;基于存储的信息判断每组中任意两个或多个APP是否填充相同的槽位内容;若是,执行步骤2073;
步骤2073,将在先填充相同槽位内容的槽位作为公共槽位;
步骤2074,判断存储的信息中槽位内容填充时间与当前时间间隔是否大于等于删除时间,若是,则删除该填充时间对应的条目内容,若否,则结束。
其中删除时间大于预定连续时间间隔。
在该步骤中,对于存储时间较长的信息进行筛选删除,可以有效的节省存储空间,降低资源浪费。
通过上述方法,建立了槽位信息的关联关系,如图10,公共槽位1为APP1-3的公共槽位,公共槽位2为APP1-2的公共槽位,公共槽位3为APP2-3的公共槽位,公共槽位4为APP4-5的公共槽位。
在该方法中,该槽位信息关联关系的建立可以独立于APP生态图的生成,可以仅建立槽位信息的关联关系。
在另一实施方式中,为公共槽位设置权重系数,初始建立公共槽位时,均为相同的默认权重系数。
进一步的,在步骤207中,确定公共槽位前,判断该槽位是否已设置为所述APP之间的公共槽位,若是,增加所述公共槽位的权重系数;若否,则建立该公共槽位;
在另一实施方式中,为公共槽位设置权重系数wij,表示该公共槽位将APPi的信息传递至APPj的权重系数,类似的wji,表示该公共槽位将APPj的信息传递至APPi的权重系数。例如图10所示的公共槽位1的权重系数包括以下4个:w12、w13、w23、w32。
其中,权重系数按△w的步长增加或减小。
在另一个实施方式中,对应同一公共槽位的槽位内容以矩阵方式存储(记为公共槽位内容矩阵),如:[槽位内容],该矩阵为列矩阵,每一行对应一个填充的槽位内容,每增加一个填充内容则在矩阵的最后一行后再增加一行。
进一步的,该矩阵还包括时间戳信息,矩阵格式例如为[槽位内容,时间戳],其中时间戳为APP填充与该时间戳位于矩阵同一行的槽位内容的时间,矩阵的行增加方式和上述相同。
在另一实施方式中,该矩阵还包括源APP,表示填充该内容的APP,如[槽位内容,源APP]。
在另一实施方式中,该槽位对应的槽位内容矩阵包括槽位内容、时间戳、源APP、槽位属性中一个或多个信息,将槽位内容以及与之关联的时间戳、源APP存储为一行,如:
[槽位内容,填充时间,源APP,槽位属性]
进一步的,当APP查询该槽位信息关联关系时,判断当前时间与时间戳的差值是否大于等于删除时间,若是,则将该时间戳对应的矩阵的行删除。
在一个实施方式中,该关联关系可以存储为一个表。
通过上述方法,为具有信息传递需求的APP之间建立了与该传递的信息相关的公共槽位,形成槽位信息的关联关系,将该关联关系存储于终端,当APP执行任务需要使用该槽位时,可以直接利用该公共槽位以及该公共槽位填充的内容,高效智能的与用户交互。
与上述方法类似的,在建立槽位信息关联关系前,APP生态系统生成应用将APP按功能分簇,如在步骤201之前,执行上述步骤01、02,同样的,当APP生态系统生成应用检测到终端安装了新的APP,则根据APP功能将其添加到与其功能对应的APP簇中,并向该APP发送消息,该消息指示当APP检测到用户使用新APP时,触发APP生态系统生成应用的检测功能。类似的,该新APP存在获取信息的需求时,可以结合该簇中其他APP的公共槽位预测获取信息的APP,优选簇中其他APP获取该信息的公共槽位内容。进一步的,APP生态系统生成应用检测该新APP获取信息是否正确,若正确,为新的APP与信息源APP建立公共槽位,若错误,则基于用户更正信息判断是否可以建立公共槽位,若可以,则建立对应的公共槽位,若无法建立公共槽位,则结束。
槽位信息的关联关系可以基于APP生态图生成,在调整APP生态图时,适应性的调整该槽位关联关系,或者基于槽位信息关联关系调整APP生态图。对应的,当生成通用APP生态图后,采用上述方法可以形成通用的槽位关联关系,从而构成通用APP生态系统。
APP生态图的共享以及通用APP生态图的生成
在上述实施方式中,介绍了如何生成适合特定用户的APP生态图,对于各种APP而言,其具有通用性,若每个用户独立训练生成APP生态图,其需要的时间成本较高,因此,本文提出了通用APP生态图的生成方法以及APP生态图共享方法。下面一一进行描述。
在另一个实施方式中,提出了一种通用APP生态图生成方法,如图11,主要包括以下步骤:
步骤301,获取APP生态图;
在该步骤中,可以通过用户主动上传APP生态图的方式获取,或者向多个用户发送请求,以获取其APP生态图,并且同时获取用户的喜好,年龄、社交群体等与用户相关的属性信息。
步骤302,对APP生态图分类,形成APP生态图簇;
对于所述获取的APP生态图,根据用户属性进行分类,将用户属性相同的APP生态图分为一组,例如,根据用户的年龄进行分类,根据用户的社交群体进行分类,根据用户的喜好进行分类等。
通过分类,可以便于APP生态图聚类,有利于通用生态图的生成。
步骤303,对APP生态图簇中的APP生态图进行训练,形成对应用户属性的通用APP生态图。
在该步骤中,具体包括以下步骤:
步骤3031,获取簇内多个APP生态图包括的APP;
步骤3032,为功能相同或可以互相替代的多个APP添加相同的标签;
例如,百度地图与高德地图都为地图,为二者添加相同的标签。
步骤3033,对多个APP生态图进行融合,形成通用APP生态图;
在该步骤中,将具有相同标签的APP分为一组,称为APP组;利用APP组替代多个APP生态图中的与APP组对应的APP;根据多个APP生态图中APP和/或APP组之间的有向图,建立多个APP生态图中包括的APP和/或APP组之间的有向图,将多个APP生态图中相同APP或APP组之间的有向边的权重系数叠加构成通用APP生态图中有向边的权重系数。
步骤3035,存储通用APP生态图。
在该步骤中,将通用APP生态图存储于服务器的存储空间。
在一个实施方式中,将与通用APP生态图对应的用户属性作为索引,存储对应的通用APP生态图。
在另一实施方式中,在步骤3033之后,还包括以下步骤:
步骤3034-1,将融合后的APP生态图中有向边的权重系数低于最低权重系数的有向边删除;
步骤3034-2,判断是否存在孤立的APP或APP组,若是,则删除该APP或APP组,生成精简通用APP生态图;
步骤3034-3,存储该精简APP生态图。
在该步骤中,将该精简APP生态图与其对应的用户属性对应存储。
上述步骤3034-1至3034-3可以在步骤3035之前执行,也可以在步骤3035之后执行。
存储方式如下表:
通用APP生态图存储方式
用户属性 |
通用APP生态图 |
精简APP生态图 |
爱好:体育 |
通用APP生态图1 |
精简APP生态图1 |
年龄:20-30岁 |
通用APP生态图2 |
精简APP生态图2 |
通过该方法,可以降低通用APP生态图对存储空间的需求,尤其当终端存储空间受限时,便于终端调用通用APP。
在一个实施方式中,采用上述方法生成通用或精简通用APP生态系统,具体的,将上述方法步骤中的APP生态图替换为APP生态系统,其中对于通用或精简通用APP生态系统中有向边的槽位的形成,则与有向边同步更新、融合,即将相同的有向边的槽位采用“加”的方式进行更新。
在另一实施方式中,用户在生成用户特定的APP生态图前,先获取通用APP生态图或者精简的通用APP生态图,可以提高APP生态图训练速度。
此外,用户通常具有多个终端,存在用户各个终端间APP生态图共享的需求,其中,当用户当前使用的终端中不具有APP生态图时,优先向其他终端发送生态图获取请求以获取APP生态图,若未接收到其他终端的响应,则再向其他用户或云服务器获取APP生态图。
在一个实施方式中,获取APP生态图包括以下步骤:
步骤401,向用户的其他终端发送APP生态图获取请求;
终端不具有APP生态图时,优先向用户的其他终端发送获取请求,以获取用户特定的APP生态图。
步骤402,基于接收的响应,判断是否得到APP生态图;若是,则结束,若否,执行步骤403;
在该步骤中,接收其他终端发送的响应消息,根据响应消息中是否包括APP生态图确定后续执行步骤。
步骤403,向与用户具有相同属性的好友发送APP生态图获取请求;
由于与用户具有相同属性的好友的APP生态图通常更符合用户的使用习惯,因而向与用户具有相同属性的好友发送APP生态图获取请求以获取其APP生态图。
步骤404,基于接收的响应,判断是否从好友获得APP生态图,若否,执行步骤405,若是,执行步骤407;
步骤405,向云服务器发送APP生态图获取请求,该获取请求携带用户的属性信息;
其中,云服务器接收到终端发送的APP生态图获取请求后,通用APP生态系统生成应用执行以下步骤:
步骤051,接收终端发送的APP生态图获取请求,
步骤052,基于该请求携带的用户的属性信息,确定满足用户属性要求的APP生态图;其中,该APP生态图可以为通用和/或精简通用APP生态图。
步骤054,将响应消息发送给用户的终端,该响应消息携带满足用户属性要求的APP生态图的;
进一步的,在步骤052中,当用户的属性信息包括多个用户属性时,优先选择满足最多用户属性的通用APP生态图作为满足用户属性要求的APP生态图;
在另一个实施方式中,当用户的属性信息包括多个用户属性时,基于用户属性获取通用APP生态图最小并集,该最小并集中包括的通用APP生态图的用户属性的并集与APP生态图获取请求中携带的用户的属性信息中的用户属性相同。
将通用APP生态图最小并集进行融合,并将融合后的APP生态图作为满足用户属性要求的APP生态图;其中融合方法同步骤3033的融合方法。
在另一个实施方式中,APP生态图获取请求中携带终端的能力信息,该能力信息包括终端的存储能力;
在步骤052之后,步骤054之前,还包括以下步骤:
步骤053,根据终端的存储能力判断是否具备存储所述满足用户属性要求的APP生态图的能力,若是,则执行步骤054,若否,则执行步骤052,其中将步骤052中的通用APP生态图替换为精简APP生态图,并进一步执行步骤053,在步骤053中,若终端不具备存储所述满足用户属性要求的APP生态图的能力,向用户发送响应消息,响应消息携带APP生态图获取失败的原因。
步骤406,接收云服务器发送的响应消息;若响应消息携带APP生态图时,执行步骤407,若响应消息携带APP生态图获取失败的原因,且原因为存储空间不足,则执行步骤409;
步骤407,识别终端包括的APP应用;
当从好友或者云服务器获取了APP生态图后,由于不同的用户安装的APP不同,因此需要对获取的APP生态图进行调整,以适用用户的需要。
在该步骤中,APP生态系统生成应用识别终端包括的APP应用。
步骤408,调整APP生态图。
步骤409,向云服务器发送终端安装的APP名称,以使得云服务器为终端生成适于终端的APP生态图。
进一步的,云服务器接收到终端的消息后,基于终端安装的APP调整满足用户属性要求的APP生态图,其中满足用户属性要求的APP生态图为基于通用APP生态图生成。
在步骤408中调整APP生态图与云服务器调整满足用户属性要求的APP生态图的具体步骤为:
基于终端安装的APP应用,APP生态系统生成应用识别APP生态图中终端不包括的APP,记为APP1,以及终端中未包括在APP生态图中的APP,记为APP2,判断APP2中是否包括与APP1的功能相同的替代APP,若有,则用APP2中功能相同的APP替换对应的APP1中的APP;若无,则删除APP生态图中的APP1及与之连接的有向边,对于APP2中未被添加到APP生态图的APP3,将其以孤立的节点设置于APP生态图中,进一步的,将其放置入APP生态图中与之功能对应的簇中。
云服务器生成适于终端的APP生态图后,将其发送给终端。
终端接收该APP生态图后进行存储。
进一步的,终端存储空间不足时,向用户发送提示,使得用户删除一些信息使终端满足存储空间。
通过上述方法,可以将获取的APP生态图适配为适合用户的APP生态图。
类似的,通用以及精简通用APP生态系统的生成和共享方法与上述通用以及精简APP生态图的生成和共享方法类似,只是需要将源APP生态系统中APP生态图中有向边对应的槽位同步关联至通用以及精简通用APP生态系统中的有向边。
生态图的调用以及更新
APP生态图建立后,随着用户的利用,对APP生态图进行动态更新,使其更为准确的符合用户的使用习惯。生态图的调用以及更新包括以下步骤,如图12:
步骤501,获取用户输入的语音命令;
用户启动APP后,或者将APP从后台切换至前台后,APP获取用户输入的语音命令。例如,用户打开墨迹天气,墨迹天气获取用户的语音命令为:天气怎么样?
步骤502,判断是否可以执行用户的语音命令;若否,获取APP执行语音命令未填充的槽位,执行步骤503;
在该步骤中,APP对用户的语音命令进行解析,将关键信息填充至语音命令对应的任务的槽位中。例如对于墨迹天气,其槽位涉及时间、地点,由于该语音命令“天气怎么样”中不包括关键信息,根据用户的语音命令无法准确获知用户要查询的是当前所处位置以及当前的天气情况,还是查询其他地点其他时间的天气情况,因此无法对槽位的内容进行填充,因此无法执行用户的语音命令。
进一步的,若可以执行用户的语音命令,则根据语音命令执行对应的动作。
步骤503,调用APP生态图,获取与执行语音命令的APP具有有向边且有向边方向指向执行语音命令的APP的候选APP;
具体的,调用APP生态图后,判断执行语音命令的APP在APP生态图中是否具有与其关联且有向边方向指向执行语音命令的APP的有向边,若具有,则进一步提取与执行语音命令的APP具有有向边且有向边方向指向执行语音命令的APP的候选APP。若不具有满足上述条件的有向边,则判断其是否属于某个簇,若不属于,则根据自身功能将其添加到与之功能对应的APP簇中,当APP属于某个簇时,获取与其属于同一簇的其他APP关联的指向其他APP的有向边的另一端的APP,进一步判断所述另一端的APP是否具有所述未填充内容的槽位或与该槽位具有相同属性的槽位,若具有,则将具有所述未填充内容的槽位或与该槽位具有相同属性的槽位的另一端的APP作为候选APP,否则执行步骤505。
在另一实施方式中,在步骤502之后,步骤503之前,包括以下步骤:
步骤5031,判断是否存储有APP生态图,若是,则执行步骤503;若否,执行步骤5032;
步骤5032,发送APP生态图获取请求;
在本步骤中,向云服务器发送APP生态图获取请求,进一步的,该获取请求包括终端的标识,该标识用于标识终端对应的APP生态图。
云服务器基于该标识查询对应的APP生态图,将查询到的APP生态图发送至终端,若未查询到,则判断是否具有通用APP生态图,若是,则向终端发送通用APP生态图,否则,向终端发送失败响应消息。
步骤5033,基于接收的消息判断是否获取到APP生态图;若否,则执行步骤105,初始化APP生态图,以及执行步骤505;若是,执行步骤503;
优选的,在步骤5033中,执行步骤503之前还包括以下步骤:
步骤5034,判断APP生态图的类型,若为与终端对应的APP生态图,执行步骤503;若为通用APP生态图,则执行步骤5035;
步骤5035,将通用APP生态图适配为与终端安装的APP一致的APP生态图,并执行步骤503。
在该步骤503中,基于调用的APP生态图,可以查询到与执行语音命令的APP建立关联关系的APP,进一步的,根据有向边的方向,提取有向边的方向指向执行语音命令的APP的建立关联关系的APP。
在另一实施方式中,步骤503中,进一步判断提取的APP是否具有所述未填充内容的槽位或与该槽位具有相同属性的槽位,若具有,则将该提取的APP作为初选APP,该初选APP为候选APP,否则执行步骤505。
进一步的,可以基于有向边的权重系数选择候选APP,将权重系数大于阈值的初选APP作为候选APP。
在另一个实施方式中,在APP生态图中,还包括与APP对应的时间戳,该时间戳指示APP最近被使用的时间。根据时间戳对所述初选APP排序,获取最近使用时间最接近当前时间的初选APP作为候选APP,或者将经过权重系数筛选的初选APP按时间戳进行排序,筛选最近使用时间最接近当前时间的初选APP作为候选APP,其中候选APP可以为一个或多个,所述候选APP的并集为包括需要填充的槽位的最小APP集合。
在另一实施方式中,基于上述因素确定候选APP时可以调整各因素的筛选顺序,例如先基于时间排序选出多个APP,再基于权重系数进行选择以确定候选APP。
确定候选APP后,执行步骤504。
步骤504,从候选APP中提取未填充的槽位涉及的内容,将其填充至APP对应的槽位;执行步骤506;
在该步骤中,确定候选APP后,获取候选APP在此之前执行任务时填充的与该未填充槽位内容的槽位相同或属性相同的槽位,基于候选APP执行与获取的槽位内容相关的任务的时间先后顺序,优先选择与最新执行任务相关的槽位内容作为未填充槽位的槽位内容。
步骤505,基于用户当前状态,对槽位进行填充,或者向用户发起多轮对话,获取需要填充的槽位内容。执行步骤506。
通过上述步骤,判断根据用户当前状态是否可以填充槽位信息,例如上述示例中,判断用户并未在打开APP之前提及时间、地点相关信息,则根据用户所处位置填充地点槽位,根据当前时间填充槽位信息,向用户反馈当前位置当前时间的天气情况。若无法基于用户当前状态填充槽位的内容,则向用户发起多轮对话,通过与用户对话的方式获取填充槽位需要的信息。
进一步的,还包括步骤506,执行语音命令对应的任务。
通过上述方法,对于用户后续打开APP使用时,即使用户语音命令未包含完整信息,也可以通过APP生态图对用户的语音命令理解。
在另一实施方式中,APP生态图的使用方法为如图13所示:
步骤601,获取用户输入的第一语音命令;
步骤602,根据第一语音命令填充APP对应的槽位内容;
在该步骤中,APP解析语音命令,提取关键信息进行槽位内容的填充。
步骤603,调用APP生态图,获取与APP具有有向边,且有向边的箭尾指向该APP的另一个或多个APP;
在该步骤,调用APP生态图后,同样判断执行第一语音命令的第一APP在APP生态图中是否具有与其关联的有向边,即是否是孤点,若具有,获取与第一APP具有有向边,且有向边的箭尾指向该APP的另一个或多个APP;若不具有,则根据自身功能将其添加到与之功能对应的APP簇中。
同样的,在步骤602之后,步骤603之前,执行步骤5031-步骤5035,相应的,将步骤5031-步骤5035中的步骤502替换为602,将步骤503替换为步骤603,将步骤5033中执行步骤505替换为结束。
步骤604,将填充的槽位及槽位内容推送至所述另一个或多个APP;
在一个实施方式中,将槽位及槽位内容推送至所有与该APP具有有向边,且有向边的箭尾指向该APP的其他APP;
在另一个实施方式中,筛选出与该APP连接的有向边的权重系数大于门限,且有向边的箭尾指向该APP的其他APP,将槽位及槽位内容推送至被选中的APP。
在另一个实施方式中,确定所述另一个或多个APP是否具有与填充的槽位相同或属性相同的槽位,若具有,则推送所述相同或属性相同的槽位及对应的槽位内容。
步骤605,不同于获取第一语音命令的APP的第二APP检测用户对第二APP的使用;判断用户使用第二APP时,执行步骤606;
步骤606,获取用户输入的第二语音命令;
步骤607,判断执行第二语音命令所需的槽位是否全部填充内容,若否,执行步骤608;若是,执行步骤610;
步骤608,调用推送的槽位及槽位内容,判断推送的槽位内容是否可以填充APP中执行第二语音命令所需的槽位,若可以填充,利用所述槽位内容填充槽位,并判断是否可以执行语音命令,若可以执行语音命令,执行步骤610,若不能执行语音命令,执行步骤609;若不能填充,执行步骤609;
步骤609,与用户进行多轮对话,获取需要填充的槽位对应的内容;执行步骤610;
步骤610,执行语音命令对应的任务。
进一步的,步骤608具体包括以下步骤:
步骤081,获取与第二语音命令相关的任务所需填充的槽位中未填充的槽位;
步骤082,判断推送的槽位是否与所需填充的槽位相同或属性相同;若是,执行步骤083,若否,执行步骤609;
步骤083,利用推送的槽位内容填充对应未填充的槽位;
具体的,对于每个未填充的槽位,判断是否具有多个推送的槽位内容可以用于填充该槽位,若否,将对应的槽位内容填充至对应的未填充的槽位,执行步骤085;若是,执行步骤084;
步骤084,对槽位内容进行筛选,利用选择的槽位内容对未填充的槽位进行内容填充;
在一个实施方式中,选择与槽位内容关联的有向边的权重系数最高的槽位内容对未填充的槽位填充内容;
在另一实施方式中,选择最近推送的槽位内容进行填充;
在另一个实施方式中,将与槽位内容关联的有向边的权重系数大于阈值的槽位内容作为初选槽位内容,根据推送时间对初选槽位内容进行排序,选择最近推送的初选槽位内容填充未填充的槽位。
进一步的,步骤084之后,还包括以下步骤:
步骤085,判断是否可以执行用户的第二语音命令;若是,执行步骤610;若否,执行步骤609。
在另一实施方式中,在步骤506或610之后,该方法还包括以下步骤:
步骤507,判断是否正确执行用户的语音命令,若是,执行步骤508;若否,执行步骤509;
在该步骤中,APP生态系统生成应用或者APP判断APP根据填充的槽位内容执行的命令是否被用户纠正,若未被用户纠正,则说明上述信息传递是正确的,若被用户纠正,则说明上述信息传递存在错误。
步骤508,增加APP生态图中所述执行命令的APP与存在槽位内容利用的候选APP之间的有向边的权重系数;
其中,APP生态系统生成应用或者APP执行该步骤。
步骤509,获取用户纠正的槽位内容,判断所述纠正的槽位内容是否与APP生态图中的推送的槽位内容相同,若相同,则当执行命令的APP与所述槽位内容相同的APP之间存在有向边,则增加该有向边的权重,若不存在有向边,则建立有向边。
进一步的,降低信息传递存在错误的APP之间的有向边的权重系数,若降低后的权重系数为0或负值,则删除APP之间的有向边。
进一步的,该步骤同样可以由APP生态系统生成应用或者APP执行。
通过上述方法,可以根据用户的使用习惯动态更新调整APP生态图,使其与用户更匹配。
槽位内容的获取、存储与使用
建立了槽位信息的关联关系后,调用该槽位关联关系,以及存储的槽位内容相关的信息可以提高APP对用户语音命令的理解力与执行力,提高人机交互效率,以及机器的智能性。
在本发明的一个实施方式中,图14提供了槽位信息的关联关系的调用方法,具体包括如下步骤:
步骤701,获取用户输入的第一语音命令;
第一APP检测并接收到用户的语音命令,对该语音命令进行解析,确定其对应的第一任务。
步骤702,根据第一语音命令填充第一APP执行语音命令对应的第一任务时相应的槽位以及公共槽位;
具体的,在该步骤中,填充槽位内容时基于建立的槽位信息关联关系判断填充的槽位是否包括公共槽位,若是,填充APP中第一任务对应的槽位的同时将槽位内容填充至公共槽位内容矩阵;
可替换的,在另一实施方式中,填充槽位内容时若涉及公共槽位的填充,则直接填充公共槽位,不再对APP中该对应槽位进行填充,APP执行任务时直接调用该公共槽位。通过该方法,可以节省终端的存储空间,不必对同样的内容存储两次。
APP填充公共槽位内容矩阵时,判断矩阵是否为空矩阵,若是,直接填充矩阵的第一行;若矩阵为非空矩阵时,则优选的,判断矩阵的时间戳列填充的时间与当前时间的差值是否大于等于删除时间,若是,则删除对应该时间戳的行,若否,不执行删除操作;此外,为矩阵增加一行,将第一语音命令涉及的公共槽位相关的信息填充至矩阵新增的行。
例如公共槽位1当前填充的槽位内容为
其中矩阵的第一列为填充的槽位内容,第二列为填充时间,第三列为信息来源。
APP1获取语音命令后判断填充的槽位涉及公共槽位1,首先判断该公共槽位1的内容矩阵为非空矩阵,进一步判断矩阵的时间戳列中12:15与当前时间的时间差大于删除时间,则删除第一行数据,并进一步在矩阵的最后一行后面增加一行,填充当前数据D、15:40、APP1,具体如下:
步骤703,获取用户输入的第二语音命令;
在该步骤中,获取用户输入的第二语音命令可以为第一APP或者第二APP;
其中第二APP可以为终端建立槽位信息关联关系之后安装的,也可以为包括在槽位关联关系中的APP。
步骤704,根据第二语音命令填充执行该语音命令对应的第二任务的APP的槽位;
该步骤的具体执行方式同步骤702相同。
步骤705,判断是否存在未填充的执行第二任务必须填充的一个或多个槽位,若是,执行步骤706,若否,执行步骤710;
在该步骤中第二APP判断是否存在必须填充的槽位,若是,则进一步执行后续步骤。
步骤706,查询槽位信息的关联关系,判断该必须填充的一个或多个槽位是否可以利用公共槽位内容矩阵,若是,利用公共槽位内容矩阵填充该必须填充的槽位,并执行步骤708,若否,执行步骤709;
具体的,该步骤706包括以下步骤:
步骤7061,第二APP判断其是否具有与该必须填充的槽位相同或者属性相同的一个或多个公共槽位,若否,执行步骤7062;若是,将所述公共槽位作为待选公共槽位,并执行步骤7063;
步骤7062,第二APP判断其所属的簇中其他APP是否具有与该必须填充的槽位相同或属性相同的一个或多个公共槽位,若是,将所述公共槽位作为待选公共槽位,并执行步骤7063;若否,执行步骤709;
步骤7063,对所述待选公共槽位的槽位内容矩阵进行预处理,将填充时间满足删除时间对应的矩阵的行删除,筛选槽位内容矩阵不为空矩阵的待选公共槽位为候选公共槽位,执行步骤7064;若不存在槽位内容矩阵不为空矩阵的公共槽位,则执行步骤709;
步骤7064,从候选公共槽位的槽位内容矩阵中选择满足条件的槽位内容填充该必须填充的槽位;
优选的,在该步骤中,确定是否可以基于用户与APP的交互过程得出用户意图填充的槽位内容是与哪个特征相关的槽位内容,若可以确定,则优先选择该特征对应的槽位内容填充待填充的槽位,若无法确定,则基于一定规则选择。
其中,所述特征包括以下中的一种或多种:时间信息、APP信息、槽位信息等。
例如用户与第二APP交互的语音命令为“帮我查下我要去的城市天气怎样”,第二APP执行该语音命令对应的任务需要填充的槽位包括地点槽位,基于与APP关联的公共槽位筛选出槽位或者槽位属性为地点的待选公共槽位,并将该待选公共槽位的槽位内容矩阵更新,删除填充时间与当前时间间隔大于等于删除时间的矩阵中的行,选择不为空矩阵的槽位内容矩阵对应的槽位为候选槽位。
此外,基于该语音命令可以确定与槽位内容相关的特征为用户要从一个城市到待填充槽位的所指示的地区,基于该特征确定优先选择与涉及出行的APP共有的公共槽位,基于该信息查询该公共槽位的槽位内容矩阵中源APP为该特征相关的APP,例如查询到APP1,或者查询到APP1和APP3,对于存在多个相关的APP时,基于一定规则选择,存在一个相关APP时,选择该APP对应的槽位内容填充,进一步的,若涉及多个填充内容,优先选择最新时间填充的内容。
该一定规则可以为以下中的一种:
选择公共槽位内容矩阵中最新填充时间的槽位内容填充必须填充的槽位;
选择公共槽位内容矩阵中填充时间满足预定选择时间的行,再基于源APP与第二APP之间信息传递的权重系数选择权重系数最高的槽位内容填充必须填充的槽位;
首先基于公共槽位内容矩阵中源APP与第二APP之间信息传递的权重系数筛选权重系数高于预定权重系数的行,其次选择最新填充时间的槽位内容填充必须填充的槽位;
步骤708,判断是否可以执行第二语音命令对应的任务,若是,执行步骤710,若否,执行步骤709;
步骤709,与用户进行交互获取必须填充的槽位的槽位内容,并执行步骤710;
步骤710,执行该第二语音命令对应的任务。
在另一实施方式中,步骤710之后,还包括以下步骤
步骤711,判断上述公共槽位的调用是否准确,若是,则执行步骤712,若否,执行步骤713;
步骤712,增加对应该公共槽位的第二APP与槽位内容源APP之间的权重系数;
步骤713,获取用户纠正的槽位内容,判断所述纠正的槽位内容是否存在与必须填充的槽位相同或属性相同的公共槽位的槽位内容矩阵中槽位内容相同的情形,若存在,则第二APP与所述源APP之间存在公共槽位,则增加对应的权重系数,降低错误公共槽位内容的槽位对应的权重系数,若不存在公共槽位,则为二者构建公共槽位。
在上述方法中,在使用的APP基于APP生态系统提前将存在信息传递可能性的内容存储于相应的公共槽位中,当用户与在后使用的APP进行交互时,即使信息提供不足也可以使得APP解析出用户的语义,提高了人机交互的智能性。此外,APP生态系统建立后,无需在终端中安装监控器提取槽位内容,只需将APP生态系统存储于终端或者服务器,即可实现APP之间信息的传递,该方法在一定程度上降低了终端的功耗,尤其对于存在节电需求的智能终端有较大的帮助。进一步的,该生态系统可以基于用户的使用进行训练更新,当用户存在更新需求时,则开启APP生态系统生成应用,由其完成生态系统的更新。
APP生态系统的利用
下面结合实际应用描述如何利用该生态系统,如图15所示。
步骤801,APP监测用户对其的使用;
在该步骤中,APP监测到用户使用该APP,例如用户打开了APP,APP接收到用户的命令等。
步骤802,判断终端是否存在对应的APP生态系统,若否,则执行步骤803,若是,则执行步骤806;
在该步骤中,当APP检测到用户将使用该APP,则判断是否存在对应的APP生态系统。
步骤803,发送获取请求,以获取APP生态系统;
在该步骤中,获取APP生态系统的方式与上述获取APP生态图的方式类似,具体的,将上述获取APP生态图的方法中的APP生态图替换为APP生态系统。
其中,调整APP生态系统使其满足用户属性要求时,若使用APP1替换APP生态系统中的APP,对应的,将对应的有向边的槽位替换为对应的槽位。
步骤804,判断是否接收到APP生态系统,若是则执行步骤806;
在该步骤中当接收到APP生态系统时,则执行利用APP生态系统的步骤。
进一步的,若未接收到APP生态系统,执行步骤805,初始化APP生态系统;
在该步骤中,初始化APP生态系统的方式同上述记载的生成APP生态系统方法。
在另一个实施方式中,在执行步骤805之前,向用户发送确认消息,以使用户确认是否执行该步骤805,若用户选择执行步骤805,则触发APP生态系统生成应用执行步骤805,若用户选择不执行步骤805,则按常规用户与APP交互的方式进行交互。
步骤806,获取用户的语音命令;
在该步骤中,APP获取用户的语音命令。
步骤807,判断是否可以根据用户的语音命令执行对应的任务,若是,执行步骤808;若否,执行步骤810;
在该步骤中,解析用户的语音命令,确定执行该语音命令对应的任务,对任务的槽位进行填充,基于槽位的填充判断是否可以执行该任务。
步骤808,执行该任务,并且根据APP生态系统获取箭尾指向该APP的有向边的槽位与执行该任务填充的槽位相同或属性相同的槽位;执行步骤809;
在该步骤中,APP根据执行任务填充的槽位识别APP生态系统中与之关联的有向边的槽位,若有向边指向另一APP,APP执行任务填充的槽位与有向边的槽位相同或属性相同,则获取该有向边的槽位。
步骤809,为该有向边的槽位添加标签,该标签指示该有向边的槽位对应的槽位内容更新时间;结束。
具体的,当执行任务填充的槽位与关联于该APP的有向边的槽位相同,则为该槽位添加时间戳,其中可以包括多个时间戳,表示该槽位被填充的不同时间;
优选的,当APP执行任务多次填充该相关槽位的槽位内容未改变,则保留填充该槽位内容的最新时间戳,进一步的,当时间戳与当前时间间隔大于等于删除时间,则删除相应的时间戳。
通过添加时间戳,便于APP识别是否调用与该有向边的槽位关联的另一个APP的槽位内容,并且可以基于时间识别其调用哪个APP。
步骤810,当步骤804中判断接收到APP生态系统时,执行步骤811;若在步骤802中判断终端存在对应的APP生态系统时,执行步骤812;
步骤811,与用户进行交互,获取执行任务必须填充的未填充的槽位的内容;并执行步骤808;
在该步骤中,判断APP生态应用还未启用,获取有效信息的概率较低,因而采用常用方式执行该任务。
步骤812,查询APP生态系统,识别与APP建立有向图、有向边箭头指向该APP、并且有向边的槽位与该未填充的槽位相同或属性相同的一个或多个第二APP;
在该步骤中,确认APP生态系统在此之前已被用户启用,则可以根据该系统查询相关信息已填充槽位。
步骤813,基于识别的一个或多个APP填充APP中未填充的槽位;执行步骤814;
在一个实施方式中,获取所述一个或多个APP与该APP之间有向边的槽位的标签信息,基于标签信息确定信息源APP,并从信息源APP获取与该有向边槽位相同的槽位的内容,并填充至APP未填充的对应槽位中;
在一个实施方式中,在该步骤中,确定是否可以基于用户与APP的交互过程得出用户意图填充的槽位内容是与哪个特征相关的槽位内容,若可以确定,则优先调用该特征对应的APP的对应槽位内容,若无法确定,则基于一定规则选择调用的APP。
其中,所述特征包括以下中的一种或多种:时间信息、APP信息、槽位信息等。
对于存在多个与特征对应的APP时,基于一定规则选择信息源APP,存在一个与特征对应的APP时,选择该APP对应的槽位内容填充。
该一定规则可以为:
基于APP与信息源APP之间有向边的权重筛选,选择权重系数大于预定值的APP,进一步的基于有向边的槽位的标签选择信息源,例如标签中时间戳为最近的时间的APP;
步骤814,判断是否可以执行用户的语音命令对应的任务,若是,执行步骤808,若否,执行步骤811。
进一步的,该方法还包括以下步骤,用于实时更新APP生态系统:
步骤815,判断上述槽位填充是否准确,若是,则执行步骤816,若否,执行步骤817;
步骤816,增加APP生态系统中所述执行命令的APP与信息源APP之间的有向边的权重系数;
步骤817,获取用户纠正的槽位内容,判断所述纠正的槽位内容是否与APP生态系统中的APP填充的槽位内容相同,若相同,则当执行命令的APP与所述槽位内容相同的APP之间存在有向边,则增加该有向边的权重,判断信息源APP被调用槽位内容的槽位是否为有向边的槽位,若不是,则增加该槽位作为有向边的槽位,若不存在有向边,则建立有向边,以及将调用槽位内容的槽位设置为有向边的槽位。
通过本发明的方法,可以实现APP之间信息的灵活传递,并且APP生态系统可以随时更新,并且可以由利用该APP生态系统的任意APP更新,加强了APP之间信息传递的途径,而且通过该生态系统,终端中不需要增加监控器监控APP的使用即可实现信息的有效传递,提高了用户的体验,增强了APP与用户交互的智能性。
本发明还提供一种APP生态系统生成装置,参见图16,所述装置用于初始化APP生态图和APP生态系统,包括:
监测模块,用于监测用户与APP之间的交互;
具体的,在该步骤中,监测模块实时监测用户与APP之间的交互,记录用户与APP之间的交互过程;
或者,
以预定时间间隔获取用户使用终端的日志,该日志中包括用户与各个APP的交互信息,从日志中获取用户与APP交互的记录,其中,该记录中包括用户与APP交互的时间信息。生成模块,用于获取并存储连续使用的APP名称,以及使用APP的顺序;
生成模块实时监测用户与APP之间交互的场景,实时监测APP的状态改变,根据APP状态改变以及对应的时间信息确定连续使用的APP以及使用的顺序。
对于以预定时间间隔获取用户使用终端的日志,从日志中获取用户与APP交互的记录的场景,生成模块根据用户与APP交互的记录信息获取用户使用两个APP的时间间隔是否小于预定连续时间间隔,若是,则确定所述使用的两个APP是连续使用的APP,否则确定不是连续使用的APP。
在另一实施方式中,生成模块对获取的连续使用的APP进行存储,进一步的,以APP对的方式进行存储。
判断模块,用于判断连续使用的APP之间是否存在信息传递或者信息传递的需求;若是,触发生成模块建立APP之间的有向图,若否,触发生成模块删除存储的不存在信息传递或者信息传递的需求的APP对。
具体的,对于实时监测用户与APP之间交互的场景,判断模块判断连续使用的APP之间是否存在信息传递或者信息传递的需求包括以下步骤:
判断APP之间是否存在调用关系,若是,则APP之间存在信息传递或者信息传递的需求。
或者,判断连续使用的APP执行任务时是否对槽位填充相同的槽位内容,若是,确定所述APP之间存在信息传递或者信息传递的需求。
进一步的,若槽位内容不同,判断连续使用的APP是否存在相同或者属性相同的槽位,若是,则确定存在信息传递或者信息传递的需求。
对于以预定时间间隔获取用户使用终端的日志,判断模块从日志中获取用户与APP交互的记录的场景,根据日志中记录的用户与APP交互的信息,判断连续使用的APP执行任务时调用的槽位是否填充相同的槽位内容,若是,则确定连续使用的APP之间存在信息传递或者信息传递的需求,若否,则判断二者是否具有相同或属性相同的槽位,若是则确定二者存在信息传递或信息传递的需求。
生成模块,用于根据用户使用APP的顺序,和/或APP之间的调用关系,建立APP之间的有向图;
生成模块对存在信息传递或信息传递需求的连续使用的APP,建立APP之间的有向图,具体的,将存在信息传递或信息传递需求的APP对作为建立APP之间有向图的数据源,根据APP对存储的格式构建APP之间的有向图,其中,位于APP对中前面的APP为有向图的起点,位于后面的APP为有向图的终端。
生成模块,还用于根据其他模块发送的触发消息执行与触发消息对应的动作;
生成模块,还用于根据APP之间的有向图,生成APP生态图。
在另一实施方式中,APP生态图生成装置还执行以下方法:
监测模块,检测语音助手的行为;
监测模块实时监测语音助手的行为,如语音助手与用户的交互行为,或者语音助手在执行特定任务时调用APP的行为。
生成模块,获取并存储语音助手执行任务时连续调用的APP名称,以及调用APP的顺序。
生成模块存储连续调用的APP名称的方式与上述存储连续使用的APP名称的方式相同,均采用APP对的方式存储。
判断模块,判断连续调用的APP之间是否存在信息传递或者信息传递的需求;若是,触发生成模块建立APP之间的有向图;若否,触发生成模块删除存储的不存在信息传递或者信息传递的需求的APP对;
生成模块,还用于根据连续调用APP的顺序,建立APP之间的有向图;根据APP之间的有向图,生成APP生态图
生成模块根据触发消息删除存储的不存在信息传递或者信息传递的需求的连续调用的APP;
在另一个实施方式中,生成模块为有向边设置权重系数,权重系数的大小表示其连接的两个APP之间信息传递的概率的大小。APP之间初始建立有向图的有向边时,权重系数均为相同的值。
生成模块建立APP之间的有向图前,执行以下步骤:
步骤241,判断APP之间是否存在有向图,若存在有向图,执行步骤242;若不存在,执行步骤244;
步骤242,判断要建立的有向边与已存在的有向边方向是否相同,若方向相同,执行步骤243,若方向不同,执行步骤244;
步骤243,增加与所述方向同向的有向边的权重系数;
步骤244,建立具有新方向的有向边;
步骤245,建立APP之间的有向边。
在另一实施方式中,检测模块执行其检测功能之前,生成模块还用于执行以下步骤:
步骤01,获取终端安装的APP名称;
步骤02,将APP按功能分类,将相同或相似功能的APP分组为一个簇,形成一个或多个APP簇;其中APP簇中包含一个或多个APP;
进一步的,当一个APP具有多种功能时,则可以对其进行交叉划分,即划分到多个簇中,该APP属于多个APP簇的交集。
优选地,对于具有多种功能的APP,可以结合用户使用习惯对其分簇进行优化,优先按用户使用习惯进行分簇。
在另一实施方式中,检测模块检测到终端安装了新的APP,或者检测到终端中存在APP生态图或APP生态系统中不包括的APP,则触发生成模块根据APP功能将其添加到与其功能对应的APP簇中,此外,检测模块检测用户对新APP的使用,其中,该检测操作可以是当新APP启动或被用户使用时向检测模块发送触发消息下执行的。
进一步的,检测模块检测从其他APP获取的信息是否正确,若正确,触发生成模块更新对应的APP生态图或APP生态系统或者槽位信息关联关系,生成模块建立新的APP与信息源APP对应的有向边,若错误,触发生成模块基于用户更正信息判断是否可以更新有向边,若可以,则更新对应的有向边,若无法建立有向边,则检测模块继续检测用户对该APP的使用。
优选的,检测模块基于一定的规则启动检测功能,如周期性的,或者根据用户设置的,或者在事件触发时,例如生成模块为新的APP分簇后,向APP发送消息,或者检测模块检测到新的APP时发送消息,该消息中携带一信息,指示该APP未与其他APP建立有向边,新APP收到该消息后,当其启动或者被用户使用时,向检测模块发送消息,触发其对该APP的使用进行检测。
在另一个实施方式中,判断模块判断终端是否具有APP生态图,若无,触发APP生态图生成装置初始化APP生态图,触发检测模块执行上述检测功能;若有,则结束。
判断模块判断终端是否具有APP生态图,其中,APP生态图可以存储于终端本地,也可以存储于云服务器。
进一步的,该装置包括存储模块,用于存储APP生态图等信息。
判断模块首先查询终端本地是否存储有该APP生态图,若有,则结束,若未存储APP生态图,触发生成模块向云服务器发送APP生态图获取请求,接收云服务器返回的该请求对应的响应消息,判断响应消息是否携带APP生态图,若不携带,触发APP生态图生成装置初始化APP生态图;若携带,则结束。
生成模块设置终端与APP生态图之间的对应关系,所述对应关系可以通过终端的唯一标识标识其对应的生态图,该唯一标识可以是终端的IMEI等唯一标识终端的信息,或者是使用终端的用户标识,该用户标识唯一标识一个用户。
在另一个实施方式中,所述APP生态系统生成装置还用于建立槽位信息的关联关系。
该槽位信息关联关系的建立可以在APP生态图生成后建立,也可以与APP生态图同步建立,或者独立于APP生态图而生成。具体为:
判断模块若判断APP之间存在信息传递或者信息传递需求,生成模块还用于执行以下步骤:
若APP之间存在调用关系,则获取被调用的APP利用的在先使用的APP的槽位,将该槽位设置为有向边的槽位;
若APP之间存在填充相同槽位内容的槽位,则将在先填充该相同槽位内容的槽位设置为有向边的槽位,并且将有向边的方向确定为从在先填充该相同槽位内容的APP指向在后填充该相同槽位内容的APP;
若槽位内容不同,存在相同或者属性相同的槽位,则将该相同的槽位或者在先使用的APP的后在后使用的APP的属性相同的槽位设置为有向边的槽位。
进一步的,建立了有向边的槽位后,当APP生态图更新或基于已有APP生态图生成新的APP生态图时,有向边的槽位随着其对应的有向边进行更新,例如当有向边删除时,其对应的槽位也删除。
在另一实施方式中,提供了另一种槽位信息关联关系建立方法:
检测模块,用于执行检测功能,检测用户与APP之间的交互;
在该步骤中,该检测功能的启动如上所述基于一定的规则,如周期性的,或者根据用户设置的,或者在事件触发时,如上述实施方式中所列的示例。
在一个实施方式中,事件触发还包括以下方式
APP接收用户的命令;其中APP接收用户的命令,则表明用户将使用该APP;其中,该命令可以是语音命令,也可以是其他方式的命令,APP判断槽位信息关联关系建立完成标识是否为真,若是,则不发送触发启动APP生态系统生成应用的消息,若该标识为否,则进一步判断是否已启动APP生态系统生成应用;若已启动,则APP不向APP生态系统生成应用发送使其启动的消息,若未启动,则向APP生态系统生成应用发送消息,触发其启动,并触发检测模块执行检测功能。
槽位信息关联关系建立完成标识存储于存储模块,用于标识该关联关系是否完成建立,其中在所述装置中设置检测计时器,当检测计时器的时间大于检测完成时间时,触发生成装置设置该标识为真,否则设置为假,该检测计时器可以根据用户的需求重新置零。
检测模块还用于检测用户与所有被使用的APP之间的交互;
检测模块对用户与所有APP之间的交互都进行检测,检测APP执行的任务以及执行任务时填充的槽位以及填充的槽位内容。
生成模块,用于获取并存储APP执行任务时填充的槽位、槽位内容,以及填充槽位内容的时间;
判断模块,用于判断用户是否还存在与APP之间的交互,若是,则触发检测模块检测用户与所有被使用的APP之间的交互;若否,判断是否存储有多个APP执行任务时填充的槽位及填充的槽位内容信息,若否,触发关闭模块将该装置关闭或者休眠;若是,判断APP之间是否存在信息传递或信息传递的需求,若是,则触发生成模块将存在信息传递或信息传递需求的槽位作为所述APP之间的公共槽位;
生成模块还用于查询存储模块存储的信息,判断是否存储有多个APP的相关信息,若是,则可以基于存储的信息建立槽位信息的关联关系,若否,则无法基于当前存储的信息建立该关联关系。
关闭模块,用于根据触发消息关闭或者休眠所述装置;
进一步的,若判断APP之间不存在信息传递或信息传递的需求,则结束。
具体的,判断模块判断APP之间是否存在信息传递或信息传递的需求包括以下步骤:
步骤2071,判断存储的任意两个或多个APP填充槽位内容的时间间隔是否小于预定连续时间间隔,若是,执行步骤2072,若否,执行步骤2074;
步骤2072,将满足该条件的APP分为一组;基于存储的信息判断每组中任意两个或多个APP是否填充相同的槽位内容;若是,执行步骤2073;
步骤2073,触发生成模块将在先填充相同槽位内容的槽位作为公共槽位;
步骤2074,判断存储的信息中槽位内容填充时间与当前时间间隔是否大于等于删除时间,若是,触发生成模块删除该填充时间对应的条目内容,若否,则结束。
其中删除时间大于预定连续时间间隔。
在该步骤中,对于存储时间较长的信息进行筛选删除,可以有效的节省存储空间,降低资源浪费。
在另一实施方式中,生成模块,还用于为公共槽位设置权重系数,初始建立公共槽位时,均为相同的默认权重系数。
进一步的,生成模块确定公共槽位前,判断该槽位是否已设置为所述APP之间的公共槽位,若是,增加所述公共槽位的权重系数;若否,则建立该公共槽位;
在另一实施方式中,生成模块为公共槽位设置权重系数wij,表示该公共槽位将APPi的信息传递至APPj的权重系数,类似的wji,表示该公共槽位将APPj的信息传递至APPi的权重系数。
其中,权重系数按△w的步长增加或减小。
在另一个实施方式中,生成模块将对应同一公共槽位的槽位内容以矩阵方式存储。
所述装置在建立槽位信息关联关系前,生成模块将APP按功能分簇,如上述记载的内容所示。检测模块检测到终端安装了新的APP,则触发生成模块根据APP功能将其添加到与其功能对应的APP簇中,并向该APP发送消息,该消息指示当APP检测到用户使用新APP时,触发检测模块的检测功能。进一步的,检测模块检测该新APP获取信息是否正确,若正确,触发生成模块为新的APP与信息源APP建立公共槽位,若错误,则触发生成模块基于用户更正信息判断是否可以建立公共槽位,若可以,则建立对应的公共槽位,若无法建立公共槽位,则结束。
槽位信息的关联关系可以基于APP生态图生成,在生成模块调整APP生态图时,适应性的调整该槽位关联关系,或者基于槽位信息关联关系调整APP生态图。对应的,当生成通用APP生态图后,采用上述方法可以形成通用的槽位关联关系,从而构成通用APP生态系统。
APP生态图的共享以及通用APP生态图的生成
在另一个实施方式中,提出了一种通用APP生态系统生成装置,用于生成与共享通用APP生态图,如图17所示,该装置包括:
获取模块,用于获取APP生态图;
获取模块可以通过接收用户主动上传APP生态图的方式获取,或者向多个用户发送请求,以获取其APP生态图,并且同时获取用户的喜好,年龄、社交群体等与用户相关的属性信息。
分类模块,用于对APP生态图分类,形成APP生态图簇;
对于所述获取的APP生态图,分类模块根据用户属性进行分类,将用户属性相同的APP生态图分为一组。
训练模块,用于对APP生态图簇中的APP生态图进行训练,形成对应用户属性的通用APP生态图。
训练模块具体用于执行以下步骤:
步骤3031,获取簇内多个APP生态图包括的APP;
步骤3032,为功能相同或可以互相替代的多个APP添加相同的标签;
步骤3033,对多个APP生态图进行融合,形成通用APP生态图;
在该步骤中,将具有相同标签的APP分为一组,称为APP组;利用APP组替代多个APP生态图中的与APP组对应的APP;根据多个APP生态图中APP和/或APP组之间的有向图,建立多个APP生态图中包括的APP和/或APP组之间的有向图,将多个APP生态图中相同APP或APP组之间的有向边的权重系数叠加构成通用APP生态图中有向边的权重系数。
步骤3035,将通用APP生态图存储于存储模块。
在该步骤中,将通用APP生态图存储于服务器的存储模块。
在一个实施方式中,将与通用APP生态图对应的用户属性作为索引,存储对应的通用APP生态图。
在另一实施方式中,在步骤3033之后,还包括以下步骤:
步骤3034-1,将融合后的APP生态图中有向边的权重系数低于最低权重系数的有向边删除;
步骤3034-2,判断是否存在孤立的APP或APP组,若是,则删除该APP或APP组,生成精简通用APP生态图;
步骤3034-3,将该精简APP生态图存储于存储模块。
在该步骤中,将该精简APP生态图与其对应的用户属性对应存储。
上述步骤3034-1至3034-3可以在步骤3035之前执行,也可以在步骤3035之后执行。
在一个实施方式中,采用上述装置生成通用或精简通用APP生态系统,具体的,将该装置执行的方法步骤中APP生态图替换为APP生态系统,其中对于通用或精简通用APP生态系统中有向边的槽位的形成,则与有向边同步更新、融合,即将相同的有向边的槽位采用“加”的方式进行更新。
在另一实施方式中,用户在生成用户特定的APP生态图前,先获取通用APP生态图或者精简的通用APP生态图,可以提高APP生态图训练速度。
此外,用户通常具有多个终端,存在用户各个终端间APP生态图共享的需求,其中,当用户当前使用的终端中不具有APP生态图时,优先向其他终端发送生态图获取请求以获取APP生态图,若未接收到其他终端的响应,则再向其他用户或云服务器获取APP生态图。
在一个实施方式中,上述APP生态系统生成装置还用于获取APP生态图,该装置还包括:
获取模块,用于向用户的其他终端发送APP生态图获取请求;
终端不具有APP生态图时,优先向用户的其他终端发送获取请求,以获取用户特定的APP生态图。
获取模块基于接收的响应,判断是否得到APP生态图;若是,则结束,若否,向与用户具有相同属性的好友发送APP生态图获取请求;
获取模块基于接收的响应,判断是否从好友获得APP生态图,若否,向通用APP生态系统生成装置发送APP生态图获取请求,该获取请求携带用户的属性信息;若是,触发生成模块识别终端包括的APP应用,并调整APP生态图;
步骤405,向云服务器发送APP生态图获取请求,该获取请求携带用户的属性信息;
其中,通用APP生态系统生成装置接收到获取模块发送的APP生态图获取请求后,通用APP生态系统生成应用执行以下步骤:
获取模块,接收终端发送的APP生态图获取请求,
训练模块,基于该请求携带的用户的属性信息,确定满足用户属性要求的APP生态图;其中,该APP生态图可以为通用和/或精简通用APP生态图。
获取模块,将响应消息发送给用户的终端,该响应消息携带满足用户属性要求的APP生态图的;
进一步的,当用户的属性信息包括多个用户属性时,训练模块优先选择满足最多用户属性的通用APP生态图作为满足用户属性要求的APP生态图;
在另一个实施方式中,当用户的属性信息包括多个用户属性时,训练模块基于用户属性获取通用APP生态图最小并集,该最小并集中包括的通用APP生态图的用户属性的并集与APP生态图获取请求中携带的用户的属性信息中的用户属性相同。
将通用APP生态图最小并集进行融合,并将融合后的APP生态图作为满足用户属性要求的APP生态图;其中融合方法同步骤3033的融合方法。
在另一个实施方式中,APP生态图获取请求中携带终端的能力信息,该能力信息包括终端的存储能力;
训练模块根据终端的存储能力判断是否具备存储所述满足用户属性要求的APP生态图的能力,若是,获取模块,将响应消息发送给用户的终端,该响应消息携带满足用户属性要求的APP生态图的,若否,基于该请求携带的用户的属性信息,确定满足用户属性要求的精简通用APP生态图,并进一步根据终端的存储能力判断是否具备存储所述满足用户属性要求的APP生态图的能力,若终端不具备存储所述满足用户属性要求的APP生态图的能力,触发获取模块向用户发送响应消息,响应消息携带APP生态图获取失败的原因。
获取模块,用于接收通用APP生态系统生成装置发送的响应消息;若响应消息携带APP生态图时,触发生成模块识别终端包括的APP应用,若响应消息携带APP生态图获取失败的原因,且原因为存储空间不足,则向通用APP生态系统生成装置发送终端安装的APP名称,以使得云服务器为终端生成适于终端的APP生态图;
进一步的,通用APP生态系统生成装置接收到获取模块发送的消息后,基于终端安装的APP调整满足用户属性要求的APP生态图,其中满足用户属性要求的APP生态图为基于通用APP生态图生成。
调整APP生态图与通用APP生态系统生成装置调整满足用户属性要求的APP生态图的具体步骤为:
基于终端安装的APP应用,生成模块或训练模块识别APP生态图中终端不包括的APP,记为APP1,以及终端中未包括在APP生态图中的APP,记为APP2,判断APP2中是否包括与APP1的功能相同的替代APP,若有,则用APP2中功能相同的APP替换对应的APP1中的APP;若无,则删除APP生态图中的APP1及与之连接的有向边,对于APP2中未被添加到APP生态图的APP3,将其以孤立的节点设置于APP生态图中,进一步的,将其放置入APP生态图中与之功能对应的簇中。
通用APP生态系统生成装置生成适于终端的APP生态图后,获取模块将其发送给APP生态系统生成装置的获取模块。
APP生态系统生成装置的获取模块接收该APP生态图后触发存储模块存储。
进一步的,判断模块判断存储模块存储空间不足时,向用户发送提示,使得用户删除一些信息使终端满足存储空间。
在另一实施方式中,还提供了一种用于语音交互装置,如图18,该装置包括:
收发模块,用于获取用户输入的语音命令;
执行模块,用于执行以下步骤:
步骤502,判断是否可以执行用户的语音命令;若否,获取APP执行语音命令未填充的槽位,执行步骤503;
步骤503,调用APP生态图,获取与执行语音命令的APP具有有向边且有向边方向指向执行语音命令的APP的候选APP;
其中,执行模块对用户的语音命令进行解析,将关键信息填充至语音命令对应的任务的槽位中。
进一步的,执行模块若可以执行用户的语音命令,则根据语音命令执行对应的动作。
具体的,执行模块调用APP生态图后,判断执行语音命令的APP在APP生态图中是否具有与其关联且有向边方向指向执行语音命令的APP的有向边,若具有,则进一步提取与执行语音命令的APP具有有向边且有向边方向指向执行语音命令的APP的候选APP。若不具有满足上述条件的有向边,则判断其是否属于某个簇,若不属于,则根据自身功能将其添加到与之功能对应的APP簇中,当APP属于某个簇时,获取与其属于同一簇的其他APP关联的指向其他APP的有向边的另一端的APP,进一步判断所述另一端的APP是否具有所述未填充内容的槽位或与该槽位具有相同属性的槽位,若具有,则将具有所述未填充内容的槽位或与该槽位具有相同属性的槽位的另一端的APP作为候选APP,否则执行步骤505。
在步骤502之后,步骤503之前,执行模块还用于执行以下步骤:
步骤5031,判断该装置的存储模块是否存储有APP生态图,若是,则执行步骤503;若否,执行步骤5032;
步骤5032,触发收发模块发送APP生态图获取请求;
收发模块向云服务器或者通用APP生态系统生成装置发送APP生态图获取请求,进一步的,该获取请求包括终端的标识,该标识用于标识终端对应的APP生态图。
云服务器或者通用APP生态系统生成装置基于该标识查询对应的APP生态图,将查询到的APP生态图发送至收发模块,若未查询到,则判断是否具有通用APP生态图,若是,则向收发模块发送通用APP生态图,否则,向收发模块发送失败响应消息。
步骤5033,执行模块基于收发模块接收的消息判断是否获取到APP生态图;若否,触发APP生态系统生成装置初始化APP生态图,以及执行步骤505;若是,执行步骤503;
优选的,在步骤5033中,执行步骤503之前执行模块还执行以下步骤:
步骤5034,判断APP生态图的类型,若为与终端对应的APP生态图,执行步骤503;若为通用APP生态图,则执行步骤5035;
步骤5035,将通用APP生态图适配为与终端安装的APP一致的APP生态图,并执行步骤503。
在该步骤503中,基于调用的APP生态图,可以查询到与执行语音命令的APP建立关联关系的APP,进一步的,根据有向边的方向,提取有向边的方向指向执行语音命令的APP的建立关联关系的APP。
在另一实施方式中,步骤503中,进一步判断提取的APP是否具有所述未填充内容的槽位或与该槽位具有相同属性的槽位,若具有,则将该提取的APP作为初选APP,该初选APP为候选APP,否则执行步骤505。
进一步的,可以基于有向边的权重系数选择候选APP,将权重系数大于阈值的初选APP作为候选APP。
在另一个实施方式中,在APP生态图中,还包括与APP对应的时间戳,该时间戳指示APP最近被使用的时间。执行模块根据时间戳对所述初选APP排序,获取最近使用时间最接近当前时间的初选APP作为候选APP,或者将经过权重系数筛选的初选APP按时间戳进行排序,筛选最近使用时间最接近当前时间的初选APP作为候选APP,其中候选APP可以为一个或多个,所述候选APP的并集为包括需要填充的槽位的最小APP集合。
在另一实施方式中,执行模块基于上述因素确定候选APP时可以调整各因素的筛选顺序,例如先基于时间排序选出多个APP,再基于权重系数进行选择以确定候选APP。
执行模块确定候选APP后,执行步骤504。
步骤504,从候选APP中提取未填充的槽位涉及的内容,将其填充至APP对应的槽位;执行步骤506;
在该步骤中,确定候选APP后,获取候选APP在此之前执行任务时填充的与该未填充槽位内容的槽位相同或属性相同的槽位,基于候选APP执行与获取的槽位内容相关的任务的时间先后顺序,优先选择与最新执行任务相关的槽位内容作为未填充槽位的槽位内容。
步骤505,执行模块基于用户当前状态,对槽位进行填充,或者向用户发起多轮对话,获取需要填充的槽位内容。执行步骤506。
进一步的,执行模块还用于执行步骤506,执行语音命令对应的任务。
在另一实施方式中,用于语音交互的装置,还用于执行以下交互方法:
收发模块,用于获取用户输入的第一语音命令;
执行模块,用于执行以下步骤:
步骤602,根据第一语音命令填充APP对应的槽位内容;
其中,执行模块解析语音命令,提取关键信息进行槽位内容的填充。
步骤603,调用APP生态图,获取与APP具有有向边,且有向边的箭尾指向该APP的另一个或多个APP;
在该步骤,执行模块调用APP生态图后,同样判断执行第一语音命令的第一APP在APP生态图中是否具有与其关联的有向边,即是否是孤点,若具有,获取与第一APP具有有向边,且有向边的箭尾指向该APP的另一个或多个APP;若不具有,则根据自身功能将其添加到与之功能对应的APP簇中。
同样的,在步骤602之后,步骤603之前,执行步骤5031-步骤5035,相应的,将步骤5031-步骤5035中的步骤502替换为602,将步骤503替换为步骤603,将步骤5033中执行步骤505替换为结束。
步骤604,将填充的槽位及槽位内容推送至所述另一个或多个APP;
在一个实施方式中,将槽位及槽位内容推送至所有与该APP具有有向边,且有向边的箭尾指向该APP的其他APP;
在另一个实施方式中,筛选出与该APP连接的有向边的权重系数大于门限,且有向边的箭尾指向该APP的其他APP,将槽位及槽位内容推送至被选中的APP。
在另一个实施方式中,确定所述另一个或多个APP是否具有与填充的槽位相同或属性相同的槽位,若具有,则推送所述相同或属性相同的槽位及对应的槽位内容。
进一步的,该装置还包括检测模块,用于检测检测用户对第二APP的使用;判断用户使用第二APP时,触发收发模块获取用户输入语音命令;
收发模块,还用于获取用户输入的第二语音命令;
执行模块,还用于执行以下步骤:
步骤607,判断执行第二语音命令所需的槽位是否全部填充内容,若否,执行步骤608;若是,执行步骤610;
步骤608,调用推送的槽位及槽位内容,判断推送的槽位内容是否可以填充APP中执行第二语音命令所需的槽位,若可以填充,利用所述槽位内容填充槽位,并判断是否可以执行语音命令,若可以执行语音命令,执行步骤610,若不能执行语音命令,执行步骤609;若不能填充,执行步骤609;
步骤609,与用户进行多轮对话,获取需要填充的槽位对应的内容;执行步骤610;
步骤610,执行语音命令对应的任务。
进一步的,步骤608具体包括以下步骤:
步骤081,获取与第二语音命令相关的任务所需填充的槽位中未填充的槽位;
步骤082,判断推送的槽位是否与所需填充的槽位相同或属性相同;若是,执行步骤083,若否,执行步骤609;
步骤083,利用推送的槽位内容填充对应未填充的槽位;
具体的,对于每个未填充的槽位,判断是否具有多个推送的槽位内容可以用于填充该槽位,若否,将对应的槽位内容填充至对应的未填充的槽位,执行步骤085;若是,执行步骤084;
步骤084,对槽位内容进行筛选,利用选择的槽位内容对未填充的槽位进行内容填充;
在一个实施方式中,选择与槽位内容关联的有向边的权重系数最高的槽位内容对未填充的槽位填充内容;
在另一实施方式中,选择最近推送的槽位内容进行填充;
在另一个实施方式中,将与槽位内容关联的有向边的权重系数大于阈值的槽位内容作为初选槽位内容,根据推送时间对初选槽位内容进行排序,选择最近推送的初选槽位内容填充未填充的槽位。
进一步的,步骤084之后,还包括以下步骤:
步骤085,判断是否可以执行用户的第二语音命令;若是,执行步骤610;若否,执行步骤609。
在另一实施方式中,在步骤610之后,执行模块还用于执行以下步骤:
步骤507,基于APP生态图填充槽位内容执行用户的第二语音命令后,判断是否正确执行用户的语音命令,若是,执行步骤508;若否,执行步骤509;
其中,APP生态系统生成装置或者执行模块判断根据填充的槽位内容执行的命令是否被用户纠正,若未被用户纠正,则说明上述信息传递是正确的,若被用户纠正,则说明上述信息传递存在错误。
步骤508,增加APP生态图中所述执行命令的APP与存在槽位内容利用的候选APP之间的有向边的权重系数;
其中,该步骤也可以由APP生态系统生成应用执行。
步骤509,获取用户纠正的槽位内容,判断所述纠正的槽位内容是否与APP生态图中的推送的槽位内容相同,若相同,则当执行命令的APP与所述槽位内容相同的APP之间存在有向边,则增加该有向边的权重,若不存在有向边,则建立有向边。
进一步的,降低信息传递存在错误的APP之间的有向边的权重系数,若降低后的权重系数为0或负值,则删除APP之间的有向边。
进一步的,该步骤同样可以由APP生态系统生成装置或者执行模块执行。
在另一实施方式中,用于语音交互的装置还用于执行以下方法步骤:
收发模块,用于获取用户输入的第一语音命令;
收发模块检测并接收到用户的语音命令发送给执行模块,执行模块对该语音命令进行解析,确定其对应的第一任务。
执行模块,用于根据第一语音命令填充第一APP执行语音命令对应的第一任务时相应的槽位以及公共槽位;
具体的,执行模块填充槽位内容时基于建立的槽位信息关联关系判断填充的槽位是否包括公共槽位,若是,填充APP中第一任务对应的槽位的同时将槽位内容填充至公共槽位内容矩阵;
可替换的,在另一实施方式中,执行模块填充槽位内容时若涉及公共槽位的填充,则直接填充公共槽位,不再对APP中该对应槽位进行填充,APP执行任务时直接调用该公共槽位。
执行模块填充公共槽位内容矩阵时,判断矩阵是否为空矩阵,若是,直接填充矩阵的第一行;若矩阵为非空矩阵时,则优选的,判断矩阵的时间戳列填充的时间与当前时间的差值是否大于等于删除时间,若是,则删除对应该时间戳的行,若否,不执行删除操作;此外,为矩阵增加一行,将第一语音命令涉及的公共槽位相关的信息填充至矩阵新增的行。
收发模块,还用于获取用户输入的第二语音命令;
该第二语音命令可以为用户向第一APP输入,或者向第二APP输入;
其中第二APP可以为终端建立槽位信息关联关系之后安装的,也可以为包括在槽位关联关系中的APP。
执行模块还用于执行以下步骤:
步骤704,根据第二语音命令填充执行该语音命令对应的第二任务的APP的槽位;
步骤705,判断是否存在未填充的执行第二任务必须填充的一个或多个槽位,若是,执行步骤706,若否,执行步骤710;
步骤706,查询槽位信息的关联关系,判断该必须填充的一个或多个槽位是否可以利用公共槽位内容矩阵,若是,利用公共槽位内容矩阵填充该必须填充的槽位,并执行步骤708,若否,执行步骤709;
具体的,该步骤706包括以下步骤:
步骤7061,判断执行第二任务的APP是否具有与该必须填充的槽位相同或者属性相同的一个或多个公共槽位,若否,执行步骤7062;若是,将所述公共槽位作为待选公共槽位,并执行步骤7063;
步骤7062,判断执行第二任务的APP所属的簇中其他APP是否具有与该必须填充的槽位相同或属性相同的一个或多个公共槽位,若是,将所述公共槽位作为待选公共槽位,并执行步骤7063;若否,执行步骤709;
步骤7063,对所述待选公共槽位的槽位内容矩阵进行预处理,将填充时间满足删除时间对应的矩阵的行删除,筛选槽位内容矩阵不为空矩阵的待选公共槽位为候选公共槽位,执行步骤7064;若不存在槽位内容矩阵不为空矩阵的公共槽位,则执行步骤709;
步骤7064,从候选公共槽位的槽位内容矩阵中选择满足条件的槽位内容填充该必须填充的槽位;
优选的,在该步骤中,确定是否可以基于用户与APP的交互过程得出用户意图填充的槽位内容是与哪个特征相关的槽位内容,若可以确定,则优先选择该特征对应的槽位内容填充待填充的槽位,若无法确定,则基于一定规则选择。
其中,所述特征包括以下中的一种或多种:时间信息、APP信息、槽位信息等。
该一定规则可以为以下中的一种:
选择公共槽位内容矩阵中最新填充时间的槽位内容填充必须填充的槽位;
选择公共槽位内容矩阵中填充时间满足预定选择时间的行,再基于源APP与第二APP之间信息传递的权重系数选择权重系数最高的槽位内容填充必须填充的槽位;
首先基于公共槽位内容矩阵中源APP与第二APP之间信息传递的权重系数筛选权重系数高于预定权重系数的行,其次选择最新填充时间的槽位内容填充必须填充的槽位;
步骤708,判断是否可以执行第二语音命令对应的任务,若是,执行步骤710,若否,执行步骤709;
步骤709,与用户进行交互获取必须填充的槽位的槽位内容,并执行步骤710;
步骤710,执行该第二语音命令对应的任务。
在另一实施方式中,执行模块执行步骤710之后,还执行以下步骤
步骤711,判断上述公共槽位的调用是否准确,若是,则执行步骤712,若否,执行步骤713;
步骤712,增加对应该公共槽位的第二APP与槽位内容源APP之间的权重系数;
步骤713,获取用户纠正的槽位内容,判断所述纠正的槽位内容是否存在与必须填充的槽位相同或属性相同的公共槽位的槽位内容矩阵中槽位内容相同的情形,若存在,则第二APP与所述源APP之间存在公共槽位,则增加对应的权重系数,降低错误公共槽位内容的槽位对应的权重系数,若不存在公共槽位,则为二者构建公共槽位。
在另一实施方式中,该用于语音交互的装置还用于执行以下方法。
检测模块,用于监测用户对APP的使用;
判断模块,用于判断终端是否存在对应的APP生态系统,若否,触发收发模块发送获取请求;
收发模块,用于发送获取请求,以获取APP生态系统;
判断模块,判断是否接收到APP生态系统;
当接收到APP生态系统时,该用于语音交互的装置利用APP生态系统。
进一步的,若未接收到APP生态系统,判断模块触发用于APP生态系统生成的装置初始化APP生态系统;
在另一个实施方式中,在触发APP生态系统生成的装置初始化APP生态系统之前,收发模块向用户发送确认消息,以使用户确认是否进行APP生态系统初始化操作,若收发模块接收到用户确认消息,则触发APP生态系统生成装置初始化APP生态系统,若收发模块接收到用户不执行该初始化的消息,则不执行该触发操作。
收发模块,还用于获取用户的语音命令;
执行模块,用于执行以下步骤:
步骤807,判断是否可以根据用户的语音命令执行对应的任务,若是,执行步骤808;若否,执行步骤810;
步骤808,执行该任务,并且根据APP生态系统获取箭尾指向该APP的有向边的槽位与执行该任务填充的槽位相同或属性相同的槽位;执行步骤809;
步骤809,为该有向边的槽位添加标签,该标签指示该有向边的槽位对应的槽位内容更新时间。
具体的,当执行任务填充的槽位与关联于该APP的有向边的槽位相同,则为该槽位添加时间戳,其中可以包括多个时间戳,表示该槽位被填充的不同时间;
优选的,当APP执行任务多次填充该相关槽位的槽位内容未改变,则保留填充该槽位内容的最新时间戳,进一步的,当时间戳与当前时间间隔大于等于删除时间,则删除相应的时间戳。
通过添加时间戳,便于APP识别是否调用与该有向边的槽位关联的另一个APP的槽位内容,并且可以基于时间识别其调用哪个APP。
进一步的,判断模块判断接收到APP生态系统时,执行模块执行步骤811;判断模块判断终端存在对应的APP生态系统时,执行模块执行步骤812;
步骤811,与用户进行交互,获取执行任务必须填充的未填充的槽位的内容;并执行步骤808;
步骤812,查询APP生态系统,识别与APP建立有向图、有向边箭头指向该APP、并且有向边的槽位与该未填充的槽位相同或属性相同的一个或多个第二APP;并执行步骤813;
步骤813,基于识别的一个或多个APP填充APP中未填充的槽位;执行步骤814;
在一个实施方式中,执行模块获取所述一个或多个APP与该APP之间有向边的槽位的标签信息,基于标签信息确定信息源APP,并从信息源APP获取与该有向边槽位相同的槽位的内容,并填充至APP未填充的对应槽位中;
在一个实施方式中,执行模块确定是否可以基于用户与APP的交互过程得出用户意图填充的槽位内容是与哪个特征相关的槽位内容,若可以确定,则优先调用该特征对应的APP的对应槽位内容,若无法确定,则基于一定规则选择调用的APP。
其中,所述特征包括以下中的一种或多种:时间信息、APP信息、槽位信息等。
对于存在多个与特征对应的APP时,基于一定规则选择信息源APP,存在一个与特征对应的APP时,选择该APP对应的槽位内容填充。
该一定规则可以为:
基于APP与信息源APP之间有向边的权重筛选,选择权重系数大于预定值的APP,进一步的基于有向边的槽位的标签选择信息源,例如标签中时间戳为最近的时间的APP;
步骤814,判断是否可以执行用户的语音命令对应的任务,若是,执行步骤808,若否,执行步骤811。
进一步的,执行模块还用于实时更新APP生态系统,执行以下步骤:
步骤815,判断上述槽位填充是否准确,若是,则执行步骤816,若否,执行步骤817;
步骤816,增加APP生态系统中所述执行命令的APP与信息源APP之间的有向边的权重系数;
步骤817,获取用户纠正的槽位内容,判断所述纠正的槽位内容是否与APP生态系统中的APP填充的槽位内容相同,若相同,则当执行命令的APP与所述槽位内容相同的APP之间存在有向边,则增加该有向边的权重,判断信息源APP被调用槽位内容的槽位是否为有向边的槽位,若不是,则增加该槽位作为有向边的槽位,若不存在有向边,则建立有向边,以及将调用槽位内容的槽位设置为有向边的槽位。
本发明实施例提供了一种装置,所述装置包括处理器和存储器,所述存储器存储可被处理器执行的计算机指令,当处理器执行上述计算机指令时,实现如上所述的方法。
本发明实施例提供了一种计算机可读存储介质,用于存储计算机指令,所述计算机指令用于实现如上所述的方法。
一种终端,包括如上所述的装置。
可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质可以包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、闪存、可擦式可编程只读存储器(EPROM)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码
以上说明只是为了方便理解本发明而举出的例子,不用于限定本发明的范围。在具体实现时,本领域技术人员可以根据实际情况对装置的部件进行变更、增加、减少,在不影响方法所实现的功能的基础上可以根据实际情况对方法的步骤进行变更、增加、减少或改变顺序。
尽管已经示出和描述了本发明的实施例,本领域技术人员应当理解:在不脱离本发明的原理和宗旨的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由权利要求及其等同替换所限定,在未经创造性劳动所作的改进等,均应包含在本发明的保护范围之内。