技术文章:TUJC的博客
优采云 发布时间: 2022-11-12 22:21技术文章:TUJC的博客
一、项目要求 1、背景要求
用户文章上传的行业解决方案推荐,类似于百度文库,有一定的免费和付费的文章。
2.数据说明
该产品已经运行了一年多,现在有必要阅读它来改进它并加入推荐系统。
业务同事直接将mysql业务库中的文章表、评价表、文章标签维度表导出到本地,形成articles.csv、ratings.csv、tags.csv文件,
我们将读取数据并加载到 mongodb 和 elasticsearch。
三、项目框架
mongodb-linux-x86_64-rhel62-3.4.3
redis-4.0.2
2.1.1
0.10.2.1
2.9.0
2.0.0
6.4.3
6.4.3
2.相关代码 1.将本地文件写入Mongo和ES 1)加载对应路径中的数据得到RDD
2) 转换 RDD --> DataFrame
反射机制,定义一个示例类,后面直接映射到DataFrame的schema信息;
3) 将 DataFrame 保存到 Mongo
4)将DataFrame保存到ES
Scheme数据集,保存到ES方便查找
2.推荐0)数据源使用基于统计的评分数据
1) 历史流行统计
读取评分数据集,统计所有评分中评分最高的文章,从大到小排序,将结果写入MongoDB对应的数据集。
2) 最近流行的文章:
读取评分数据集,通过UDF函数将评分数据时间修改为月,然后统计每个月的评分文章个数。结果将写入 MongoDB 中的相应数据集。
3) 平均分统计:
读取打分数据集,通过执行SQL语句实现文章的平均分统计
4)每个类别的高质量文章统计:
只计算整个文章的平均分后,对文章集合与文章类型做笛卡尔积,然后过滤掉与文章不匹配的条目> 类型,
加入,添加一列“意思。
fillter:判断当前文章是否收录这个类型,如果没有,过滤。
第一个map:将数据转换成,key为文章的类型,value为文章当前类型下的文章列表(文章ID , 文章平均分钟)
第二张map:groupbykey后,将数据转换为存储格式,key为文章类型,value为文章当前类型下文章的列表(文章ID,文章平均分),根据榜单特点,倒序排列,取前10名。
3. 基于内容推荐的内容推荐概述
Content-based Recommendations (CB):计算物品之间的相似度,根据物品的内在特征推荐相似的物品。
项目内在特征提取方法;
相似度计算方法:欧式距离、余弦相似度
本项目使用:
文本特征提取主要是:count,tfidf(词频,一个词在一个文本中出现很多,而在其他文本中很少出现,说明它有很好的分类能力,比如每一个文章都会出现label”行业”,这个标签特征的分类能力不强,但是如果一个标签是“中继”,这个标签在其他文章中出现的频率很低,所以它是一个很好的标签。
tfidf,越常见,值越小
实施过程:
TF-IDF:提取 文章 的特征
余弦相似度,计算文章的相似度,
3)计算余弦相似度得到推荐列表
0) 数据源是一个 文章 数据集
1)TF-IDF特征计算
内容特征:文章类型,一个文章genres列收录多种类型,以空格分隔,
需要对文章的不同类别进行特征提取,转换成特征向量,然后计算每对特征向量的相似度值(余弦角),降序排序,选出最靠前的10 作为候选名单。
(1) 分词:
(2)获取TF词频(Term Frequency)
(50,[11,13,19,43,49],[1.0,1.0,1.0,1.0,1.0])
50:要设置的特征数量
11:冒险标签的索引号,
1:表示对应索引位置的词频为1
是一个稀疏矩阵
(3)得到的IDF为逆文档频率(Inverse Document Frequency)。
2)余弦相似度计算
(1) 特征值稀疏矩阵,转换为数组,Double类型
(2) Pairwise 文章 特征值相似度计算,笛卡尔积,
4. 基于协同过滤的推荐
目前推荐系统主要分为三类:
(1)内容推荐CB,主要是根据物品本身的内容特征,寻找物品或内容的相关性,通过物品的相似度进行推荐。如果你喜欢*敏*感*词*,我推荐*敏*感*词*相关的书籍。
(2)协同过滤推荐CF,既考虑物品相似度,也考虑用户相似度,计算用户相似度;根据用户对物品或信息的偏好,查找物品或内容本身的相关性,或查找用户相关性;喜欢*敏*感*词*的人也喜欢冒险书,所以可以把冒险书推荐给喜欢*敏*感*词*的人。
(3) 混合推荐:该技术采用一些策略(如加权、切换、特征放大等)来整合多种推荐技术,如基于内容的推荐系统、基于人口统计的推荐系统、基于效用的推荐系统,以及基于知识的推荐系统)。推荐系统。
协同推荐概述:
1)基于用户的协同过滤:根据所有用户对物品或信息的偏好,寻找与当前用户有相似品味和偏好的“邻居”用户群。在一般应用中,使用计算“K-nei*敏*感*词*ors”的算法。然后,根据K个邻居的历史偏好信息,对当前用户进行推荐。
假设用户1喜欢物品A和C,用户2喜欢物品B,用户3喜欢物品A、C和D;
可以发现用户1和用户3的口味和喜好比较相似,
推荐文章:网站日志是什么?查看网站日志有什么作用?
1.什么是网站日志
网站日志也叫服务器日志,用于记录WEB服务器的操作信息和访问请求的记录,包括客户端IP地址、请求日期/时间、请求的网页、HTTP 代码和提供的字节数。、用户代理、参考地址等原创信息都是以.log为后缀的日志文件。
2.网站日志有什么用
1. 网站日志和网站分析具有共同的价值和意义。通过分析网站日志,我们可以知道网站访问者来自哪里?网站访客在寻找什么?哪个页面最受欢迎?网站访客离开哪里?网站管理员、运营商、推广者可以根据这些数据信息实时掌握网站交通信息,了解用户的具体行为,分析用户的目的。为了优化网站,提升网站用户体验,增加网站流量,让更多的访客落户成为会员或客户,以更少的投入获得最大的收益。
2、网站日志详细记录了网站的操作信息,所以如果网站有轻微异常,可以通过网站分析网站的操作过程log 发生的错误详情,如错误页面、错误代码等,可用于检查不足,弥补操作中遇到的网站错误,排除和解决操作中遇到的其他问题. 例如:找到404页面,尝试恢复对网站的访问;查找其他有问题的页面,包括死链接,返回码异常,需要处理才能恢复页面的正常访问,但是无法恢复正常访问死链接,创建txt文档,并提交至百度站长平台。
3、网站日志还记录了搜索引擎蜘蛛网站的爬取细节,并以此分析搜索引擎蜘蛛的意图,从而使网站的优化工作更多直观且有迹可循,做出有利于搜索引擎优化的调整。例如,如果发现百度蜘蛛每天在固定的时间访问网站,那么可以选择在这个固定的时间内更新网站的内容。
3.网站日志的分析工具
这里有一个非常好用的网站日志分析工具,就是Maple SEO Network的网站日志在线分析工具/journal。您可以选择导入日志进行分析。具体操作步骤如下:
①打开枫叶官网
②点击域名导航栏下的网站日志分析工具
③上传从服务器下载的网站日志
④点击执行分析
⑤ 查看日志分析结果
要想做好网站的优化,需要多分析网站的情况。如果能分析3-5遍,基本就有判断力了,可以更好的知道网站>有哪些方面需要调整,比如robots文件的制作,404页面的导出处理,死链接的导出处理等