文章推荐方法、装置、存储介质和电子设备与流程

文档序号:16783895发布日期:2019-02-01 19:18阅读:113来源:国知局
文章推荐方法、装置、存储介质和电子设备与流程
本公开涉及互联网
技术领域
,具体地,涉及一种文章推荐方法、装置、存储介质和电子设备。
背景技术
:人们在学习专业技术的时候,往往会大量查询具有相似知识点的文章,从而产生了文章推荐技术。其中,cf(collaborativefilteringrecommendations,协同过滤)推荐算法和cb(即content-basedrecommendations,基于内容推荐)推荐算法是应用比较多的推荐技术。其中,cf推荐算法主要利用兴趣相投,拥有共同经验群体的喜好类似的特征来进行推荐,能够更加个性化地推荐出有效的结果,但需要历史数据集,对于新用户、新项目给出的推荐结果质量比较差。cb推荐算法主要分三步,首先从个体中抽取一下特征,其次利用用户喜欢和不喜欢的特征数据,来学习用户的喜好,最后比较用户的喜好和候选个体的特征,为用户推荐一组相关性较好的结果集。cb推荐算法在一定程度上减少了新项目、新用户对推荐结果的影响。但是,上述两种算法的实现都需要与用户特征有关的一定的样本数据(历史数据或个体喜好数据),因此对于新用户都很难推荐出高质量的推荐结果,同时上述的cf推荐算法和cb推荐算法的计算复杂度较高,对于服务器的负载压力较大。技术实现要素:本公开的目的是提供一种文章推荐方法、装置、存储介质和电子设备,用于解决对于新用户难易获取高质量的推荐结果,以及计算复杂度高的问题。为了实现上述目的,在本公开的第一方面,提供一种文章推荐方法,所述方法包括:根据输入的关键词获取预设数量的与所述关键词匹配的多个候选文章;以每篇文章为一个节点,获取所述多个候选文章的节点关系网络,所述节点关系网络中包括所述多个候选文章对应的多个节点,以及所述多个节点之间的连接关系;利用k-核分解确定所述节点关系网络中的每个节点的k-核值,所述k-核值用于表示在所述k-核分解过程中节点所在的层数;根据所述每个节点的k-核值,利用k-核认领算法,获取所述每个节点对应的k-核认领值;根据所述每个节点对应的k-核认领值,在所述多个节点中选择k-核认领值最高的前n个节点所对应的n篇候选文章,作为要输出的目标推荐文章。可选地,所述根据所述每个节点的k-核值,利用k-核认领算法,获取所述每个节点对应的k-核认领值,包括:获取所述多个节点中的每两个邻居节点之间的连线的权重,其中两个邻居节点之间的一根连线表示所述两个邻居节点对应的两篇文章具有一个相同的知识点,所述连线的权重表示两个邻居节点之间的连线数量;其中,在所述多个节点中具有直接连线的两个节点互为邻居节点;根据所述每两个邻居节点之间的连线的权重和所述每个节点的k-核值,利用第一认领值计算公式获取所述每个节点的认领值;对所述每个节点的认领值进行归一化,以获取所述每个节点的归一化后的认领值;根据每个节点的归一化后的认领值和所述每个节点的k-核值,利用第二认领值计算公式获取所述每个节点的精确认领值,作为所述每个节点对应的k-核认领值。可选地,所述第一认领值计算公式包括:其中,kci表示节点i的认领值,节点j为节点i的邻居节点,wij表示节点i和节点j之间的连线的权重,kj表示节点j的k-核值;所述第二认领值计算公式包括:其中,ki表示节点i的k-核值,max(kci)表示节点i所在的层数中最大的认领值,kci表示节点i的认领值,kcvi表示节点i的k-核认领值。可选地,所述以每篇文章为一个节点,获取所述多个候选文章的节点关系网络,包括:以所述每篇文章为一个节点,通过获取所述多个候选文章中的每篇文章的知识点集合,得到所述多个节点的知识点集合,所述每篇文章的所述知识点集合是在存储所述文章时确定的,所述每篇文章的知识点集合中包括所述每篇文章的多个知识点;确定所述多个节点中的每两个节点的知识点集合中是否存在相同知识点,以及相同知识点的数量;通过将知识点集合中存在相同知识点的每两个节点之间建立连线,得到所述节点关系网络。可选地,所述以每篇文章为一个节点,获取所述多个候选文章的节点关系网络,包括:获取已存储的全局节点关系网络,所述全局节点关系网络是根据已存储的所有文章的知识点集合预先建立的所述所有文章的节点关系网络,所述全局节点关系网络中包括所述所有文章对应的节点,以及所述所有文章对应的节点之间的连接关系,所述所有文章包含所述多个候选文章;从所述全局节点关系网络中提取出包含所述多个候选文章对应的多个节点的局部节点关系网络,作为所述多个候选文章的节点关系网络。可选地,所述方法还包括:当接收到新输入的第一文章时,对所述第一文章的主题和文章内容进行分词处理,得到所述第一文章的词语集合;通过对所述词语集合中的同义词进行合并为同一词语,以及去除所述词语集合中的无效词语,得到处理后的词语集合,所述无效词语包括:人称、量词、介词、连词、助词;对所述处理后的词语集合中的词语进行词频统计,以获取所述处理后的词语集合中的每个词语的词频;根据所述每个词语的词频,获取词频最高的m个词语作为所述第一文章的m个知识点。可选地,所述根据所述每个节点对应的k-核认领值,在所述多个节点中选择k-核认领值最高的前n个节点所对应的n篇候选文章,作为要输出的目标推荐文章,包括:通过对所述多个节点对应的k-核认领值进行倒序排列,获取所述多个节点的k-核认领值由高到低的排序;选择所述排序中排名最高的前n个节点所对应的n篇文章,作为所述目标文章。第二方面,提供一种文章推荐装置,所述装置包括:文章匹配模块,用于根据输入的关键词获取预设数量的与所述关键词匹配的多个候选文章;网络获取模块,用于以每篇文章为一个节点,获取所述多个候选文章的节点关系网络,所述节点关系网络中包括所述多个候选文章对应的多个节点,以及所述多个节点之间的连接关系;分层模块,用于利用k-核分解确定所述节点关系网络中的每个节点的k-核值,所述k-核值用于表示在所述k-核分解过程中节点所在的层数;计算模块,用于根据所述每个节点的k-核值,利用k-核认领算法,获取所述每个节点对应的k-核认领值;选择模块,用于根据所述每个节点对应的k-核认领值,在所述多个节点中选择k-核认领值最高的前n个节点所对应的n篇候选文章,作为要输出的目标推荐文章。可选地,所述计算模块,包括:权重获取子模块,用于获取所述多个节点中的每两个邻居节点之间的连线的权重,其中两个邻居节点之间的一根连线表示所述两个邻居节点对应的两篇文章具有一个相同的知识点,所述连线的权重表示两个邻居节点之间的连线数量;其中,在所述多个节点中具有直接连线的两个节点互为邻居节点;第一认领值获取子模块,用于根据所述每两个邻居节点之间的连线的权重和所述每个节点的k-核值,利用第一认领值计算公式获取所述每个节点的认领值;第二认领值获取子模块,用于对所述每个节点的认领值进行归一化,以获取所述每个节点的归一化后的认领值;第三认领值获取子模块,用于根据每个节点的归一化后的认领值和所述每个节点的k-核值,利用第二认领值计算公式获取所述每个节点的精确认领值,作为所述每个节点对应的k-核认领值。可选地,所述第一认领值计算公式包括:其中,kci表示节点i的认领值,节点j为节点i的邻居节点,wij表示节点i和节点j之间的连线的权重,kj表示节点j的k-核值;所述第二认领值计算公式包括:其中,ki表示节点i的k-核值,max(kci)表示节点i所在的层数中最大的认领值,kci表示节点i的认领值,kcvi表示节点i的k-核认领值。可选地,所述网络获取模块,包括:知识点获取子模块,用于以所述每篇文章为一个节点,通过获取所述多个候选文章中的每篇文章的知识点集合,得到所述多个节点的知识点集合,所述每篇文章的所述知识点集合是在存储所述文章时确定的,所述每篇文章的知识点集合中包括所述每篇文章的多个知识点;知识点识别子模块,用于确定所述多个节点中的每两个节点的知识点集合中是否存在相同知识点,以及相同知识点的数量;网络建立子模块,用于通过将知识点集合中存在相同知识点的每两个节点之间建立连线,得到所述节点关系网络。可选地,所述网络获取模块,包括:全局网络获取子模块,用于获取已存储的全局节点关系网络,所述全局节点关系网络是根据已存储的所有文章的知识点集合预先建立的所述所有文章的节点关系网络,所述全局节点关系网络中包括所述所有文章对应的节点,以及所述所有文章对应的节点之间的连接关系,所述所有文章包含所述多个候选文章;网络提取子模块,用于从所述全局节点关系网络中提取出包含所述多个候选文章对应的多个节点的局部节点关系网络,作为所述多个候选文章的节点关系网络。可选地,所述装置还包括:分词模块,用于当接收到新输入的第一文章时,对所述第一文章的主题和文章内容进行分词处理,得到所述第一文章的词语集合;预处理模块,用于通过对所述词语集合中的同义词进行合并为同一词语,以及去除所述词语集合中的无效词语,得到处理后的词语集合,所述无效词语包括:人称、量词、介词、连词、助词;统计模块,用于对所述处理后的词语集合中的词语进行词频统计,以获取所述处理后的词语集合中的每个词语的词频;知识点确定模块,用于根据所述每个词语的词频,获取词频最高的m个词语作为所述第一文章的m个知识点。可选地,所述选择模块,包括:排序子模块,用于通过对所述多个节点对应的k-核认领值进行倒序排列,获取所述多个节点的k-核认领值由高到低的排序;选择子模块,用于选择所述排序中排名最高的前n个节点所对应的n篇文章,作为所述目标文章。第三方面,提供一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现第一方面所述方法的步骤。第四方面,提供一种电子设备,包括:存储器,其上存储有计算机程序;处理器,用于执行所述存储器中的所述计算机程序,以实现第一方面所述方法的步骤。上述技术方案中,根据输入的关键词获取预设数量的与所述关键词匹配的多个候选文章;以每篇文章为一个节点,获取该多个候选文章的节点关系网络,该节点关系网络中包括多个候选文章对应的多个节点,以及该多个节点之间的连接关系;利用k-核分解确定该节点关系网络中的每个节点的k-核值,该k-核值用于表示在所述k-核分解过程中节点所在的层数;根据每个节点的k-核值,利用k-核认领算法,获取每个节点对应的k-核认领值;根据每个节点对应的k-核认领值,在该多个节点中选择k-核认领值最高的前n个节点所对应的n篇候选文章,作为要输出的目标推荐文章。由此可见,通过上述的文章的方法,无需历史数据或者个体喜好数据,因此对于新用户、新项目也能够获取高质量的推荐结果,并且所采用的k-核认领算法复杂度低于现有的cf推荐算法和cb推荐算法,因此能够降低计算复杂度。本公开的其他特征和优点将在随后的具体实施方式部分予以详细说明。附图说明附图是用来提供对本公开的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本公开,但并不构成对本公开的限制。在附图中:图1是根据本公开一示例性实施例示出的一种文章推荐方法的流程示意图;图2a是根据本公开一示例性实施例示出的一种节点关系网络获取方法的流程示意图;图2b是根据本公开一示例性实施例示出的另一种节点关系网络获取方法的流程示意图;图3a是根据本公开一示例性实施例示出的一种k-核分解方法的流程示意图;图3b是根据本公开一示例性实施例示出的一种节点关系网络的结构示意图;图3c是根据本公开一示例性实施例示出的一种k-核分解结果的示意图;图4是根据本公开一示例性实施例示出的一种k-核分解方法的流程示意图;图5是根据本公开一示例性实施例示出的一种文章推荐装置的框图;图6是根据本公开一示例性实施例示出的一种计算模块的框图;图7a是根据本公开一示例性实施例示出的一种计算模块的框图;图7b是根据本公开一示例性实施例示出的一种计算模块的框图;图8是根据本公开一示例性实施例示出的一种文章推荐装置的框图;图9是根据本公开一示例性实施例示出的一种选择模块的框图;图10是根据一示例性实施例示出的一种电子设备的框图;图11是根据一示例性实施例示出的另一种电子设备的框图。具体实施方式以下结合附图对本公开的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本公开,并不用于限制本公开。图1是根据本公开一示例性实施例示出的一种文章推荐方法的流程示意图,该方法可以应用于提供文章推荐服务的服务器,如图1所示,该方法可以包括以下步骤:步骤101,根据输入的关键词获取预设数量的与该关键词匹配的多个候选文章。步骤102,以每篇文章为一个节点,获取该多个候选文章的节点关系网络,该节点关系网络中包括多个候选文章对应的多个节点,以及该多个节点之间的连接关系。首先,先介绍一下服务器中的文章和节点之间的关系;每当有一篇新的文章上传到该服务器时,服务器首先可以对文章的结构进行量化,可以通过分词、词频统计来确定该篇文章对应的知识点,示例的:可以包括以下步骤:首先,当接收到新输入的第一文章时,对该第一文章的主题和文章内容进行分词处理,得到该第一文章的词语集合。其中该第一文章可以代指新上传至服务器的任意一篇文章。通过分词技术对第一文章的主题和文章内容进行分词处理后,可以得到第一文章的分词结果,该分词结果可以看作是一个词语集合,由于分词后得到的词语集合中还可能包含有相似词语,以及大量的无意义的词语,因此还需要对词语集合进行进一步处理。因此,进一步的,通过对该词语集合中的同义词进行合并为同一词语,以及去除该词语集合中的无效词语,得到处理后的词语集合。示例的,该无效词语可以包括:人称、量词、介词、连词、助词,以及其他类型的无实际意义的字或词。经过上述处理后的词语集合中的词语,应当都是与知识点有关的词语,此时,可以对该处理后的词语集合中的词语进行词频统计,以获取该处理后的词语集合中的每个词语的词频。其中词频即指同一词语出现的次数。最后,根据每个词语的词频,获取词频最高的m个词语作为该第一文章的m个知识点。即对每个词语的词频按照从高到底的顺序进行词频排序,然后按照词频排序选择词频最高的m个词语作为该第一文章的m个知识点,并保存,从而就完成了该第一文章的结构量化,得到了第一文章的m个知识点。其中m的值可以根据需要来设置(通常作为一篇技术类文章,主要讲述的知识点不会过多,一般都是重点讲解知识点,因此可以根据文章的特征来设置m的值),例如取m等于10时,会选择词频最高的前10个知识点,保存为该第一文章的知识点集合。上述对于第一文章的结构的量化过程适用于上传至服务器中的每篇文章,因此基于相同的原理,服务器中存储的每篇文章都保存有该文章的m个知识点。服务器中的每篇文章都可以看作一个节点,从而每个节点也就具有m个知识点,然后可以对比每两个节点的m个知识点中是否存在相同知识点,以及相同知识点的数量,每当两个节点之间具有一个相同知识点,就可以为这两个节点之间建立一条连线,当完成服务器中所有文章对应的节点之间的连线,即可得到所有文章对应的节点关系网络,其中两个节点之间的连线数量,可以记为这两个节点的之间的连线的权重。步骤103,利用k-核分解确定该节点关系网络中的每个节点的k-核值,该k-核值用于表示在该k-核分解过程中节点所在的层数。其中,k-核是图论中的一个经典概念,是一种粗粒度的划分。k-核分解是按照上述的节点关系网络中的各个节点的度值从低到高的顺序,通过逐次迭代删除的方式将节点关系网络中节点进行逐层剥离的过程,完成k-核分解后可以确定节点关系网络中的各个节点所处的层数,该层数即为节点的k-核值。其中节点的度值是指节点具有的连线的总数量,例如节点a与周围节点共具有5条连线,则可以认为节点a的度值为5。每当将节点关系网络中节点剥离一层后,剩余节点中的部分节点的度值可能会发生改变,按照上述的度值从低到高的顺序,通过逐次迭代删除的方式进行逐层剥离,直至所有节点所在的层都确定后,就完成了k-核分解的过程。通常情况下,在剥离过程中,层数越高的节点就越靠近核心,越核心的节点就更应该被推荐。步骤104,根据该每个节点的k-核值,利用k-核认领算法,获取每个节点对应的k-核认领值。由于在通过k-核分解对多个候选文章对应的多个节点进行了分层后,每层都可能存在多个节点,特别是在候选文章数量较多时,即使最核心层的节点数量也可能有很多,然而如果最终推荐文章的数量过多,用户需要阅读的文章就过多,显然不满足用户的需求。另外,由于k-核分解过程中,也可能会出现重要程度不一致的节点被分到同一层,特别对于重要性较高的节点是被分到较低层时,可能就会忽略掉这篇文章,影响推荐质量。因此,在本实施例中,在进行k-核分解后,还需要进一步执行步骤104和105,从而在进行文章推荐时,通过k-核认领技术,充分考虑节点之间的连线的权重和节点所处的层来计算同一层中的节点的重要性排序。步骤105,根据每个节点对应的k-核认领值,在该多个节点中选择k-核认领值最高的前n个节点所对应的n篇候选文章,作为要输出的目标推荐文章。示例的,该步骤105可以包括:通过对该多个节点对应的k-核认领值进行倒序排列,获取该多个节点的k-核认领值由高到低的排序。选择该排序中排名最高的前n个节点所对应的n篇文章,作为该目标文章。上述技术方案中,根据输入的关键词获取预设数量的与所述关键词匹配的多个候选文章;以每篇文章为一个节点,获取该多个候选文章的节点关系网络,该节点关系网络中包括多个候选文章对应的多个节点,以及该多个节点之间的连接关系;利用k-核分解确定该节点关系网络中的每个节点的k-核值,该k-核值用于表示在所述k-核分解过程中节点所在的层数;根据每个节点的k-核值,利用k-核认领算法,获取每个节点对应的k-核认领值;根据每个节点对应的k-核认领值,在该多个节点中选择k-核认领值最高的前n个节点所对应的n篇候选文章,作为要输出的目标推荐文章。由此可见,通过上述的文章的方法,无需历史数据或者个体喜好数据,因此对于新用户、新项目也能够获取高质量的推荐结果,并且所采用的k-核认领算法复杂度低于现有的cf推荐算法和cb推荐算法,因此能够降低计算复杂度。图2a是根据本公开一示例性实施例示出的一种节点关系网络获取方法的流程示意图,如图2a所示,在第一种实现方式中,步骤102所述的以每篇文章为一个节点,获取该多个候选文章的节点关系网络,可以包括以下步骤:步骤1021,以每篇文章为一个节点,通过获取该多个候选文章中的每篇文章的知识点集合,得到该多个节点的知识点集合。其中,每篇文章的知识点集合是在存储该文章时确定的,每篇文章的知识点集合中包括每篇文章的多个知识点。步骤1022,确定该多个节点中的每两个节点的知识点集合中是否存在相同知识点,以及相同知识点的数量。步骤1023,通过将知识点集合中存在相同知识点的每两个节点之间建立连线,得到该节点关系网络。其中,每篇候选文章的知识点集合是在该候选文章被上传至服务器时就已经确定并存储的,其获取方法于前文所述的第一文章的知识点集合的获取方法相同,不再赘述。步骤1021可以理解为在通过关键词确定了与其匹配的该多个候选文章时,可以从服务器中读取已存储的该多个候选文章中的每篇文章的知识点集合,也就得到了这多个候选文章对应的多个节点的知识点集合。然后根据该多个节点的知识点集合,确定该多个节点之间每两个具有相同知识点的节点,并根据相同知识点的数量建立与该数量一致的连线。举例来说,假设,该多个节点至少包括:节点a、节点b、节点c,其中,节点a-c的知识点集合中均包含6个知识点,例如节点a的知识点集合包括为{知识点1,知识点2,知识点3,知识点4,知识点5,知识点6},节点b的知识点集合包括为{知识点1,知识点3,知识点4,知识点6,知识点9,知识点11},节点c的知识点集合包括为{知识点2,知识点3,知识点7,知识点13,知识点15,知识点21}。则可以确定节点a和节点b的相同知识点的数量为4,节点a和节点c的相同知识点的数量为2,节点b和节点c的相同知识点的数量为1。因此,包含节点a-c的节点关系网络中,节点a和b之间的连线数量为4,节点a和c之间的连线数量为2,节点b和c之间的连线数量为1。图2b是根据本公开一示例性实施例示出的另一种节点关系网络获取方法的流程示意图,如图2b所示,在第二种实现方式中,步骤102所述的以每篇文章为一个节点,获取该多个候选文章的节点关系网络,可以包括以下步骤:步骤1024,获取已存储的全局节点关系网络,该全局节点关系网络是根据已存储的所有文章的知识点集合预先建立的所有文章的节点关系网络,该全局节点关系网络中包括所有文章对应的节点,以及所有文章对应的节点之间的连接关系,所有文章包含所述多个候选文章。步骤1025,从该全局节点关系网络中提取出包含该多个候选文章对应的多个节点的局部节点关系网络,作为该多个候选文章的节点关系网络。在本实现方式中,可以理解为,服务器根据该服务器中已经存储的所有文章的知识点集合预先建立包含所有文章对应的节点的全局节点关系网络,即包括所有文章对应的节点,以及所有文章对应的节点之间的连接关系。由于每篇文章的知识点集合是在该候选文章被上传至服务器时就已经确定并存储的。因此每当有新的文章被上传时,获取该文章的知识点集合(其获取方法于前文所述的第一文章的知识点集合的获取方法相同,不再赘述),并根据该文章的知识点集合对已生成的全局节点关系网络进行更新。而当根据关键词确定了该多个候选文章后,可以从该全局节点关系网络中提取出包含该多个候选文章对应的多个节点的局部节点关系网络,作为该多个候选文章的节点关系网络。对于第一种实现方式,由于服务器中存储的文章数量通常是海量的,相较于该海量文章,每次匹配到的用于推荐的候选文章数量是远小于相对于服务器中的所有文章的数量的,因此在该实现方式中,可以无需维护一个大的全局节点关系网络,可以省去该全局节点关系网络在初始建立时的大量计算,而只用每次计算与本次推荐相关的节点的局部节点关系网络即可。对于第二种实施方式,由于每当有新的文章被上传时,该文章对应的节点与其他所有文章对应的节点的关系就会被更新到全局节点关系网络中,该网络关系计算一次即可,后续用户进行关键词搜索时,由于候选文章对应的节点之间的关系已经在该全局节点关系网络中,因此可以直接提取即可,省去了重复计算的资源消耗。因此,采用上述的第一种实现方式或第二种实现方式可以根据实际应用场景的需求来确定。图3a是根据本公开一示例性实施例示出的一种k-核分解方法的流程示意图,如图3a所示,步骤103所述的利用k-核分解确定该节点关系网络中的每个节点的k-核值,可以包括以下步骤:步骤1031,在进行第k层分解时,在该节点关系网络中的该多个节点中,确定度值为i的节点;其中,度值用于表示节点与其他节点之间的连线数量,k、i为大于或等于1的整数,且k、i的起始值为1。步骤1032,在该节点关系网络中去除该度值为i的节点,并将去除掉的度值为i的节点作为第k层的节点。步骤1033,在进行第k+1层分解时,在该节点关系网络中确定新生成的度值为i的节点。步骤1034,在该节点关系网络中去除新生成的度值为i的节点,并将去除掉的新生成的度值为i的节点作为第k+1层的节点。步骤1035,取k=k+1,并重复执行所述步骤1032至步骤1034,直至节点关系网络中不存在度值为i的节点。步骤1046,取i=i+1,再次取k=k+1,并重复执行步骤1031至步骤1035,直至节点关系网络中的所有节点的层都已确定,每个节点所在的层数即为该节点的k-核值。举例来说,假设在步骤101中获取的与关键词匹配的多篇候选文章的数量为25篇,记为文章1~25,则该文章1~25对应了节点1~25,根据上述步骤1021至1025所示的方法可以得到节点1~25的节点关系网络,假设该节点1~25的节点关系网络如图3b所示。图3b是根据本公开一示例性实施例示出的一种节点关系网络的结构示意图,如图3b中所示,包含了节点1~25,以及节点1~25之间的连接关系。基于3b中所示的节点关系网络进行k-核分解的过程可以包括以下过程:第一步,在该节点关系网络中去除度值为1的节点。根据图3b所示,当前度值为1的节点为:12、13、14、15、16、17、18、19、20、21、22、23、24、25。则在该节点关系网络中去除节点12~25,并将节点12~25作为第一层,节点12~25的k-核值为1。在去除节点12~25后,生成了新的度值为1的节点,为节点10和11。因此,重复第一步,去除节点10和11,并将节点10和11作为第二层,节点10、11的k-核值为2。在去除节点10和11后,生成了新的度值为1的节点,为节点9。因此,重复第一步,去除节点9,并将节点9作为第三层,节点9的k-核值为3。去除节点9之后,此时的节点关系网络中剩余的节点的度值至少是2。第二步,在该节点关系网络中去除度值为2的节点。根据图3b所示,当前度值为2的节点为:5、6、7、8。则在该节点关系网络中去除节点5~8,并将节点5~8作为第四层,节点5~8的k-核值为4。去除节点5~8之后,此时的节点关系网络中剩余的节点1、2、3、4的度值均是3。因此,第三步,在该节点关系网络中去除度值为3的节点。也就去除了关系网络中剩余的节点1~4,并将节点1~4作为第五层,节点1~4的k-核值为5。通过上述方法也就完成了图3b所示的节点关系网络的k-核分解过程,得到了节点1~25的k-核值,分解后的各层可以如图3c所示,在图3中ks表示层数,ks=1~5分别表示一至五层,也表示每层中节点的k-核值。图4是根据本公开一示例性实施例示出的一种k-核分解方法的流程示意图,如图4所示,步骤104所述的根据每个节点的k-核值,利用k-核认领算法,获取每个节点对应的k-核认领值,可以包括以下步骤:步骤1041,获取该多个节点中的每两个邻居节点之间的连线的权重。其中,两个邻居节点之间的一根连线表示两个邻居节点对应的两篇文章具有一个相同的知识点,连线的权重表示两个邻居节点之间的连线数量;其中,在该多个节点中具有直接连线的两个节点互为邻居节点。例如,在图3b中,节点9和20~25为邻居节点,节点10和节点18、19为邻居节点,节点1和节点2、3、4、5、7、8为邻居节点等等。步骤1042,根据每两个邻居节点之间的连线的权重和每个节点的k-核值,利用第一认领值计算公式获取每个节点的认领值。步骤1043,对每个节点的认领值进行归一化,以获取每个节点的归一化后的认领值。步骤1044,根据每个节点的归一化后的认领值和每个节点的k-核值,利用第二认领值计算公式获取每个节点的精确认领值,作为每个节点对应的k-核认领值。其中,该第一认领值计算公式包括:其中,kci表示节点i的认领值,节点j为节点i的邻居节点,wij表示节点i和节点j之间的连线的权重,kj表示节点j的k-核值;该第二认领值计算公式包括:其中,ki表示节点i的k-核值,max(kci)表示节点i所在的层数中最大的认领值,kci表示节点i的认领值,kcvi表示节点i的k-核认领值。其中,max(kci)是指在节点i所在的层数中的所有节点的认领值中的最大的认领值。例如,在图3b中,节点1位于第五层,该第五层中除了节点1外还有节点2、节点3和节点4。假设节点2的认领值大于节点1、节点3和节点4,那么节点2的认领值就是第五层中的最大的认领值,因此节点1、节点2、节点3和节点4对应的max(kci)的值就都等于节点2的认领值。例如,通过上述算法得到的各篇候选文章(部分)的k-核认领值(由高到低)的排序如表1所示:表1节点名称度值k-核k-核认领值节点1855.9667节点3555.7667节点4455.6333节点2455.6节点6444.9286当需要推荐三篇文章时,根据表1可以选择出k-核认领值最高的节点1、节点3和节点4所对应的三篇文章,作为最终的输出结果推荐给用户。上述技术方案中,根据输入的关键词获取预设数量的与所述关键词匹配的多个候选文章;以每篇文章为一个节点,获取该多个候选文章的节点关系网络,该节点关系网络中包括多个候选文章对应的多个节点,以及该多个节点之间的连接关系;利用k-核分解确定该节点关系网络中的每个节点的k-核值,该k-核值用于表示在所述k-核分解过程中节点所在的层数;根据每个节点的k-核值,利用k-核认领算法,获取每个节点对应的k-核认领值。根据每个节点对应的k-核认领值,在该多个节点中选择k-核认领值最高的前n个节点所对应的n篇候选文章,作为要输出的目标推荐文章。由此可见,通过上述的文章的方法,无需历史数据或者个体喜好数据,因此对于新用户、新项目也能够获取高质量的推荐结果,并且所采用的k-核认领算法复杂度低于现有的cf推荐算法和cb推荐算法,因此能够降低计算复杂度。图5是根据本公开一示例性实施例示出的一种文章推荐装置的框图,如图5所示,该装置500包括:文章匹配模块501,用于根据输入的关键词获取预设数量的与所述关键词匹配的多个候选文章;网络获取模块502,用于以每篇文章为一个节点,获取所述多个候选文章的节点关系网络,所述节点关系网络中包括所述多个候选文章对应的多个节点,以及所述多个节点之间的连接关系;分层模块503,用于利用k-核分解确定所述节点关系网络中的每个节点的k-核值,所述k-核值用于表示在所述k-核分解过程中节点所在的层数;计算模块504,用于根据所述每个节点的k-核值,利用k-核认领算法,获取所述每个节点对应的k-核认领值;选择模块505,用于根据所述每个节点对应的k-核认领值,在所述多个节点中选择k-核认领值最高的前n个节点所对应的n篇候选文章,作为要输出的目标推荐文章。可选的,图6是根据本公开一示例性实施例示出的一种计算模块的框图,如图6所示,该计算模块504,包括:权重获取子模块5041,用于获取所述多个节点中的每两个邻居节点之间的连线的权重,其中两个邻居节点之间的一根连线表示所述两个邻居节点对应的两篇文章具有一个相同的知识点,所述连线的权重表示两个邻居节点之间的连线数量;其中,在所述多个节点中具有直接连线的两个节点互为邻居节点;第一认领值获取子模块5042,用于根据所述每两个邻居节点之间的连线的权重和所述每个节点的k-核值,利用第一认领值计算公式获取所述每个节点的认领值;第二认领值获取子模块5043,用于对所述每个节点的认领值进行归一化,以获取所述每个节点的归一化后的认领值;第三认领值获取子模块5044,用于根据每个节点的归一化后的认领值和所述每个节点的k-核值,利用第二认领值计算公式获取所述每个节点的精确认领值,作为所述每个节点对应的k-核认领值。其中,所述第一认领值计算公式包括:其中,kci表示节点i的认领值,节点j为节点i的邻居节点,wij表示节点i和节点j之间的连线的权重,kj表示节点j的k-核值;所述第二认领值计算公式包括:其中,ki表示节点i的k-核值,max(kci)表示节点i所在的层数中最大的认领值,kci表示节点i的认领值,kcvi表示节点i的k-核认领值。可选的,图7a是根据本公开一示例性实施例示出的一种网络获取模块的框图,如图7a所示,该网络获取模块502,包括:知识点获取子模块5021,用于以所述每篇文章为一个节点,通过获取所述多个候选文章中的每篇文章的知识点集合,得到所述多个节点的知识点集合,所述每篇文章的所述知识点集合是在存储所述文章时确定的,所述每篇文章的知识点集合中包括所述每篇文章的多个知识点;知识点识别子模块5022,用于确定所述多个节点中的每两个节点的知识点集合中是否存在相同知识点,以及相同知识点的数量;网络建立子模块5023,用于通过将知识点集合中存在相同知识点的每两个节点之间建立连线,得到所述节点关系网络。可选的,在另一种实现方式中,图7b是根据本公开一示例性实施例示出的另一种网络获取模块的框图,如图7b所示,该网络获取模块502,可以包括:全局网络获取子模块5024,用于获取已存储的全局节点关系网络,所述全局节点关系网络是根据已存储的所有文章的知识点集合预先建立的所述所有文章的节点关系网络,所述全局节点关系网络中包括所述所有文章对应的节点,以及所述所有文章对应的节点之间的连接关系,所述所有文章包含所述多个候选文章;网络提取子模块5025,用于从所述全局节点关系网络中提取出包含所述多个候选文章对应的多个节点的局部节点关系网络,作为所述多个候选文章的节点关系网络。图8是根据本公开一示例性实施例示出的一种文章推荐装置的框图,如图8所示,该装置500还包括:分词模块506,用于当接收到新输入的第一文章时,对所述第一文章的主题和文章内容进行分词处理,得到所述第一文章的词语集合;预处理模块507,用于通过对所述词语集合中的同义词进行合并为同一词语,以及去除所述词语集合中的无效词语,得到处理后的词语集合,所述无效词语包括:人称、量词、介词、连词、助词;统计模块508,用于对所述处理后的词语集合中的词语进行词频统计,以获取所述处理后的词语集合中的每个词语的词频;知识点确定模块509,用于根据所述每个词语的词频,获取词频最高的m个词语作为所述第一文章的m个知识点。图9是根据本公开一示例性实施例示出的一种选择模块的框图,如图9所示,该选择模块505,可以包括:排序子模块5051,用于通过对所述多个节点对应的k-核认领值进行倒序排列,获取所述多个节点的k-核认领值由高到低的排序;选择子模块5052,用于选择所述排序中排名最高的前n个节点所对应的n篇文章,作为所述目标文章。上述技术方案中,根据输入的关键词获取预设数量的与所述关键词匹配的多个候选文章;以每篇文章为一个节点,获取该多个候选文章的节点关系网络,该节点关系网络中包括多个候选文章对应的多个节点,以及该多个节点之间的连接关系;利用k-核分解确定该节点关系网络中的每个节点的k-核值,该k-核值用于表示在所述k-核分解过程中节点所在的层数;根据每个节点的k-核值,利用k-核认领算法,获取每个节点对应的k-核认领值;根据每个节点对应的k-核认领值,在该多个节点中选择k-核认领值最高的前n个节点所对应的n篇候选文章,作为要输出的目标推荐文章。由此可见,通过上述的文章的方法,无需历史数据或者个体喜好数据,因此对于新用户、新项目也能够获取高质量的推荐结果,并且所采用的k-核认领算法复杂度低于现有的cf推荐算法和cb推荐算法,因此能够降低计算复杂度。关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。图10是根据一示例性实施例示出的一种电子设备的框图。如图10所示,该电子设备1000可以包括:处理器1001,存储器1002。该电子设备1000还可以包括多媒体组件1003,输入/输出(i/o)接口1004,以及通信组件1005中的一者或多者。其中,处理器1001用于控制该电子设备1000的整体操作,以完成上述的文章推荐方法中的全部或部分步骤。存储器1002用于存储各种类型的数据以支持在该电子设备1000的操作,这些数据例如可以包括用于在该电子设备1000上操作的任何应用程序或方法的指令,以及应用程序相关的数据,例如联系人数据、收发的消息、图片、音频、视频等等。该存储器1002可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,例如静态随机存取存储器(staticrandomaccessmemory,简称sram),电可擦除可编程只读存储器(electricallyerasableprogrammableread-onlymemory,简称eeprom),可擦除可编程只读存储器(erasableprogrammableread-onlymemory,简称eprom),可编程只读存储器(programmableread-onlymemory,简称prom),只读存储器(read-onlymemory,简称rom),磁存储器,快闪存储器,磁盘或光盘。多媒体组件1003可以包括屏幕和音频组件。其中屏幕例如可以是触摸屏,音频组件用于输出和/或输入音频信号。例如,音频组件可以包括一个麦克风,麦克风用于接收外部音频信号。所接收的音频信号可以被进一步存储在存储器1002或通过通信组件1005发送。音频组件还包括至少一个扬声器,用于输出音频信号。i/o接口1004为处理器1001和其他接口模块之间提供接口,上述其他接口模块可以是键盘,鼠标,按钮等。这些按钮可以是虚拟按钮或者实体按钮。通信组件1005用于该电子设备1000与其他设备之间进行有线或无线通信。无线通信,例如wi-fi,蓝牙,近场通信(nearfieldcommunication,简称nfc),2g、3g或4g,或它们中的一种或几种的组合,因此相应的该通信组件1005可以包括:wi-fi模块,蓝牙模块,nfc模块。在一示例性实施例中,电子设备1000可以被一个或多个应用专用集成电路(applicationspecificintegratedcircuit,简称asic)、数字信号处理器(digitalsignalprocessor,简称dsp)、数字信号处理设备(digitalsignalprocessingdevice,简称dspd)、可编程逻辑器件(programmablelogicdevice,简称pld)、现场可编程门阵列(fieldprogrammablegatearray,简称fpga)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述的文章推荐方法。在另一示例性实施例中,还提供了一种包括程序指令的计算机可读存储介质,该程序指令被处理器执行时实现上述的文章推荐方法的步骤。例如,该计算机可读存储介质可以为上述包括程序指令的存储器1002,上述程序指令可由电子设备1000的处理器1001执行以完成上述的文章推荐方法。图11是根据一示例性实施例示出的另一种电子设备的框图。例如,电子设备1100可以被提供为一服务器。参照图11,电子设备1100包括处理器1122,其数量可以为一个或多个,以及存储器1132,用于存储可由处理器1122执行的计算机程序。存储器1132中存储的计算机程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理器1122可以被配置为执行该计算机程序,以执行上述的文章推荐方法。另外,电子设备1100还可以包括电源组件1126和通信组件1150,该电源组件1126可以被配置为执行电子设备1100的电源管理,该通信组件1150可以被配置为实现电子设备1100的通信,例如,有线或无线通信。此外,该电子设备1100还可以包括输入/输出(i/o)接口1158。电子设备1100可以操作基于存储在存储器1132的操作系统,例如windowsservertm,macosxtm,unixtm,linuxtm等等。在另一示例性实施例中,还提供了一种包括程序指令的计算机可读存储介质,该程序指令被处理器执行时实现上述的文章推荐方法的步骤。例如,该计算机可读存储介质可以为上述包括程序指令的存储器1132,上述程序指令可由电子设备1100的处理器1122执行以完成上述的文章推荐方法。以上结合附图详细描述了本公开的优选实施方式,但是,本公开并不限于上述实施方式中的具体细节,在本公开的技术构思范围内,可以对本公开的技术方案进行多种简单变型,这些简单变型均属于本公开的保护范围。另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合,为了避免不必要的重复,本公开对各种可能的组合方式不再另行说明。此外,本公开的各种不同的实施方式之间也可以进行任意组合,只要其不违背本公开的思想,其同样应当视为本公开所公开的内容。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1