信息推荐方法、装置、存储介质及服务器与流程

文档序号:18221820发布日期:2019-07-19 23:04阅读:152来源:国知局
信息推荐方法、装置、存储介质及服务器与流程

本申请涉及计算机技术领域,尤其涉及一种信息推荐方法、装置、存储介质及服务器。



背景技术:

随着我国经济发展水平的不断提高,人们对医疗服务的要求也越来越高。传统的医疗服务已经不能满足人们快节奏的生活需求,因此医院的信息化建设至关重要。

对于大型综合性医院而言,医院都以科室为诊疗单元进行日常的诊疗工作。然而现状是,由于广大民众的医疗基本知识相对匮乏,导致很多患者在就诊时,只知道自身不适症状,却不知道应该挂哪个科室,常常需要去咨询服务人员或者挂号人员才能知道,非常麻烦。为此,部分医院设置了专门的智能导诊服务,其通常基于多轮对话系统来实现,比如事先设定好每一轮对话的问题,以一种类似于“填表格”的方式收集用户回答,最后将各轮回答作为特征输入分类器中,匹配得到对应科室。但是由于这种多轮对话系统中每轮对话问题是固定的,故只能适用于特征量较少的对话场景,适用范围小,灵活性差。



技术实现要素:

本申请实施例提供一种信息推荐方法、装置、存储介质及服务器,能适用于各种类型的对话场景,适用范围广,灵活性高。

本申请实施例提供了一种信息推荐方法,包括:

获取已确定的关键词集,所述关键词集中包括至少一个关键词;

根据知识图谱确定每个所述关键词对应的至少一个候选副节点、以及每个所述候选副节点对应的多个候选主节点;

根据所述关键词集和所述候选主节点,确定每个所述候选副节点的推荐度;

根据所述推荐度从所述候选主节点和候选副节点中确定目标节点;

根据所述目标节点生成推荐信息,并向所述用户提供所述推荐信息。

本申请实施例还提供了一种信息推荐装置,包括:

获取模块,用于获取已确定的关键词集,所述关键词集中包括至少一个关键词;

第一确定模块,用于根据知识图谱确定每个所述关键词对应的至少一个候选副节点、以及每个所述候选副节点对应的多个候选主节点;

第二确定模块,用于根据所述关键词集和所述候选主节点,确定每个所述候选副节点的推荐度;

第三确定模块,用于根据所述推荐度从所述候选主节点和候选副节点中确定目标节点;

生成模块,用于根据所述目标节点生成推荐信息,并向所述用户提供所述推荐信息。

本申请实施例还提供了一种存储介质,所述存储介质中存储有多条指令,所述指令适于由处理器加载以执行上述任一项信息推荐方法。

本申请实施例还提供了一种服务器,包括处理器和存储器,所述处理器与所述存储器电性连接,所述存储器用于存储指令和数据,所述处理器用于执行上述任一项所述的信息推荐方法中的步骤。

本申请提供的信息推荐方法、装置、存储介质及服务器,通过获取已确定的关键词集,该关键词集中包括至少一个关键词,之后,根据知识图谱确定每个该关键词对应的至少一个候选副节点、以及每个该候选副节点对应的多个候选主节点,之后,根据该关键词集和该候选主节点,确定每个该候选副节点的推荐度,并根据该推荐度从该候选主节点和候选副节点中确定目标节点,之后,根据该目标节点生成推荐信息,并向该用户提供该推荐信息,从而能在多轮对话系统中,结合知识图谱和文本两种方式对用户的输入信息进行匹配搜索,匹配精准度高,并且由于每次对话都能根据用户输入内容灵活调整,故不仅能适用于各种类型的对话场景,应用范围广,且能极大地缩短对话次数,提高对话效率。

附图说明

下面结合附图,通过对本申请的具体实施方式详细描述,将使本申请的技术方案及其它有益效果显而易见。

图1为本申请实施例提供的信息推荐系统的场景示意图。

图2为本申请实施例提供的信息推荐方法的流程示意图。

图3为本申请实施例提供的步骤s103的流程示意图。

图4为本申请实施例提供的步骤s104的流程示意图。

图5为本申请实施例提供的步骤s104的另一流程示意图。

图6为本申请实施例提供的用户挂号流程的界面操作示意图

图7为本申请实施例提供的医院导诊系统中候选主节点和候选副节点的确定过程示意图。

图8为本申请实施例提供的信息推荐装置的结构示意图

图9为本申请实施例提供的信息推荐装置的另一结构示意图。

图10为本申请实施例提供的第二确定单元的结构示意图。

图11为本申请实施例提供的服务器的结构示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

本申请实施例提供一种信息推荐方法、装置、存储介质及服务器。

请参阅图1,图1为信息推荐系统的场景示意图,该信息推荐系统可以包括本申请实施例提供的任一种信息推荐装置,该信息推荐装置可以集成在服务器,比如医院导诊系统的后台服务器中。

该服务器可以获取已确定的关键词集,该关键词集中包括至少一个关键词;根据知识图谱确定每个该关键词对应的至少一个候选副节点、以及每个该候选副节点对应的多个候选主节点;根据该关键词集和该候选主节点,确定每个该候选副节点的推荐度;根据该推荐度从该候选主节点和候选副节点中确定目标节点;根据该目标节点生成推荐信息,并向该用户提供该推荐信息。

其中,该知识图谱是一种通过语义关联把各种实体关联起来的图谱组织形式,主要由节点、节点向量、边和节点标注形成的图结构,其中该节点标注包括主节点标注和副节点标注,其中节点即为实体,每个实体代表一个关键词。该关键词集通常是根据用户的输入语句或输入选项得到的。该推荐信息可以包括按照推荐度从高到低排序的目标节点,该目标节点可以表现为文字形式,该推荐信息还可以包括目标节点的相应描述图形。

该信息推荐系统还可以包括客户端,比如安装有导诊服务应用的移动终端,该客户端可以通过语音、触屏或者手势等方式获取用户的输入语句或输入选项,并传送给服务器,以便服务器进行后续的关键词匹配操作。

譬如,在图1中,对于医院导诊系统来说,可以预先根据大量的症状名和疾病名构建知识图谱,其中构建好的知识图谱中会包括多个预设主节点、以及与每个预设主节点相连的预设副节点,预设主节点为症状名,预设副节点为疾病名称,之后当用户需要挂号时,可以先在移动终端的导诊服务应用中输入对自身症状的描述语句,该描述语句经由移动终端实时传送至服务器中。服务器或者移动终端会利用训练好的分类器对该描述语句进行处理,得到已确定的关键词(也即症状名,相当于知识图谱中的主节点),之后,服务器会找到知识图谱中与该症状连接的疾病名(也即候选副节点)、以及与该疾病名连接的其余症状(也即候选主节点),并通过指定算法计算每个候选副节点(也即疾病名)对应的推荐度,根据推荐度选出目标节点(也即目标疾病名或者目标症状)提供给用户,当目标节点为疾病名时,对话结束,当目标节点为症状时,继续第二轮对话,此时,用户可以从提供的目标节点中进行选择,服务器会将选择的目标节点和第一次得到的关键词作为已确定的关键词,重复上述步骤,直到目标节点为疾病名或者对话次数达到设定次数时,结束对话。

如图2所示,图2是本申请实施例提供的信息推荐方法的流程示意图,具体流程可以如下:

s101.获取已确定的关键词集,该关键词集中包括至少一个关键词。

本实施例中,该关键词集主要根据用户的输入信息得到,该输入信息可以通过语音或者触屏等方式获取,其可以包括输入语句和/或输入选项,其中,当该输入信息为输入语句时,可以通过分类器来来确定该输入语句对应的关键词。该输入信息为输入选项时,每个选项即对应一个关键词,比如,在首次对话完成后,服务器可以向用户提供多个选项,以便用户从中选择一个作为关键词。

例如,上述步骤s101具体可以包括:

获取用户当前输入的输入信息;

确定该输入信息对应的至少一个目标词标签,并获取历史输入操作对应的已确定目标词标签;

将该目标词标签和已确定目标词标签作为关键词,得到关键词集。

本实施例中,当该输入信息为输入语句时,可以通过一些深度学习模型来确定该输入语句对应的词标签,该深度学习模型可以包括分词算法、词嵌入算法、双向lstm和crf方法,其中该分词算法可以包括jieba,该词嵌入算法可以包括fasttext,该lstm(longshort-termmemory,长短期记忆网络)是一种时间递归神经网络,crf(conditionalrandomfieldalgorithm,条件随机场算法)是一种基于遵循马尔可夫性的概率图模型。

比如,可以预先训练好这些深度学习模型,之后当需要确定关键词时,可以先利用训练好的分词算法和词嵌入算法将语句信息嵌入成多个词向量,并将每一个词向量输入一个双向lstm网络中,以得到包含上下文信息的词向量,之后,将该词向量输入crf网络,以得到该语句信息中各个词语的词标签(比如地点,人名,症状名、疾病名等),之后选择出和已构建的知识图谱一致的词标签作为目标词标签。通常,用户每输入一次语句信息(也即与服务器对话一次),都能得到对应的目标词标签,当用户与服务器进行多轮对话时,每完成一次对话,服务器均会将已对话过的所有目标词标签作为关键词集。

需要指出的是,当用户此次输入操作得到的目标标签为指定标签,比如疾病名时,可以直接向用户提供该结果,并结束对话,否则,需要根据关键词集进行后续分析操作。

s102.根据知识图谱确定每个该关键词对应的至少一个候选副节点、以及每个该候选副节点对应的多个候选主节点。

本实施例中,该知识图谱是一种通过语义关联把各种实体关联起来的图谱组织形式,主要由节点、节点向量、边和节点标注形成的图结构,其中该节点标注包括主节点标注和副节点标注,节点即为实体,每个实体代表一个关键词。对于每次得到的关键词集,可以先找到每个关键词在知识图谱中的节点位置(通常为主节点),然后确定与该节点直接连接的副节点作为候选副节点,与该候选副节点连接的主节点(包括直接连接的主节点、以及与该主节点连接的主节点)作为候选主节点。

容易理解的是,该知识图谱应当是预先构建好的,此时,该构建步骤可以包括:

获取预设的副核心词集、以及该副核心词集中每个该副核心词对应的主核心词集;

确定每个该主核心词对应的第一向量变量、以及每个该副核心词对应的第二向量变量;

利用预设模型、以及该第一向量变量和第二向量变量,确定该第一向量变量对应的第一向量、以及该第二向量变量对应的第二向量;

根据该第一向量和第二向量构建知识图谱。

本实施例中,该副核心词集和主核心词集都是用户预先设定好的,比如该副核心词集可以是大量疾病名,该主核心词集可以是大量疾病的症状名,等等。该预设模型包括截断随机游走模型和skip-gram神经网络模型,该构建过程主要分三步:

①定义一个带标注的图g,表示如下:

g=(v,e,x,y);

其中v表示图的节点的集合(相当于核心词集),e表示图的边的集合(相当于主核心词和副核心词的连接关系)。x是节点的向量化表示(相当于向量变量)的集合,也就是{v1,v2....vn},其大小为一个n*dim的矩阵,dim为每个节点的向量的维度数(人为设定,比如为512维)。y是每个节点的标注构成的矩阵。

②利用截断随机游走模型选取节点构成游走路径,比如每次以某一节点为根结点,随机选取与其相邻的节点并构成一条游走路径。对于每个节点进行多次游走,即可得到多组由图中节点构成的路径。

③将上述步骤得到的游走路径反馈给skip-gram神经网络模型,以研究节点与节点之间的邻接关系。该神经网络模型通过递归来学习节点之间的邻接关系,从而调整每个节点的向量表示。此模型的目标函数为:

其中,w为设定好的临界距离,v表示节点向量,该目标函数主要表示用第i个节点向量来预测它之前的i个节点向量,由于我们已经知道第i个节点向量和它前面i-1个节点向量实际上的真实值了,那么我们的目的就是构造一个网络,使得正确预测的概率最大。通过梯度下降法逐步调整相关节点的向量,最终可得到每个节点的表示向量(也即第一向量和第二向量),也就是完成了图的向量化。此时,每个节点的向量、以及节点与节点之间的连接关系、每个节点的类型(指主节点还是副节点)都是确定的。

s103.根据该关键词集和该候选主节点,确定每个该候选副节点的推荐度。

例如,请参见图3,上述步骤s103具体可以包括:

s1031.根据该关键词集确定每个该候选副节点的第一相关度。

本实施例中,该第一相关度主要用于衡量单个候选副节点与关键词集之间的相关性,比如,对于医院导诊系统来说,该第一相关度用于衡量某种疾病与用户输入症状之间的相关性。

例如,上述步骤s1031具体可以包括:

确定每个该关键词对应的图谱嵌入向量,得到至少一个第一图谱向量;

确定每个该候选副节点对应的图谱嵌入向量,得到至少一个第二图谱向量;

计算每个该第二图谱向量与该至少一个第一图谱向量之间相似度的和值,得到对应候选副节点的第一相关度。

本实施例中,该相似度可以通过余弦相似度函数或者其他相似度函数进行计算。由于知识图谱构建好后,每个节点(包括主节点和副节点)的向量就已经确定了,故只要找到关键词对应的主节点,则该主节点的向量即为第一图谱向量,该主节点所连接的副节点(也即候选副节点)的向量,即为第二图谱向量,该图片嵌入向量可以是512维的向量。之后,可以基于向量先计算每个候选副节点与每个候选主节点的相似度,并将属于同一候选副节点的相似度进行求和,将和值作为该候选副节点的第一相关度。

比如,对于某个候选副节点dt,该第一相关度s1t计算公式可以为:

其中,n为关键词集中关键词的总数,gi为第i个关键词对应的第一图谱向量,gt为候选副节点dt对应的第二图谱向量,sim()为余弦相似度函数。

s1032.根据同一该候选副节点对应的多个该候选主节点与该关键词集,确定对应候选副节点的第二相关度。

本实施例中,该第二相关度主要用于衡量同一候选副节点的候选主节点与关键词集之间的相关性,比如,对于医院导诊系统来说,该第二相关度用于衡量某种疾病的症状与用户输入症状之间的相关性。

例如,上述步骤s1032具体可以包括:

确定每个该关键词对应的文本嵌入向量,得到至少一个第一文本向量;

确定每个该候选主节点对应的文本嵌入向量,得到多个第二文本向量;

计算每个该第一文本向量与每个该第二文本向量之间的相似度,并选出同一该关键词和候选副节点对应的最大相似度;

对同一该候选副节点对应的该最大相似度进行求和,得到对应候选副节点的第二相关度。

本实施例中,可以利用已训练的fasttext快速文本分类模型或者其他分类模型,将关键词和候选主节点对应的文本信息转化为文本嵌入向量,该文本嵌入向量可以是512维的向量,从而将文本转化到向量空间以便数学计算。该相似度同样可以通过余弦相似度函数或者其他相似度函数进行计算。

例如,对于某个候选副节点dt,该第二相关度s2t的计算公式可以为:

其中,ttj表示候选副节点dt的第j个候选主节点对应的第二文本向量,ti表示第i个关键词对应的第一文本向量,sim()为余弦相似度函数。

s1033.根据该第一相关度和第二相关度确定对应候选副节点的推荐度。

本实施例中,对于通过一候选副节点的第一相关度和第二相关度,可以对该它们进行加权计算,得到对应推荐度。例如,对于某个候选副节点dt,该推荐度st的计算公式可以为st=w1*s1t+w2*s2t,其中,w1和w2均为权重值。

s104.根据该推荐度从该候选主节点和候选副节点中确定目标节点。

例如,请参见图4,上述步骤s104具体可以包括:

s1041.判断是否存在该推荐度大于预设阈值的该候选副节点,若是,则执行下述步骤s1042,若否,则执行下述步骤s1043;

s1042.将该候选副节点作为目标节点;

s1043.确定每个该候选主节点与每个该关键词之间的重复度;根据该重复度从该多个候选主节点中确定目标节点。

本实施例中,该预设阈值可以人为设定,比如0.95。当存在推荐度大于预设阈值的候选副节点时,可以根据该候选副节点确定推送信息,结束对话,比如对于导诊系统,当该候选副节点为疾病名时,可以根据该疾病名确定门诊室,将门诊室提供给用户。当不存在推荐度大于预设阈值的候选副节点时,需要与用户再次进行对话,此时,服务器需要确定下次对话前给予用户的选择内容,通常,为避免用户重复选择相同的内容,可以利用重复度计算公式先从选项中剔除掉与以往选择内容相同的选项,比如剔除掉重复度大于预设值的选项,再将剩余选项作为下一次对话信息提供给用户,或者将重复度最低的指定数量选项作为下一次对话信息提供给用户。

其中,对于某个候选主节点hi,该重复度q的计算公式可以为:

其中,w表示候选主节点hi在整个知识图谱库中的出现频率,用来衡量其是否为常用知识点或生僻知识点,k表示候选主节点hi的对应候选副节点的个数,p0i表示归一化后该候选主节点hi的权重,pi表示与该候选主节点hi相连的副结点的权重,这些权重值在知识图谱构建好时即可确定。m表示在与用户的多轮对话中已经匹配到的候选主节点的数目,hj表示已经匹配到的候选主节点,q是人为设定的临界值,比如0.9,sim()为相似度函数。此时,可以过滤掉qi值小于预设值的主节点,将剩余主节点作为目标节点,或者将qi最大的指定数量的主节点作为目标节点。

需要说明的是,除了当推荐度大于预设阈值时可以结束与用户的多轮对话之外,还可以根据对话次数来确定是否可以结束对话,也即,请参见图5,在步骤s1043之前,该信息推荐方法还可以包括:

s1044.统计用户进行输入操作的已输入次数,并判断该已输入次数是否大于预设次数,若是,则执行下述步骤s1045,若否,则执行上述步骤s1043;

s1045.将该推荐度最高的该候选副节点作为目标节点。

本实施例中,该预设次数可以人为设定,比如5次。当用户与服务器之间的对话次数超过预设次数时,可以结束对话,并将此次用户输入语句对应的所有候选副节点中,推荐度最高的那个作为目标节点。

s105.根据该目标节点生成推荐信息,并向该用户提供该推荐信息。

本实施例中,该推荐信息可以是与目标节点关联的信息,也可以包括该目标节点,比如,当目标节点为候选副节点时,可以获取与该候选副节点关联的信息作为推荐信息,譬如,候选副节点为疾病名时,关联信息可以为该疾病名对应的科室信息以及相关医护人员信息。当目标节点为候选主节点时,可以将候选主节点按照推荐度从高到低进行排序,将排序后的候选主节点作为推荐信息显示给用户,以便进行下一次对话。

以下将以该信息推荐方法应用于导诊系统服务器,知识图谱中的主节点为症状名,副节点为疾病名为例,对信息推荐方法的流程进行简单介绍。

如图6和图7所示,当用户通过移动终端进入导诊系统的挂号界面时,服务器可以提示用户输入自身症状,之后当用户输入某个症状描述语句,比如“最近肚子鼓鼓的,不太舒服”时,服务器会利用训练好的深度学习模型确定该描述语句对应的关键词,此时由于只进行了一次对话,故关键词集中只包含一个关键词,比如“腹胀”,之后锁定“腹胀”在知识图谱中的位置,并找到“腹胀”对应的所有疾病名,比如“肠胃炎”、“消化不良”和“慢性肝炎”等,与此同时,找到每个疾病对应的其他症状,比如“胃肠炎”对应的症状还包括“腹泻”和“恶心”等,“消化不良”对应的症状还包括“恶心”和“早饱”等,“慢性肝炎”对应的症状还包括“乏力”等,具体可参见图7。

接着,可以利用上述第一相关度的计算方法先分别确定症状“腹胀”与疾病“肠胃炎”之间、“腹胀”与“消化不良”之间以及“腹胀”与“慢性肝炎”之间的相似度,此时由于只进行了一次对话,故每种疾病对应的相似度也即该第一相关度,与此同时,利用上述第二相关度的计算方法确定每种疾病(比如“肠胃炎”、“消化不良”或“慢性肝炎”)的其他症状与用户输入症状“腹胀”之间的相似度,也即第二相关度,之后,根据第一相关度和第二相关度确定推荐度,如果存在推荐度>预设阈值,比如0.95,可以将对应疾病的科室作为推荐信息提供给用户,如果不存在,则可以按照推荐度从高到底将找到的其他症状中排序靠前的几个作为推荐信息提供给用户,比如图6中所示的“恶心、早饱、乏力、腹泻…以上都没有”。

之后,若用户此次选择了“恶心”作为关键词,则将此次关键词“恶心”和第一次得到的关键词“腹胀”作为关键词集,此时关键词集中包含两个关键词,重复上述对关键词集的相关处理步骤,得到第二次对话的推荐信息,比如“腹泻、早饱…以上均没有”,提供给用户。同样的,若用户下一次选择了“腹泻”,则关键词集包括三个关键词:“腹胀”、“恶心”和“腹泻”,重复上述对关键词集的相关处理步骤,得到疾病“胃肠炎”,此时可以获取与“胃肠关联炎”的科室信息以及相关医护人员信息,比如“肛肠科”、“可挂号医生xxx”,作为推荐信息提供给用户,以便用户准确挂号。

由上述可知,本实施例提供的信息推荐方法,通过获取已确定的关键词集,该关键词集中包括至少一个关键词,之后,根据已构建的知识图谱确定每个该关键词对应的至少一个候选副节点、以及每个该候选副节点对应的多个候选主节点,之后,根据该关键词集和该候选主节点,确定每个该候选副节点的推荐度,并根据该推荐度从该候选主节点和候选副节点中确定目标节点,之后,根据该目标节点生成推荐信息,并向该用户提供该推荐信息,从而能在多轮对话系统中,结合知识图谱和文本两种方式对用户的输入信息进行匹配搜索,匹配精准度高,并且由于每次对话都能根据用户输入内容灵活调整,故不仅能适用于各种类型的对话场景,应用范围广,且能极大地缩短对话次数,提高对话效率。

根据上述实施例所描述的方法,本实施例将从信息推荐装置的角度进一步进行描述,该信息推荐装置具体可以作为独立的实体来实现,也可以集成在电子设备中来实现。

请参阅图8,图8具体描述了本申请实施例提供的信息推荐装置,应用于服务器,该信息推荐装置可以包括:获取模块10、第一确定模块20、第二确定模块30、第三确定模块40和生成模块50,其中:

(1)获取模块10

获取模块10,用于获取已确定的关键词集,该关键词集中包括至少一个关键词。

本实施例中,该关键词集主要根据用户的输入信息得到,该输入信息可以通过语音或者触屏等方式获取,其可以包括输入语句和/或输入选项,其中,当该输入信息为输入语句时,可以通过分类器来来确定该输入语句对应的关键词。该输入信息为输入选项时,每个选项即对应一个关键词,比如,在首次对话完成后,服务器可以向用户提供多个选项,以便用户从中选择一个作为关键词。

例如,上述获取模块10具体可以用于:

获取用户当前输入的输入信息;

确定该输入信息对应的至少一个目标词标签,并获取历史输入操作对应的已确定目标词标签;

将该目标词标签和已确定目标词标签作为关键词,得到关键词集。

本实施例中,当该输入信息为输入语句时,可以通过一些深度学习模型来确定语句对应的词标签,该深度学习模型可以包括分词算法、词嵌入算法、双向lstm和crf方法,其中该分词算法可以包括jieba,该词嵌入算法可以包括fasttext,该lstm(longshort-termmemory,长短期记忆网络)是一种时间递归神经网络,crf(conditionalrandomfieldalgorithm,条件随机场算法)是一种基于遵循马尔可夫性的概率图模型。

比如,可以预先训练好这些深度学习模型,之后当需要确定关键词时,可以先利用训练好的分词算法和词嵌入算法将语句信息嵌入成多个词向量,并将每一个词向量输入一个双向lstm网络中,以得到包含上下文信息的词向量,之后,将该词向量输入crf网络,以得到该语句信息中各个词语的词标签(比如地点,人名,症状名、疾病名等),之后选择出和已构建的知识图谱一致的词标签作为目标词标签。通常,用户每输入一次语句信息(也即与服务器对话一次),都能得到对应的目标词标签,当用户与服务器进行多轮对话时,每完成一次对话,服务器均会将已对话过的所有目标词标签作为关键词集。

需要指出的是,当用户此次输入操作得到的目标标签为指定标签,比如疾病名时,可以直接向用户提供该结果,并结束对话,否则,需要根据关键词集进行后续分析操作。

(2)第一确定模块20

第一确定模块20,用于根据知识图谱确定每个该关键词对应的至少一个候选副节点、以及每个该候选副节点对应的多个候选主节点,该知识图谱包括多个预设副节点、以及与每个该预设副节点相连的多个预设主节点。

本实施例中,该知识图谱是一种通过语义关联把各种实体关联起来的图谱组织形式,主要由节点、节点向量、边和节点标注形成的图结构,其中该节点标注包括主节点标注和副节点标注,其中节点即为实体,每个实体代表一个关键词。对于每次得到的关键词集,可以先找到每个关键词在知识图谱中的节点位置(通常为主节点),然后确定与该节点直接连接的副节点作为候选副节点,与该候选副节点连接的主节点(包括直接连接的主节点、以及与该主节点连接的主节点)作为候选主节点。

容易理解的是,该知识图谱应当是预先构建好的,此时,请参见图9,该信息推荐装置还包括构建模块60,用于:

在该第一确定模块根据已构建的知识图谱确定每个该关键词对应的至少一个候选副节点、以及每个该候选副节点对应的多个候选主节点之前,或取预设的副核心词集、以及该副核心词集中每个该副核心词对应的主核心词集;

确定每个该主核心词对应的第一向量变量、以及每个该副核心词对应的第二向量变量;

利用预设模型、以及该第一向量变量和第二向量变量,确定该第一向量变量对应的第一向量、以及该第二向量变量对应的第二向量;

根据该第一向量和第二向量构建知识图谱。

本实施例中,该副核心词集和主核心词集都是用户预先设定好的,比如该副核心词集可以是大量疾病名,该主核心词集可以是大量疾病的症状名,等等。该预设模型包括截断随机游走模型和skip-gram神经网络模型,该构建过程主要分三步:

④定义一个带标注的图g,表示如下:

g=(v,e,x,y);

其中v表示图的节点的集合(相当于核心词集),e表示图的边的集合(相当于主核心词和副核心词的连接关系)。x是节点的向量化表示(相当于向量变量)的集合,也就是{v1,v2....vn},其大小为一个n*dim的矩阵,dim为每个节点的向量的维度数(人为设定,比如为512维)。y是每个节点的标注构成的矩阵。

⑤利用截断随机游走模型选取节点构成游走路径,比如每次以某一节点为根结点,随机选取与其相邻的节点并构成一条游走路径。对于每个节点进行多次游走,即可得到多组由图中节点构成的路径。

⑥将上述步骤得到的游走路径反馈给skip-gram神经网络模型,以研究节点与节点之间的邻接关系。该神经网络模型通过递归来学习节点之间的邻接关系,从而调整每个节点的向量表示。此模型的目标函数为:

其中,w为设定好的临界距离,v表示节点向量,该目标函数主要表示用第i个节点向量来预测它之前的i个节点向量,由于我们已经知道第i个节点向量和它前面i-1个节点向量实际上的真实值了,那么我们的目的就是构造一个网络,使得正确预测的概率最大。通过梯度下降法逐步调整相关节点的向量,最终可得到每个节点的表示向量(也即第一向量和第二向量),也就是完成了图的向量化。此时,每个节点的向量、以及节点与节点之间的连接关系、每个节点的类型(指主节点还是副节点)都是确定的。

(3)第二确定模块30

第二确定模块30,用于根据该关键词集和该候选主节点,确定每个该候选副节点的推荐度。

例如,请参见图10,该第二确定模块30具体可以包括:

第一确定单元31,用于根据该关键词集确定每个该候选副节点的第一相关度。

本实施例中,该第一相关度主要用于衡量单个候选副节点与关键词集之间的相关性,比如,对于医院导诊系统来说,该第一相关度用于衡量某种疾病与用户输入症状之间的相关性。

进一步地,上述第一确定单元31具体可用于:

确定每个该关键词对应的图谱嵌入向量,得到至少一个第一图谱向量;

确定每个该候选副节点对应的图谱嵌入向量,得到至少一个第二图谱向量;

计算每个该第二图谱向量与该至少一个第一图谱向量之间相似度的和值,得到对应候选副节点的第一相关度。

本实施例中,该相似度可以通过余弦相似度函数或者其他相似度函数进行计算。由于知识图谱构建好后,每个节点(包括主节点和副节点)的向量就已经确定了,故只要找到关键词对应的主节点,则该主节点的向量即为第一图谱向量,该主节点所连接的副节点(也即候选副节点)的向量,即为第二图谱向量,该图片嵌入向量可以是512维的向量。之后,可以基于向量先计算每个候选副节点与每个候选主节点的相似度,并将属于同一候选副节点的相似度进行求和,将和值作为该候选副节点的第一相关度。

比如,对于某个候选副节点dt,该第一相关度s1t计算公式可以为:

其中,n为关键词集中关键词的总数,gi为第i个关键词对应的第一图谱向量,gt为候选副节点dt对应的第二图谱向量,sim()为余弦相似度函数。

第二确定单元32,用于根据同一该候选副节点对应的多个该候选主节点与该关键词集,确定对应候选副节点的第二相关度。

本实施例中,该第二相关度主要用于衡量同一候选副节点的候选主节点与关键词集之间的相关性,比如,对于医院导诊系统来说,该第二相关度用于衡量某种疾病的症状与用户输入症状之间的相关性。

例如,上述第二确定单元32具体可以用于:

确定每个该关键词对应的文本嵌入向量,得到至少一个第一文本向量;

确定每个该候选主节点对应的文本嵌入向量,得到多个第二文本向量;

计算每个该第一文本向量与每个该第二文本向量之间的相似度,并选出同一该关键词和候选副节点对应的最大相似度;

对同一该候选副节点对应的该最大相似度进行求和,得到对应候选副节点的第二相关度。

本实施例中,可以利用已训练的fasttext快速文本分类模型或者其他分类模型,将关键词和候选主节点对应的文本信息转化为文本嵌入向量,该文本嵌入向量可以是512维的向量,从而将文本转化到向量空间以便数学计算。该相似度同样可以通过余弦相似度函数或者其他相似度函数进行计算。

例如,对于某个候选副节点dt,该第二相关度s2t的计算公式可以为:

其中,ttj表示候选副节点dt的第j个候选主节点对应的第二文本向量,ti表示第i个关键词对应的第一文本向量,sim()为余弦相似度函数。

第三确定单元33,用于根据该第一相关度和第二相关度确定对应候选副节点的推荐度。

本实施例中,对于通过一候选副节点的第一相关度和第二相关度,可以对该它们进行加权计算,得到对应推荐度。例如,对于某个候选副节点dt,该推荐度st的计算公式可以为st=w1*s1t+w2*s2t,其中,w1和w2均为权重值。

(4)第三确定模块40

第三确定模块40,用于根据该推荐度从该候选主节点和候选副节点中确定目标节点。

例如,上述第三确定模块40具体可以用于:

判断是否存在该推荐度大于预设阈值的该候选副节点;

若是,则将该候选副节点作为目标节点;

若否,则确定每个该候选主节点与每个该关键词之间的重复度;根据该重复度从该多个候选主节点中确定目标节点。

本实施例中,该预设阈值可以人为设定,比如0.95。当存在推荐度大于预设阈值的候选副节点时,可以根据该候选副节点确定推送信息,结束对话,比如对于导诊系统,当该候选副节点为疾病名时,可以根据该疾病名确定门诊室,将门诊室提供给用户。当不存在推荐度大于预设阈值的候选副节点时,需要与用户再次进行对话,此时,需要确定下次对话前给予用户的选择内容,通常,为避免用户重复选择相同的内容,可以利用重复度计算公式先从选项中剔除掉与以往选择内容相同的选项,比如剔除掉重复度大于预设值的选项,再将剩余选项作为下一次对话信息提供给用户,或者将重复度最低的指定数量选项作为下一次对话信息提供给用户。

其中,对于某个候选主节点hi,该重复度q的计算公式可以为:

其中,w表示候选主节点hi在整个知识图谱库中的出现频率,用来衡量其是否为常用知识点或生僻知识点,k表示候选主节点hi的对应候选副节点的个数,p0i表示归一化后该候选主节点hi的权重,pi表示与该候选主节点hi相连的副结点的权重,这些权重值在知识图谱构建好时即可确定。m表示在与用户的多轮对话中已经匹配到的候选主节点的数目,hj表示已经匹配到的候选主节点,q是人为设定的临界值,比如0.9,sim()为相似度函数。此时,可以过滤掉qi值小于预设值的主节点,将剩余主节点作为目标节点,或者将qi最大的指定数量的主节点作为目标节点。

需要说明的是,除了当推荐度大于预设阈值时可以结束与用户的多轮对话之外,还可以根据对话次数来确定是否可以结束对话,也即,第三确定模块40还用于:

在确定每个该候选主节点与每个该关键词之间的重复度之前,统计用户进行输入操作的已输入次数;

判断该已输入次数是否大于预设次数;

若是,则将该推荐度最高的该候选副节点作为目标节点;

若否,则执行该确定每个该候选主节点与每个该关键词之间的重复度的操作。

本实施例中,该预设次数可以人为设定,比如5次。当用户与服务器之间的对话次数超过预设次数时,可以结束对话,并将此次用户输入语句对应的所有候选副节点中,推荐度最高的那个作为目标节点。

(5)生成模块50

生成模块50,用于根据该目标节点生成推荐信息,并向该用户提供该推荐信息。

本实施例中,该推荐信息可以是与目标节点关联的信息,也可以包括该目标节点,比如,当目标节点为候选副节点时,可以获取与该候选副节点关联的信息作为推荐信息,譬如,候选副节点为疾病名时,关联信息可以为该疾病名对应的科室信息以及相关医护人员信息。当目标节点为候选主节点时,可以将候选主节点按照推荐度从高到低进行排序,将排序后的候选主节点作为推荐信息显示给用户,以便进行下一次对话。

具体实施时,以上各个单元可以作为独立的实体来实现,也可以进行任意组合,作为同一或若干个实体来实现,以上各个单元的具体实施可参见前面的方法实施例,在此不再赘述。

由上述可知,本实施例提供的信息推荐装置,通过获取模块10获取已确定的关键词集,该关键词集中包括至少一个关键词,第一确定模块20根据已构建的知识图谱确定每个该关键词对应的至少一个候选副节点、以及每个该候选副节点对应的多个候选主节点,之后,第三确定模块40根据该关键词集和该候选主节点,确定每个该候选副节点的推荐度,第二确定模块30根据该推荐度从该候选主节点和候选副节点中确定目标节点,之后,生成模块50根据该目标节点生成推荐信息,并向该用户提供该推荐信息,从而能在多轮对话系统中,结合知识图谱和文本两种方式对用户的输入信息进行匹配搜索,匹配精准度高,并且由于每次对话都能根据用户输入内容灵活调整,故不仅能适用于各种类型的对话场景,应用范围广,且能极大地缩短对话次数,提高对话效率。

相应的,本发明实施例还提供一种信息推荐系统,包括本发明实施例所提供的任一种信息推荐装置,该信息推荐装置可以集成在服务器中。

其中,服务器获取用户当前已输入的关键词集,该关键词集中包括至少一个关键词;根据已构建的知识图谱确定每个该关键词对应的至少一个候选副节点、以及每个该候选副节点对应的多个候选主节点,该知识图谱包括多个预设副节点、以及与每个该预设副节点相连的多个预设主节点;根据该关键词集和该候选主节点,确定每个该候选副节点的推荐度;根据该推荐度从该候选主节点和候选副节点中确定目标节点;根据该目标节点生成推荐信息,并向该用户提供该推荐信息。

以上各个设备的具体实施可参见前面的实施例,在此不再赘述。

由于该图像处理系统可以包括本发明实施例所提供的任一种信息推荐装置,因此,可以实现本发明实施例所提供的任一种信息推荐装置所能实现的有益效果,详见前面的实施例,在此不再赘述。

相应的,本发明实施例还提供一种服务器,如图11所示,其示出了本发明实施例所涉及的服务器的结构示意图,具体来讲:

该服务器可以包括一个或者一个以上处理核心的处理器401、一个或一个以上计算机可读存储介质的存储器402、射频(radiofrequency,rf)电路403、电源404、输入单元405、以及显示单元406等部件。本领域技术人员可以理解,图11中示出的服务器结构并不构成对服务器的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:

处理器401是该服务器的控制中心,利用各种接口和线路连接整个服务器的各个部分,通过运行或执行存储在存储器402内的软件程序和/或模块,以及调用存储在存储器402内的数据,执行服务器的各种功能和处理数据,从而对服务器进行整体监控。可选的,处理器401可包括一个或多个处理核心;优选的,处理器401可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器401中。

存储器402可用于存储软件程序以及模块,处理器401通过运行存储在存储器402的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器402可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据服务器的使用所创建的数据等。此外,存储器402可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器402还可以包括存储器控制器,以提供处理器401对存储器402的访问。

rf电路403可用于收发信息过程中,信号的接收和发送,特别地,将基站的下行信息接收后,交由一个或者一个以上处理器401处理;另外,将涉及上行的数据发送给基站。通常,rf电路403包括但不限于天线、至少一个放大器、调谐器、一个或多个振荡器、用户身份模块(sim)卡、收发信机、耦合器、低噪声放大器(lna,lownoiseamplifier)、双工器等。此外,rf电路403还可以通过无线通信与网络和其他设备通信。所述无线通信可以使用任一通信标准或协议,包括但不限于全球移动通讯系统(gsm,globalsystemofmobilecommunication)、通用分组无线服务(gprs,generalpacketradioservice)、码分多址(cdma,codedivisionmultipleaccess)、宽带码分多址(wcdma,widebandcodedivisionmultipleaccess)、长期演进(lte,longtermevolution)、电子邮件、短消息服务(sms,shortmessagingservice)等。

服务器还包括给各个部件供电的电源404(比如电池),优选的,电源404可以通过电源管理系统与处理器401逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源404还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。

该服务器还可包括输入单元405,该输入单元405可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。具体地,在一个具体的实施例中,输入单元405可包括触敏表面以及其他输入设备。触敏表面,也称为触摸显示屏或者触控板,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触敏表面上或在触敏表面附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触敏表面可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器401,并能接收处理器401发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触敏表面。除了触敏表面,输入单元405还可以包括其他输入设备。具体地,其他输入设备可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。

该服务器还可包括显示单元406,该显示单元406可用于显示由用户输入的信息或提供给用户的信息以及服务器的各种图形用户接口,这些图形用户接口可以由图形、文本、图标、视频和其任意组合来构成。显示单元406可包括显示面板,可选的,可以采用液晶显示器(lcd,liquidcrystaldisplay)、有机发光二极管(oled,organiclight-emittingdiode)等形式来配置显示面板。进一步的,触敏表面可覆盖显示面板,当触敏表面检测到在其上或附近的触摸操作后,传送给处理器401以确定触摸事件的类型,随后处理器401根据触摸事件的类型在显示面板上提供相应的视觉输出。虽然在图11中,触敏表面与显示面板是作为两个独立的部件来实现输入和输入功能,但是在某些实施例中,可以将触敏表面与显示面板集成而实现输入和输出功能。

尽管未示出,服务器还可以包括摄像头、蓝牙模块等,在此不再赘述。具体在本实施例中,服务器中的处理器401会按照如下的指令,将一个或一个以上的应用程序的进程对应的可执行文件加载到存储器402中,并由处理器401来运行存储在存储器402中的应用程序,从而实现各种功能,如下:

获取已确定的关键词集,该关键词集中包括至少一个关键词;

根据已构建的知识图谱确定每个该关键词对应的至少一个候选副节点、以及每个该候选副节点对应的多个候选主节点,该知识图谱包括多个预设副节点、以及与每个该预设副节点相连的多个预设主节点;

根据该关键词集和该候选主节点,确定每个该候选副节点的推荐度;

根据该推荐度从该候选主节点和候选副节点中确定目标节点;

根据该目标节点生成推荐信息,并向该用户提供该推荐信息。

该电子设备可以实现本发明实施例所提供的任一种信息推荐装置所能实现的有效效果,详见前面的实施例,在此不再赘述。

本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器(rom,readonlymemory)、随机存取记忆体(ram,randomaccessmemory)、磁盘或光盘等。

以上对本发明实施例所提供的一种信息推荐方法、装置、存储介质和服务器进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1