一种自动实时新闻推荐方法与流程

文档序号:11590637阅读:370来源:国知局

本发明涉及一种新闻的推荐方法,其用于新闻推荐领域,特别涉及到一种自动实时新闻推荐方法。



背景技术:

互联网的出现和普及给用户带来了大量的信息,满足了用户在信息时代对信息的需求。但随着网络的迅速发展而带来的网上信息量的大幅增长,使得用户在面对大量信息时,无法从中获得对自己真正有用的那部分信息,对信息的使用效率反而降低了,这就是所谓的信息超载(informationoverload)问题。

解决信息超载的问题有以搜索引擎为代表的信息检索系统,但是使用搜索引擎的不同用户在使用同一个关键字搜索信息时,得到的结果是相同的,可见搜索引擎满足不了用户对信息的多元化和个性化需求。而个性化推荐系统,它是根据用户的信息需求、兴趣等,将用户感兴趣的信息推送给用户。和搜索引擎相比,个性化推荐系统通过研究用户的兴趣偏好,进行个性化计算,发现用户的兴趣点,进而推送给用户感兴趣的信息。而个性化新闻推荐系统就是个性化推荐系统在新闻领域的最典型的应用。

新闻推荐系统中比较常用的推荐算法有三种:基于内容的推荐算法、协同过滤推荐算法和混合推荐算法。

基于内容的推荐算法是根据用户过去所选择的对象,找出和它相关属性相似度最高的对象,即认为该对象是最符合用户偏好的对象,并将其推荐给用户。这类算法通常来源于对信息进行检索,运用特征提取的方法,得出用户已经评价项目的特征信息,根据这些特征信息分析出用户的喜好,进而考察用户的兴趣与待推荐项目的匹配程度。但运用该方法的缺点是项目的特征抽取比较困难,特别是对于一些非结构化的信息更加难以处理。同时推荐内容受限,很难挖掘用户潜在兴趣。

协同过滤算法的基本原理是根据用户对项目的反馈信息,找出与该用户相类似的用户或者找到与该项目相类似的项目,进而进行合理推荐。协同个性化推荐的优点是可以发现用户潜在的兴趣点,缺点是不能推荐那些从来没有被同类中其他用户访问过的信息,难以解决冷启动问题、数据稀疏性问题及可扩展性问题。

混合推荐是将基于内容的推荐和协同推荐结合起来的一种推荐方法。既比较信息资源与用户兴趣模型的相似度,又寻找具有相近兴趣的用户类,可以更好的进行个性化推荐。但需具体应用场景具体分析。



技术实现要素:

本发明提供一种自动实时新闻推荐方法,以解决上述现有技术的缺陷,本发明能对新闻进行自动、实时的个性化推荐,无论是新用户和已注册用户,都具有很强的适应性和稳定性。

一种自动实时新闻推荐方法,其特征在于,包括以下步骤:

步骤一、新闻抓取:通过爬虫工具,抓取新闻网页地址,下载新闻标题及新闻内容,并将新闻存储到数据库新闻表中;

步骤二、新闻预处理:对新闻进行分词处理,只保留名词;去掉无效新闻,并将有效新闻的分词结果存储到数据库新闻表中;

步骤三、新闻模型训练:采用基于gibbssampling的lda算法进行主题模型的训练,建立主题模型;

步骤四、新闻特征建模:进行新闻特征提取,建立新闻特征模型,新闻特征模型由新闻标签模型nt和新闻主题特征模型nl组成,即n={nt,nl};

步骤五、用户特征初步建模:进行用户特征提取,建立用户画像,对用户特征进行初步建模;

步骤六、用户特征二次建模:基于步骤五用户特征初步建模结果,对用户特征进行二次精确建模,建立用户兴趣模型u,用户兴趣模型u由用户兴趣关键词模型ut和用户兴趣主题特征模型ul组成,即u={ut,ul};

步骤七、相似度计算:基于上述步骤四至步骤六提取的新闻特征和用户兴趣,进行新闻特征模型和用户兴趣模型的融合匹配度计算;

步骤八、新闻推荐。

本发明所述的一种自动实时新闻推荐方法,步骤三新闻模型训练包括以下过程:

采用基于gibbssampling的lda算法进行主题模型的训练:先设定主题个数k,建立主题模型,即每个新闻文本在各个主题上对应的主题特征向量tl=(w1,w2,w3,…,wk);

主题模型建立后,对建立的主题模型使用perplexity值进行持续优化,perplexity值计算公式为:

perplexity值越小,则说明模型越好。

本发明所述的一种自动实时新闻推荐方法,步骤四新闻特征建模包括以下过程:

首先运用tf-idf算法计算新闻关键词,得到新闻标签模型nt,即:nt={关键词序列};

再运用所述步骤三中建立的主题模型计算新闻在主题模型上分布的新闻主题特征模型nl,即:nl={w1,w2,w3,…,wn},其中n为主题个数。

本发明所述的一种自动实时新闻推荐方法,步骤五用户特征初步建模包括以下步骤:

根据用户的特征,对用户的群体分成若干个先验的聚类,并赋予每个类别特定的初始关键词,得到用户初始兴趣关键词列表uk={初始关键词序列}。通过该步骤可有效解决新闻推荐冷启动问题。

本发明所述的一种自动实时新闻推荐方法,步骤六用户特征二次建模包括以下过程:

1)建立用户兴趣关键词模型ut:

根据用户以往有过浏览、转发、评论行为的新闻,提取用户兴趣行为特征关键词列表un,需设置浏览、转发、评论行为的权重值修正向量k={k1,k2,k3},且

再将用户兴趣行为特征关键词列表un与用户初始兴趣关键词列表uk用公式vn=uk∪un进行合并,得到用户兴趣关键词列表vn={v1,v2,v3,…,vn};

根据tf-idf算法计算vn中的关键词的tf-idf值得到向量wn={tk1,tk2,tk3,…,tkn};

根据公式wki=kj*tki计算得到权值向量wt={wk1,wk2,wk3,…,wkn},其中n为关键词的个数,tki为tf-idf词频向量值,kj为权重值修正向量k中的其中一个值,kj的值根据对应关键词所在文章的用户行为决定;

取wt中权值排在前m的m个词,作为用户兴趣关键词模型ut的关键词列表,即ut={用户兴趣关键词}。

2)建立用户兴趣主题特征模型ul:

根据用户以往有过浏览、转发、评论行为的新闻,提取用户兴趣行为主题特征模型ul={wu1,wu2,wu3,…,wun},其中需设置浏览、转发、评论行为的权重值修正向量k={k1,k2,k3},且

根据公式计算用户兴趣主题特征向量ul,其中n为用户产生过行为的新闻的数量,ni为用户产生过行为的新闻的主题模型,kj为权重值修正向量k中的其中一个值,kj的值根据对应关键词所在文章的用户行为决定。

本发明所述的一种自动实时新闻推荐方法,步骤七相似度计算包括以下过程:

1)计算新闻标签模型nt和用户兴趣关键词模型ut的匹配度θt:用公式来计算nt和ut的匹配程度,θt越大,nt与ut的匹配程度越高;

2)计算新闻主题特征模型nl和用户兴趣主题特征模型ul的匹配度dl:用公式计算新闻主题特征模型nl与用户兴趣主题特征模型ul的距离,用来衡量两个主题分布之间的差异,其中pi为新闻主题特征模型nl中的元素,qi为用户兴趣主题特征模型ul中的元素,k为nl和ul中的元素个数,dl越小,nl与ul的匹配程度越高;

计算新闻模型与用户模型的融合匹配度s:用公式s=α*θt+β*1/dl,进行融合匹配度计算,s越大,说明匹配度越高,其中,α、β为调整系数,且α+β=1。

本发明所述的一种自动实时新闻推荐方法,步骤八新闻推荐包括以下过程:

根据所述步骤七新闻特征模型和用户兴趣模型的融合匹配度计算得到的相似度值,选取前若干个相似度值较大的新闻建立推送列表,再加入时效性权值进行二次排序,将最后得到的新闻列表推荐给用户;

时效性权值计算公式如下:

其中s为所述步骤七计算的融合相似度,ε为时效性权值调整系数,t为系统当前时间,t0为新闻进入系统的时间。

本发明同时提供一种自动实时新闻推荐方法的实现装置,由以下几个模块构成:

新闻抓取模块:通过爬虫工具,抓取新闻网页地址,即统一资源定位符url。下载新闻标题及新闻内容,并将新闻存储到数据库新闻表中。

新闻预处理模块:对新闻进行分词处理,只保留名词。去掉无效新闻,并将有效新闻的分词结果存储到数据库新闻表中。

新闻模型训练模块:采用基于gibbssampling的lda算法进行主题模型的训练。建立主题模型。

新闻特征提取模块:对新闻进行建模。首先运用tf-idf算法计算文章关键词,得到新闻标签模型nt,即:nt={关键词序列}。再运用步骤三中建立的主题模型计算新闻主题特征模型nl,即:nl={w1,w2,w3,…,wn},其中n为主题个数。新闻模型由新闻标签模型nt和新闻主题特征模型nl组成,即n={nt,nl}。

用户特征提取模块:进行用户特征提取,建立用户画像,进行用户兴趣模型初步建模。根据用户的特征,对用户的群体分成若干个先验的聚类,并赋予类别特定的初始关键词。得到用户初始兴趣关键词列表uk={初始关键词序列}。

用户二次精细建模模块:基于用户初步建模的模型,对用户进行二次精确建模。用户兴趣模型u由用户兴趣关键词模型ut和用户兴趣主题特征模型ul组成,即u={ut,ul}。

新闻特征模型和用户兴趣模型的融合匹配度计算模块。基于上述模块提取的新闻特征和用户特征,进行新闻特征模型和用户兴趣模型的融合匹配度计算。主要是分两步进行,首先计算新闻标签模型nt和用户兴趣关键词模型ut的匹配度θt,再计算新闻主题特征模型nl和用户兴趣主题特征模型ul的匹配度dl。计算新闻模型与用户模型的融合匹配度s。在上述计算匹配度θt及匹配度dl之后,用公式s=α*θt+β*1/dl,进行融合匹配度计算,s越大,说明匹配度越高。其中,α、β为调整系数,且α+β=1。

个性化新闻推荐处理模块:根据上述新闻特征模型和用户兴趣模型的融合匹配度计算模块计算得到的相似度值,选取前10个相似度值较大的新闻建立推送列表,再加入时效性权值进行二次排序,将最后得到的新闻列表推荐给用户。时效性权值计算公式如下:

其中s为步骤七计算的融合相似度,ε为时效性权值调整系数,t为系统当前时间,t0为新闻进入系统的时间。

本发明提供的一种自动实时新闻推荐方法优点在于:本算法不仅在步骤四中克服了基于内容的推荐算法的项目特征提取困难的缺点,而且还在步骤五和步骤六中,对用户的特征进行初步及二次提取,解决了协同过滤的推荐算法的冷启动问题。同时,本方法利用文档相似性计算原理,在用户刷新推荐列表时,做到快速捕捉用户的兴趣点,做到实时准确的推荐。

附图说明

图1是本发明整体流程原理框图

图2是本发明新闻推荐方法流程图

图3是本发明主题模型训练流程图

图4是本发明perplexity值曲线图

具体实施方式

本发明的具体实施方式将结合本发明在政务新闻推荐系统中的应用来说明。新闻推荐系统是借助移动端设备上的互联网信息数据传播技术,将推荐系统安装于应用软件中,对新闻事件报道和相关资讯编辑整理、重组衔接,以信息数据系统协调构建与资源共享的方式,依照个体的差异性信息需求、阅读兴趣,为受众提供定制化、个性化的新闻推送服务。本发明具体实施内容就是针对政务领域的不同用户,实现新闻的实时精准的个性化推送。本发明推荐算法整体结构框图如图1所示。

本发明的应用之一是政务新闻的推荐领域,基于政务新闻的专业性、指导性、时效性等特点,我们应用了本发明一种自动实时新闻推荐方法,该方法依托于新闻lda隐语义模型和用户兴趣行为模型,计算融合匹配相似度。同时在用户刷新新闻列表时,融入了基于新闻内容的协同过滤算法作为辅助推荐策略。推荐具体流程图如图2所示。

本发明一种自动实时新闻推荐方法,具体实施步骤如下:

(1)通过自研爬虫工具jcspider抓取新闻网页地址,即统一资源定位符url。下载新闻标题及新闻内容,对于每篇新闻,赋予唯一的id号,并将新闻存储到数据库新闻表中。

(2)新闻预处理。本发明采用python中文分词模块结巴分词对新闻文本进行分词,首先去掉“的、得、地”等停用词,最后只保留名词。并将新闻的分词结果存储到数据库新闻表中。

(3)进行新闻模型训练。建立训练集。本发明利用步骤(1)中的爬虫工具从正义网中爬取近1年的新闻标题及内容,共保留3万条新闻,其中22000条制作训练集,8000条制作测试集。再采用基于gibbssampling的lda算法进行主题模型的训练。主题训练流程如图3所示。先设定主题个数k为50,建立主题模型,即每个新闻文本在各个主题上对应的主题特征向量tl=(w1,w2,w3,…,wk),且主题模型建立后,要用测试集进行验证。取由3000条数据组成的测试集,对建立的主题模型使用perplexity值进行持续优化,该值由如下公式计算得出。perplexity值越小,说明模型越好。

实验结果表明,如图4所示,随着k值增大,perplexity先是逐渐减小,最后趋于稳定。当k即主题个数大于60以后,perplexity值逐渐稳定在1500左右。即当主题个数k取60时,perplexity值最小,为1500。此时令k=60,并计算主题分布模型。

(4)提取新闻特征,对新闻进行建模。首先运用tf-idf算法计算文章关键词,根据tf-idf算法计算得到的权值按照从大到小排列,取前20个词作为文章的关键词,得到新闻标签模型nt,即:nt={关键词1,关键词2,关键词3,…,关键词n},n=20。再运用步骤(3)中建立的主题模型计算新闻在主题模型上分布的新闻主题特征模型nl,即:nl={w1,w2,w3,…,wk},其中k为主题个数60。新闻模型由新闻标签模型nt和新闻主题特征模型nl组成,即n={nt,nl}。

(5)提取用户特征,对用户进行初步建模。本发明的应用之一是政务新闻的推荐领域,基于政务新闻的特殊性,各省、市、县厅、局、委、办部门公务人员对新闻关心的侧重点略有差别,对用户的群体分成若干个先验的聚类,并赋予每个类别特定的初始关键词。这里以吉林省人社厅为例,共收集800名用户的基本信息,共分成7大类的先验聚类,分别是国内时政类、就业创业类、社会保险类、人事人才类、技能培训类、劳动关系类和人设综合类。每一类都有特定的关键词列表。每一类的用户初始兴趣关键词列表uk={关键词1,关键词2,关键词3,…,关键词k},k为关键词的个数。通过对每一类别进行关键词初始化,可有效解决新闻推荐系统的冷启动问题。

(6)基于步骤(5)建立的用户初步建模的模型,对用户进行二次精确建模。用户兴趣模型u由用户兴趣关键词模型ut和用户兴趣主题特征模型ul组成,即u={ut,ul}。

建立用户兴趣关键词模型ut。根据用户以往有过浏览、转发、评论等行为的新闻,提取用户兴趣行为特征关键词列表un。这里需设置浏览、转发、评论等行为的权重值修正向量k={k1,k2,k3},且这里设置k1=0.2,k2=0.5,k3=0.3再将用户兴趣行为特征关键词列表un与用户初始兴趣关键词列表uk用公式vn=uk∪un进行合并,得到用户兴趣关键词列表vn={v1,v2,v3,…,vn}。根据tf-idf算法计算vn中的关键词的tf-idf值得到向量wn={tk1,tk2,tk3,…,tkn}。将wn中值按照从大到小排列,取前20个权值对应的词作为用户兴趣关键词列表vk={v1,v2,v3,…,vk}。根据公式wki=kj*tki计算得到权值向量wt={wk1,wk2,wk3,…,wkn},其中tki为tf-idf词频向量值,kj为权重值修正向量k中的其中一个值,如何确定kj的值,需根据对应关键词所在文章的用户行为决定,其中浏览行为0.2,转发行为0.5,评论行为0.3。取wt中权值排在前20的20个词作为用户兴趣关键词模型ut的关键词列表,即ut={关键词1,关键词2,关键词3,…,关键词k},其中k=20。

建立用户兴趣主题特征模型ul。根据用户以往有过浏览、转发、评论等行为的新闻,提取用户兴趣行为主题特征模型ul={wu1,wu2,wu3,…,wun},其中这里仍需设置浏览、转发、评论等行为的权重值修正向量k={k1,k2,k3},且根据公式计算用户兴趣主题特征向量ul,其中n为用户产生过行为的新闻的数量,ni为用户产生过行为的新闻的主题模型,kj为权重值修正向量k中的其中一个值,如何确定kj的值需根据对应关键词所在文章的用户行为决定,其中浏览行为0.2,转发行为0.5,评论行为0.3。

(7)基于上述步骤(4)(5)(6)提取的新闻特征和用户兴趣,进行新闻特征模型和用户兴趣模型的融合匹配度计算。主要是分两步进行,首先计算新闻标签模型nt和用户兴趣关键词模型ut的匹配度,再计算新闻主题特征模型nl和用户兴趣主题特征模型ul的匹配度。

计算新闻标签模型nt和用户兴趣关键词模型ut的匹配度θt。用公式来计算nt和ut的匹配程度。θt越大,nt与ut的匹配程度越高。

计算新闻主题特征模型nl和用户兴趣主题特征模型ul的匹配度dl。用公式计算新闻主题特征模型nl与用户兴趣主题特征模型ul的距离,该距离用来衡量两个主题分布之间的差异,其中pi为新闻主题特征模型nl中的元素,qi为用户兴趣主题特征模型ul中的元素,k为nl和ul中的元素个数。dl越小,nl与ul的匹配程度越高。

计算新闻模型与用户模型的融合匹配度s。在上述计算匹配度θt及匹配度dl之后,用公式s=α*θt+β*1/dl,进行融合匹配度计算,s越大,说明匹配度越高。其中,α、β为调整系数,且α+β=1。这里取α=0.4,β=0.6。

(8)个性化新闻推荐处理。

根据上述步骤(7)新闻特征模型和用户兴趣模型的融合匹配度计算模块计算得到的相似度值,选取前10个相似度值较大的新闻建立推送列表,再加入时效性权值进行二次排序,将最后得到的新闻列表推荐给用户。时效性权值计算公式如下:

其中s为步骤(7)计算的融合相似度,ε为时效性权值调整系数,这里取0.7,t为系统当前时间,t0为新闻进入系统的时间。

按照s′值从大到小对新闻进行二次排序,得到最后的新闻推荐列表,推送给用户。

以上所述为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所做的等效结构或等效流程变换,或直接或间接运用在其他相关技术领域,均同理包括在本发明的专利保护范围内。

本发明一种自动实时新闻推荐方法的实现装置,由以下几个模块构成:

新闻抓取模块:通过爬虫工具,抓取新闻网页地址,即统一资源定位符url。下载新闻标题及新闻内容,并将新闻存储到数据库新闻表中。

新闻预处理模块:对新闻进行分词处理,只保留名词。去掉无效新闻,并将有效新闻的分词结果存储到数据库新闻表中。

新闻模型训练模块:采用基于gibbssampling的lda算法进行主题模型的训练。建立主题模型。

新闻特征提取模块:对新闻进行建模。首先运用tf-idf算法计算文章关键词,得到新闻标签模型nt,即:nt={关键词序列}。再运用步骤(2)中建立的主题模型计算新闻主题特征模型nl,即:nl={w1,w2,w3,…,wn},其中n为主题个数。新闻模型由新闻标签模型nt和新闻主题特征模型nl组成,即n={nt,nl}。

用户特征提取模块:进行用户特征提取,建立用户画像,初步建模。根据用户的特征,对用户的群体分成若干个先验的聚类,并赋予类别特定的初始关键词。得到用户初始兴趣关键词列表uk={初始关键词序列}。

用户二次精细建模模块:基于用户初步建模的模型,对用户进行二次精确建模。用户兴趣模型u由用户兴趣关键词模型ut和用户兴趣主题特征模型ul组成,即u={ut,ul}。

新闻特征模型和用户兴趣模型的融合匹配度计算模块:基于上述模块提取的新闻特征和用户特征,进行新闻特征模型和用户兴趣模型的融合匹配度计算。主要是分两步进行,首先计算新闻标签模型nt和用户兴趣关键词模型ut的匹配度θt,再计算新闻主题特征模型nl和用户兴趣主题特征模型ul的匹配度dl。计算新闻模型与用户模型的融合匹配度s。在上述计算匹配度θt及匹配度dl之后,用公式s=α*θt+β*1/dl,进行融合匹配度计算,s越大,说明匹配度越高。其中,α、β为调整系数,且α+β=1。

个性化新闻推荐处理模块:根据上述新闻特征模型和用户兴趣模型的融合匹配度计算模块计算得到的相似度值,选取前10个相似度值较大的新闻建立推送列表,再加入时效性权值进行二次排序,将最后得到的新闻列表推荐给用户。时效性权值计算公式如下:

其中s为步骤(7)计算的融合相似度,ε为时效性权值调整系数,t为系统当前时间,t0为新闻进入系统的时间。

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