基于关键词和主题模型融合的相关新闻计算方法及装置与流程

文档序号:11950541阅读:311来源:国知局
基于关键词和主题模型融合的相关新闻计算方法及装置与流程

本发明涉及信息技术领域,尤其涉及一种基于关键词和主题模型融合的相关新闻计算方法及装置。



背景技术:

目前的主流新闻App或者新闻门户网站,在新闻详情页的底部通常会推荐与该篇新闻相关的几条新闻供用户二次阅读。所推荐的相关新闻既要与该篇新闻有相关性又要有新奇性和实效性,以提高用户在产品上的停留时间和点击率。

目前,对于相关新闻的计算主要有两种方法:一是基于关键词的相关新闻计算,二是基于文章内容的主题模型来计算相关新闻,前者是对每条新闻计算其若干个keyword和相对应的权重,利用keyword建立起倒排索引,对待计算的新闻查询keyword的倒排索引,根据keyword命中的个数及其权重生成相关新闻候选集合,再根据命中keyword的个数及其权重对候选集合进行排序;后者是基于主题模型计算每条新闻的主题分布及其权重,由此得到每条新闻的主题分布权重向量,通过两两计算其向量的余弦相似度可得到两条新闻的主题相似度,据此相似度生成候选集合并结合相关策略进行排序。

上述两种计算相关新闻的方法均存在不同程度的问题,例如,只利用关键词计算相关新闻会存在准确率不够以及召回率不足等问题;只利用主题模型计算相关新闻会导致相关新闻只停留在主题层次,而有些类别的新闻常常是通过某几个关键词扩展而来的。



技术实现要素:

鉴于上述问题,提出了本发明提供一种基于关键词和主题模型融合的相关新闻计算方法及装置,以便克服现有技术中只利用关键词来计算相关新闻或者只利用主题模型来计算相关新闻所具有的缺陷。

本发明提供了一种基于关键词和主题模型融合的相关新闻计算方法,包括:

选取第一新闻的URL进行分割;

基于分割后的URL,进行关键字提取及主题模型计算,并根据由此得到的关键词相关信息、主题编号以及已知的新闻类别建立倒排索引;

基于所述倒排索引选择候选集并进行排序,选出与所述第一新闻相关的一个或多个第二新闻。

优选地,所述关键字提取的过程包括:

对所述第一新闻的URL分别进行正文和标题关键词的提取,并据此计算所述关键词的权重。以及,对单个所述关键词进行相关扩展,得到扩展关键词。

优选地,所述主题模型计算的过程包括:

根据所述第一新闻的URL计算其所属于的主题及权重。

优选地,所述关键词提取得到的关键词相关信息包括:原生关键词或者扩展关键词,则所述建立建倒排索引的过程包括:

将原生关键词或者扩展关键词、主题编号及新闻类别三部分生成多条三元组key,根据所述三元组key建立倒排索引。

优选地,对计算得到的所述原生关键词根据权重取排名靠前的多个,对所述扩展关键词取全部;以及对计算得到的所述主题编号根据权重取排名靠前的多个。

优选地,采用命中倒排索引分数的方法选择候选集。

优选地,对候选集进行排序前还包括:

对于所有类别的新闻,将其标题分词后过滤停词,两两之间计算标题term的Jaccard相似度;Jaccard相似度大于阈值的两条新闻认为是重复的新闻,进行消重过滤。

优选地,采取如下一种或多种策略对候选集中的新闻进行排序:

时间调权、地名调权、图片数调权、点击反馈调权、Ctr预估调权。

本发明还提供了一种基于关键词和主题模型融合的相关新闻计算装置,包括:

分割单元,用于选取第一新闻的URL进行分割;

计算单元,用于基于分割后的URL,进行关键字提取及主题模型计算;

索引建立单元,用于根据计算单元得到的关键词相关信息、主题编号以及已知的新闻类别建立倒排索引;

候选集选取单元,用于基于所述倒排索引选择候选集;

排序单元,用于对所述候选集进行排序,选出与所述第一新闻相关的一个或多个第二新闻。

优选地,所述计算单元具体包括:

第一计算模块,用于对所述第一新闻的URL分别进行正文和标题关键词的提取,并据此计算所述关键词的权重;

第二计算模块,用于根据所述第一新闻的URL计算其所属于的主题及权重。

优选地,所述第一计算模块还用于,对单个所述关键词进行相关扩展,得到扩展关键词。

优选地,所述关键词提取得到的关键词相关信息包括:原生关键词或者扩展关键词,则所述索引建立单元具体用于,将原生关键词或者扩展关键词、主题编号及新闻类别三部分生成多条三元组key,根据所述三元组key建立倒排索引。

优选地,所述索引建立单元具体进一步用于,对得到的所述原生关键词根据权重取排名靠前的多个,对所述扩展关键词取全部;以及对计算得到的所述主题编号根据权重取排名靠前的多个。

优选地,所述候选集选取单元采用命中倒排索引分数的方法选择候选集。

优选地,所述装置还包括:

消重单元,用于对候选集中的新闻,将其标题分词后过滤停词,两两之间计算标题term的Jaccard相似度,Jaccard相似度大于预定阈值的两条新闻认为是重复的新闻,进行消重过滤。

优选地,所述排序单元采取

如下一种或多种策略对候选集中的新闻进行排序:

时间调权、地名调权、图片数调权、点击反馈调权、Ctr预估调权。

本发明的有益效果为:

本发明是一种从多个维度考量计算相关新闻的技术方案,首先,基于关键词和主题模型融合得出新闻候选集,可同时兼顾到相关性和新奇性;其次,在rank流程中根据不同的新闻类别加入时间调权,消重,ctr预估和线上点击反馈等多种策略来适应真实的线上环境。

上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。

附图说明

通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:

图1为本发明实施例所述方法的流程示意图;

图2和图3为本发明实施例所述方法的应用实例示意图;

图4为本发明实施例所述装置的结构示意图。

具体实施例

下面结合附图和具体的实施方式对本发明作进一步的描述。

本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。

本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。

首先结合附图1到3对本发明实施例所述方法进行详细说明。

本发明实施例中,为了表达清楚起见,将当前待计算新闻称为第一新闻,后面计算得到的相关新闻称为第二新闻。

如图1所示,图1为本发明实施例所述方法的流程示意图,具体可以包括如下步骤:

步骤101:对于接收到的当前待计算新闻的URL进行分割;

具体来说就是,从Kafka流入的新闻首先会经过新闻预处理,过滤不适合计算相关新闻的新闻类别,然后将得到的第一新闻分割为正文部分与其他信息(如标题,抓取时间,类别等),分别存储在redis上,通过url@uinfo和url@content两个key来索引,并且设置不同的过期时间(例如,正文3天,其他信息30天)用来保证存储空间。其中,Kafka是一个分布式消息系统,其对消息保存时可以根据topic(主题)进行归类。redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。

步骤102:基于分割后的URL,进行关键字提取,得到关键词相关信息;

具体来说就是,基于分割后的URL,分别进行正文和标题关键词的提取及权重计算,输出格式为“词#词性#权重”。

作为本发明的优选方案,同时还可以对单个关键词进行word2vec的扩展,word2vec是一个将单词转换成向量形式的工具,可以把对文本内容的处理简化为向量空间中的向量运算,其本质上来说是一个矩阵分解的模型,矩阵刻画了每个关键词和其上下文的词的集合的相关情况。对这个矩阵进行分解,只取每个关键词对应在隐含空间的向量,由此完成word到vector(向量)的映射,再根据vector之间两两相似度,计算出与该关键词相关扩展后的词语,即扩展关键词。

步骤103:基于分割后的URL,进行主题模型计算,得到主题编号;

具体来说就是,基于分割后的URL,计算其所属于的某几个topic及其权重,topic内容用编号代替,即主题编号。本发明实施例中,主题模型计算使用的是Spark上LDA模型计算包,topic个数定为200个,并且对于每个类别的新闻和整体所有新闻分别训练了一份LDA模型。

步骤104:根据上述得到的关键词相关信息、主题编号以及已知的新闻类别建立倒排索引;

具体来说就是,对步骤102计算得到的原生关键词根据权重取排名靠前的几个(例如取Top3),word2vec扩展关键词取全部,作为第一部分;对步骤103计算得到的topic根据权重取排名靠前的几个(例如Top3),作为第二部分;将已知的新闻类别作为第三部分,此三部分做笛卡尔积生成n条三元组key,va l就是该条URL。由此可以将所有待建倒排索引集合里的ur l都建上索引,频率大概为10分钟。

步骤105:采用命中倒排索引分数的方法选择候选集;

具体来说就是,由于倒排索引的三元组key由三部分组成:原生关键词或者word2vec扩展出的关键词+主题编号+新闻类别,所以可以令命中三元组key的集合为X={x1,x2,…,xn}。

这里需要说明的是,上述利用三元组key建立倒排索引的方式适用于部分类别的新闻,比如,汽车,科技,体育,历史,国际,军事等。对于不适用于三元组key建立倒排索引的新闻类别,可以采用单类的topic模型或者全局的topic模型,例如,针对国内,社会,经济,健康,娱乐等类别,采用单类的topic模型,根据类内所有新闻的topic分布相似度选择候选集。这里的相似度采用余弦相似度,将每篇新闻的topic概率分布看作是一条n维向量。对于相似度大于一定阈值的新闻,认为该新闻是其相关新闻,进入候选集合。对info,news等类别,采用全局的topic模型,根据全局所有新闻的topic分布相似度选择候选集,计算方法与单类的topic模型类似,不同的是这里topic的概率分布使用了全局新闻的topic模型,待计算集合也是所有类别的新闻,这会导致向量维度过高,计算时间过高。观察全局topic模型发现,topic的概率分布常常偏向于某几个topic,长尾现象严重,这里对长尾进行阶段,只取每条新闻Top 10的topic做余弦相似度计算。

步骤106:对候选集进行消重处理;

具体来说就是,本发明实施例中,消重策略包含两种:一是在使用topic分布相似度得分生成候选集的新闻类别中,如果topic分布相似度得分大于一定阈值(取决于新闻类别),则认为是重复的新闻,进行消重过滤。二是对于所有类别的新闻,将其标题分词后过滤停词,两两之间计算标题term的Jaccard相似度:

<mrow> <mi>J</mi> <mi>a</mi> <mi>c</mi> <mi>c</mi> <mi>a</mi> <mi>r</mi> <mi>d</mi> <mi>S</mi> <mi>i</mi> <mi>m</mi> <mrow> <mo>(</mo> <mi>A</mi> <mo>,</mo> <mi>B</mi> <mo>)</mo> </mrow> <mo>=</mo> <mfrac> <mrow> <mo>|</mo> <mrow> <mi>A</mi> <mo>&cap;</mo> <mi>B</mi> </mrow> <mo>|</mo> </mrow> <mrow> <mo>|</mo> <mrow> <mi>A</mi> <mo>&cup;</mo> <mi>B</mi> </mrow> <mo>|</mo> </mrow> </mfrac> </mrow>

Jaccard相似度大于一定阈值的两条新闻认为是重复的新闻,进行消重过滤。

步骤107:对上述候选集中的新闻进行排序,选出与上述第一新闻最相关的一个或多个第二新闻;

具体来说就是,在得到相关新闻的候选集之后,需要根据rank策略对齐进行排序,使得最前面的相关新闻从各个维度综合得分最高,将得分靠前的一个或多个新闻作为第二新闻。

上述rank策略可以采用下述策略的一种或多种:

时间调权:相关新闻目前只索引7天内的新闻,因此根据新闻产生的时间t,可对其进行以0-7天为范围,以秒级别为精度的加权,t越小权重越大。考虑到线性平滑和加速两种加权方式,这里选择了后者。

地名调权:为了解决以关键词为倒排索引发的一类问题如:某条新闻是“北京某某地发生车祸”,提取关键词为“车祸”,进而会得到“xx市xx县发生车祸”等地域性新闻,而除了一线城市和一些知名城市外,这类的地域性新闻是用户不关心的,所以对于该类地名,需要进行特殊的降权处理。

图片数调权:一条新闻在展示时是否有图也是吸引用户是否点击的重要因素,这里按照列表展示样式的无图,单图和三图三种类别进行调权。

点击反馈调权:根据相关新闻线上的展现和点击情况,对ctr高的相关新闻进行适当的加权。

ctr预估调权:在积累了一定用户行为之后,可以根据文章的各种特征和用户最后是否点击来训练出ctr的预估模型,这里采用topic概率分布top 3的topic与正样本的余弦相似度训练出预估模型,供线上使用。

需要说明的是,由于新闻在计算topic模型时比较耗时,因此采用异步的计算流程,将关键词和topic模型的计算,倒排索引的建立与相关新闻计算的主流程分开。同时为了相关新闻的更新足够快,对于不同时间点内发生的新闻,采用不同的计算频率。

如图2和图3所示,图2和图3为本发明实施例所述方法的应用实例示意图,目前该相关新闻的计算方法与流程嵌入在360手机浏览器,360搜索app,360搜索web和手机卫士等各个产品线的新闻频道中。如图2所示,在用户点击标题为“万万没想到,跑男的录制过程竟然是这样子的……”的新闻详情页之后,后台系统会按照本发明实施例所述方法进行计算,得到多条与该新闻相关的新闻作为候选集,然后对候选集中的相关信息进行排序,选择其中的TOP3推荐给用户,如图3所示,图3为推荐给用户的3条相关新闻,其标题分别为“跑男游戏被指作假揭秘“奔跑吧兄弟”的各种穿帮镜头”、“《奔跑吧兄弟》今天开跑蓝琊榜谁与争锋”以及“预告:奔跑吧兄弟4第二期特邀嘉宾名单及分组林允贾玲强势来袭”。

接下来结合附图4对本发明实施例所述装置进行详细说明。

如图4所示,图4为本发明实施例所述装置的结构示意图,具体可以包括:分割单元、计算单元、索引建立单元、候选集选取单元、消重单元以及排序单元,其中,

分割单元,用于选取第一新闻的URL进行分割;具体来说就是,从Kafka流入的新闻首先会经过新闻预处理,过滤不适合计算相关新闻的新闻类别,然后分割单元将得到的第一新闻分割为正文部分与其他信息(如标题,抓取时间,类别等),分别存储在redis上,通过url@uinfo和url@content两个key来索引,并且设置不同的过期时间(例如,正文3天,其他信息30天)用来保证存储空间。其中,Kafka是一个分布式消息系统,其对消息保存时可以根据Topic(主题)进行归类。redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。

计算单元,用于基于分割后的URL,进行关键字提取及主题模型计算;

上述计算单元具体包括:第一计算模块和第二计算模块,其中,

第一计算模块,用于对所述第一新闻的URL分别进行正文和标题关键词的提取,并据此计算所述关键词的权重;具体来说就是,第一计算模块基于分割后的URL,分别进行正文和标题关键词的提取及权重计算,输出格式为“词#词性#权重”。

作为本发明的优选方案,第一计算模块同时还可以对单个关键词进行word2vec的扩展,word2vec是一个将单词转换成向量形式的工具,可以把对文本内容的处理简化为向量空间中的向量运算,其本质上来说是一个矩阵分解的模型,矩阵刻画了每个关键词和其上下文的词的集合的相关情况。对这个矩阵进行分解,只取每个关键词对应在隐含空间的向量,由此完成了word到vector(向量)的映射,再根据vector之间两两相似度,计算出与该关键词相关扩展后的词语,即扩展关键词。

第二计算模块,用于根据所述第一新闻的URL计算其所属于的主题及权重;具体来说就是,基于分割后的URL,第二计算模块计算其所属于的某几个topic及其权重,topic内容用编号代替,及主题编号。本发明实施例中,主题模型计算使用的是Spark上LDA模型计算包,topic个数定为200个,并且对于每个类别的新闻和整体所有新闻分别训练了一份LDA模型。

索引建立单元,用于根据计算单元得到的关键词相关信息、主题编号以及已知的新闻类别建立倒排索引;具体来说就是,对第一计算模块计算得到的原生关键词根据权重值取排名靠前的几个(例如取Top3),word2vec扩展关键词取全部,作为第一部分;对第二计算模块计算得到的topic根据权重值取排名靠前的几个(例如Top3),作为第二部分;将已知的新闻类别作为第三部分,索引建立单元将此三部分做笛卡尔积生成n条三元组key,val就是该条URL。

候选集选取单元,用于基于所述倒排索引选择候选集;具体来说就是,由于倒排索引的三元组key由三部分组成:原生关键词或者word2vec扩展出的关键词+主题编号+新闻类别,所以可以令命中三元组key的集合为X={x1,x2,…,xn}。。

消重单元,作为本发明实施例的优选功能单元,在对所述候选集进行排序之前,消重单元用于对候选集中的新闻,将其标题分词后过滤停词,两两之间计算标题term的Jaccard相似度,Jaccard相似度大于预定阈值的两条新闻认为是重复的新闻,进行消重过滤。

排序单元,用于对所述候选集进行排序,选出与所述第一新闻相关的一个或多个第二新闻;具体来说就是,在得到相关新闻的候选集之后,排序单元需要根据rank策略对齐进行排序,使得最前面的相关新闻从各个维度综合得分最高,将得分靠前的一个或多个新闻作为第二新闻。

上述rank策略可以采用下述策略的一种或多种:

时间调权:相关新闻目前只索引7天内的新闻,因此根据新闻产生的时间t,可对其进行以0-7天为范围,以秒级别为精度的加权,t越小权重越大。考虑到线性平滑和加速两种加权方式,这里选择了后者。

地名调权:为了解决以关键词为倒排索引发的一类问题如:某条新闻是“北京某某地发生车祸”,提取关键词为“车祸”,进而会得到“xx市xx县发生车祸”等地域性新闻,而除了一线城市和一些知名城市外,这类的地域性新闻是用户不关心的,所以对于该类地名,需要进行特殊的降权处理。

图片数调权:一条新闻在展示时是否有图也是吸引用户是否点击的重要因素,这里按照列表展示样式的无图,单图和三图三种类别进行调权。

点击反馈调权:根据相关新闻线上的展现和点击情况,对ctr高的相关新闻进行适当的加权。

ctr预估调权:在积累了一定用户行为之后,可以根据文章的各种特征和用户最后是否点击来训练出ctr的预估模型,这里采用topic概率分布top 3的topic与正样本的余弦相似度训练出预估模型,供线上使用。

综上所述,本发明所述实施例是一种从多个维度考量计算相关新闻的技术方案,首先,基于关键词和主题模型融合得出的新闻候选集,克服了单独采用关键词计算相关新闻或者单独采用主题模型计算所具有的缺陷,同时兼顾到相关性和新奇性;其次,在rank流程中根据不同的新闻类别加入时间调权,消重,ctr预估和线上点击反馈等多种策略来适应真实的线上环境。

需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互任意组合。

本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的网络搜索系统中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。

本文中所称的“一个实施例”、“实施例”或者“一个或者多个实施例”意味着,结合实施例描述的特定特征、结构或者特性包括在本发明的至少一个实施例中。此外,请注意,这里“在一个实施例中”的词语例子不一定全指同一个实施例。

在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下被实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。

应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。

此外,还应当注意,本说明书中使用的语言主要是为了可读性和教导的目的而选择的,而不是为了解释或者限定本发明的主题而选择的。因此,在不偏离所附权利要求书的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。对于本发明的范围,对本发明所做的公开是说明性的,而非限制性的,本发明的范围由所附权利要求书限定。

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