一种电子书内容推荐系统的制作方法

文档序号:29351374发布日期:2022-03-22 21:37阅读:63来源:国知局
一种电子书内容推荐系统的制作方法

1.本发明涉及电子书阅读软件技术领域,特别涉及一种电子书内容推荐系统。


背景技术:

2.在此互联网时代,电子书也顺时而生,以低成本、携带方便、可携带量大等特点进入人们的日常生活,在很多方面替代了传统书籍。而电子书中的网络电子书作为人们工作闲暇之余的一种消遣工具,近年来一直处于高速发展的状态。目前网络电子书种类繁多,电子书总量也非常庞大,对于一个电子书网站而言,电子书书本数量一般从几千到几万甚至更多,而用户一般难以从大量的电子书中挑选到自己喜欢的电子书。为解决此类信息过载问题,传统的方法是将电子书进行分类、分榜单,然后用户根据类别或者榜单自己去寻找该类下的电子书。但这类方法存在两个问题,第一是尽管已经对电子书进行分类,但是每个类别下的电子书数量依旧非常多,用户仍然难以发现自己喜欢的电子书;第二是不同的用户兴趣爱好显然是不同的,因此喜欢的电子书也不可能都是一样的,然而上述方法中对于每个用户展示的电子书列表都是一样的,不具备个性化的功能。因此对于一个电子书网站而言,快速有效的为每个用户提供个性化的推荐列表是提高用户粘性的一个关键点。然而目前在网络电子书推荐领域相关研究很少,而且随着数据量的不断增大以及用户标准的不断提高,传统的推荐方法存在指标低、运算效率不高等问题,因此改善推荐算法,提升算法指标和运行效率具有非常重要的意义。


技术实现要素:

3.本发明提供一种网络电子书内容推荐系统,为实现上述目的,本发明采用以下技术方案:一种电子书内容推荐系统,包括:日志解析模块、文本表示模型构建模块、数据预处理模块、所述近似筛选模块、评分预测模块和结果输出模块。
4.日志解析模块:用户行为数据来自用户每次访问电子书网站时发出的请求日志,每一条请求日志表明用户的每次点击操作,日志内容主要记录了访问用户的ip地址、发出请求的时间,请求的url地址,原地址,用户所用的设备信息等。而url地址中包含了访问链接、用户id、书本id、模块访问入口、具体章节等信息。日志处理模块采用正则表达式匹配的方式,从每条日志记录中提取出用户id、书本id、模块访问入口、访问的章节以及时间信息,其中模块访问入口是指用户在网站发出请求时所在的模块,由此得到记录【用户id,书本id,模块访问入口,访问的章节,访问时间】。该模块采集用户的搜索行为和点击行为,以获取用户兴趣偏好特征并储存;
5.文本表示模型构建模块:将电子书简介、正文等非结构化数据转化为可计算的文本表示模型,首先采用分词工具将电子书文本进行分词,同时过滤掉内容相关性差的词语,得到每本电子书对应的关键词集合。再使用lda算法进行训练,将电子书用主题分布来进行描述,并将结果存于文件中,作为近似筛选模块的输入。
6.数据预处理模块:主要包含数据过滤单元、数据合并单元、评分计算单元以及特征
扩充单元,数据过滤单元根据模块访问入口信息对日志处理模块得到的记录进行过滤,只保留用户阅读电子书的日志,去除掉用户访问首页、访问广告、下载app等请求。数据合并单元分为两个部分,第一个是以【用户-书本】为key对过滤后的记录进行合并,得到一个用户对一本电子书的最大阅读章节数;第二个合并是指依据书本id将用户行为记录和电子书书本信息中的类别信息进行融合,得到向量(用户id,书本id,类别id);评分计算部分根据用户行为计算出用户对电子书的评分,再和上述向量进行合并得到(用户id,书本id,类别id,评分,)作为近似筛选模块的输入。特征扩充单元得到的电子书主题分布向量上扩充电子书热度特征。特征扩充单元采用的中文分词工具——ansj,同时通过网络资源等途径丰富停用词库,初步过滤掉无用的词语,输出去掉停用词之后的文本词汇。进一步的,由于后续文本表示模型构建单元所需要的时间与词语数量呈正相关关系,因此需要把与电子书主题相关性不大的部分去掉。过滤单元的过滤操作主要分为三个部分,前两个部分是发生在分词之前。首先是对章节数进行过滤,绝大部分网络电子书的章节数都非常多,所以不可能对整本书进行处理,一般情况下,电子书作者通过前几个章节来塑造电子书的世界观,因此每篇电子书只需要取一部分章节来代表整体即可;第二部分是将文本中的对话进行过滤,因为在电子书正文中的对话基本都是口语化表述且一般不包含关键信息,而且占比比较大,因此采用正则的方式将所有对话都过滤掉;第三部分是词性过滤,有一些词性是没有特别含义的,例如人名、动词、介词等,因此需要根据词性进行过滤。该模块用于分析用户兴趣偏好特征,将观测的用户信息提取特征向量,获取用户属性特征并对用户属性特征进行预处理,生成用户属性特征;
7.所述近似筛选模块用于得到每本电子书相似度较高的邻居集合。基于内容推荐存在的一个问题是无法保证推荐物品的质量相关性,因为算法本身只考虑内容上的相关性,因此本文在电子书主题分布向量的基础上,加入了每本电子书的热度,即这本书被阅读次数并进行归一化,这样在用余弦相似度进行计算时会提升邻居中热度相似的电子书排行。在加入电子书热度之后,利用lsh算法计算电子书之间的相似度,由此得到每本电子书相似度较高的邻居集合。
8.评分预测模块依据用户的历史评分信息和电子书的相似邻居集合计算出用户对未看过电子书的预测评分,根据评分大小生成推荐候选集,将不同算法的候选集进行有机混合得到混合推荐候选集,最后过滤掉候选集中用户历史阅读过的电子书并依据前端展示数量选取前topn个作为每个用户的个性化推荐列表。
9.结果输出模块将电子书的相似邻居集合以及每个用户的个性化推荐列表以文件的形式保存到hdfs上,作为系统的输出结果。
附图说明
10.图1为本发明的一种具体实施例结构示意图。
11.图2为本发明的一种具体实施例lda算法构建文章流程图。
具体实施方式
12.下面结合具体实施例对本发明的技术方案做进一步解释说明。本发明提供一种网络电子书内容推荐系统,为实现上述目的,本发明采用以下技术方案:一种电子书内容推荐
系统,包括:日志解析模块、文本表示模型构建模块、数据预处理模块、所述近似筛选模块、评分预测模块和结果输出模块。
13.日志解析模块:用户行为数据来自用户每次访问电子书网站时发出的请求日志,每一条请求日志表明用户的每次点击操作,日志内容主要记录了访问用户的ip地址、发出请求的时间,请求的url地址,原地址,用户所用的设备信息等。而url地址中包含了访问链接、用户id、书本id、模块访问入口、具体章节等信息。日志处理模块采用正则表达式匹配的方式,从每条日志记录中提取出用户id、书本id、模块访问入口、访问的章节以及时间信息,其中模块访问入口是指用户在网站发出请求时所在的模块,由此得到记录【用户id,书本id,模块访问入口,访问的章节,访问时间】。该模块采集用户的搜索行为和点击行为,以获取用户兴趣偏好特征并储存;
14.文本表示模型构建模块:将电子书简介、正文等非结构化数据转化为可计算的文本表示模型,首先采用分词工具将电子书文本进行分词,同时过滤掉内容相关性差的词语,得到每本电子书对应的关键词集合。再使用lda算法进行训练,将电子书用主题分布来进行描述,并将结果存于文件中,作为近似筛选模块的输入。lda算法是一种能够考虑语义的文本表示模型,lda算法能够挖掘出文本的潜在语义,通过把词语转换为主题的方式,将文本用主题信息来进行表示,以此从字面比较上升到内在抽象比较,从而避免了因不同表述带来的词语匹配不相等问题。一篇文档是由多个主题组成,而每个主题是描述某个方面的词语集合。lda算法通过概率模型来生成一篇文章,设电子书i的主题分布为θi,主题k的词分布为zk,而θ和z是由狄利克雷分布得到的,对应的超参数为α和β,则电子书的生成过程如图2所示。
15.具体流程如下:
16.1.依据狄利克雷分布得到θ,并从中选出一个主题分布作为θi;
17.2.设电子书i一共包含n个位置(每个位置放一个词),每个位置放置的词语都是通过步骤3和4得到的,不断循环直到所有位置都有对应的词语,则电子书生成完毕;
18.3.从主题分布θi中选择一个主题,作为当前位置词语的主题k。
19.4.从主题k的词分布为zk中选择一个词语并放置在当前位置。
20.上述步骤用如下公式表述:p(w|d)=p(w|z)*p(z|d),主题分布θ和词分布z是两个需要推导的参数,基本思路是先人为设定两个超参数α和β的取值,从而得到初始的θ和z,继而按照上述步骤进行迭代,每次迭代都会更新θ和z,在经过n次迭代之后更新幅度会收敛到一个比较小的范围,此时的θ和z为算法输出。
21.数据预处理模块:主要包含数据过滤单元、数据合并单元、评分计算单元以及特征扩充单元,数据过滤单元根据模块访问入口信息对日志处理模块得到的记录进行过滤,只保留用户阅读电子书的日志,去除掉用户访问首页、访问广告、下载app等请求。数据合并单元分为两个部分,第一个是以【用户-书本】为key对过滤后的记录进行合并,得到一个用户对一本电子书的最大阅读章节数;第二个合并是指依据书本id将用户行为记录和电子书书本信息中的类别信息进行融合,得到向量(用户id,书本id,类别id);评分计算部分根据用户行为计算出用户对电子书的评分,再和上述向量进行合并得到(用户id,书本id,类别id,评分,)作为近似筛选模块的输入。特征扩充单元得到的电子书主题分布向量上扩充电子书热度特征。特征扩充单元采用的中文分词工具——ansj,同时通过网络资源等途径丰富停
用词库,初步过滤掉无用的词语,输出去掉停用词之后的文本词汇。进一步的,由于后续文本表示模型构建单元所需要的时间与词语数量呈正相关关系,因此需要把与电子书主题相关性不大的部分去掉。过滤单元的过滤操作主要分为三个部分,前两个部分是发生在分词之前。首先是对章节数进行过滤,绝大部分网络电子书的章节数都非常多,所以不可能对整本书进行处理,一般情况下,电子书作者通过前几个章节来塑造电子书的世界观,因此每篇电子书只需要取一部分章节来代表整体即可;第二部分是将文本中的对话进行过滤,因为在电子书正文中的对话基本都是口语化表述且一般不包含关键信息,而且占比比较大,因此采用正则的方式将所有对话都过滤掉;第三部分是词性过滤,有一些词性是没有特别含义的,例如人名、动词、介词等,因此需要根据词性进行过滤。该模块用于分析用户兴趣偏好特征,将观测的用户信息提取特征向量,获取用户属性特征并对用户属性特征进行预处理,生成用户属性特征;
22.所述近似筛选模块用于得到每本电子书相似度较高的邻居集合。基于内容推荐存在的一个问题是无法保证推荐物品的质量相关性,因为算法本身只考虑内容上的相关性,因此本文在电子书主题分布向量的基础上,加入了每本电子书的热度,即这本书被阅读次数并进行归一化,这样在用余弦相似度进行计算时会提升邻居中热度相似的电子书排行。在加入电子书热度之后,利用lsh算法计算电子书之间的相似度,由此得到每本电子书相似度较高的邻居集合。
23.评分预测模块依据用户的历史评分信息和电子书的相似邻居集合计算出用户对未看过电子书的预测评分,根据评分大小生成推荐候选集,将不同算法的候选集进行有机混合得到混合推荐候选集,最后过滤掉候选集中用户历史阅读过的电子书并依据前端展示数量选取前topn个作为每个用户的个性化推荐列表。
24.结果输出模块将电子书的相似邻居集合以及每个用户的个性化推荐列表以文件的形式保存到hdfs上,作为系统的输出结果。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1