select feature_extractor('text', 'ADB For PG is very good!');
【三步在阿里云上搭建一套个性化推荐系统?专家带你】假设新闻如下图所示,通过以下两个步骤将新闻信息存入新闻表news表中 。
文章插图
(1)提取新闻关键词 。由于分析型数据库PostgreSQL版暂时不支持关键词提取函数,您可以调用jieba结巴中文NLP系统)中的关键词抽取函数(
jieba.analyse.extract_tags(title + content, 3))提取关键词 。
(2)执行INSERT将新闻信息(包含关键词和新闻特征向量)存入新闻表news表中 。
insert into news(news_id, create_time, title, content,keywords, click_times,two_hour_click_times) values(1, now(),'韩国军方:朝鲜在平安北道一带向东发射不明飞行物','据韩国联合参谋本部消息,当地时间今天下午16时30分左右,朝鲜在其平安北道一带向东发射不明飞行物 。', '韩国 朝鲜 不明飞行物', 123, 3);
2.提取用户特征向量(1)提取用户浏览关键词 。根据用户的新闻浏览日志,我们很容易得到用户的浏览关键词 。例如,执行以下SELECT得到用户 person_id为9527的浏览关键词 。select keywordsfrom Person p, Browses_History bh, News n where p.person_id = bh.person_id and bh.news_id = n.news_id and p.person_id = 9527;
(2)将用户浏览关键词转换为用户特征向量 。将用户浏览关键词全部提取出来之后,就可以得到用户总的浏览关键词。例如,用户person_id为9527浏览了关键词为“NBA 体育”、“总决赛”、“热火”、“火箭”的新闻 。然后通过文本转换为向量函数,将用户person_id为9527浏览的关键词转换成向量 。select feature_extractor('text', 'NBA 体育 总决赛 热火 火箭'));
3.根据用户特征向量获取新闻推荐结果通过用户特征向量,到新闻表news中查询相关的新闻信息 。例如,执行以下SELECT将返回和用户相关的前500条新闻,同时系统也会过滤掉用户已经阅读过的文章 。获取新闻推荐结果之后,应用就可以将用户感兴趣的新闻推荐给用户了 。select news_id, title, content, (extract(epoch from (now()-create_time)) * w1 + click_times/extract(epoch from (now()-create_time)) * w2 + two_hour_click_times/extract(epoch from (now()-create_time)) * w3 + ann_distance * w4) as rank_scorefrom (select *, l2_distance(news_vector, feature_extractor('textf', 'NBA 体育 总决赛 热火 火箭')) as ann_distance from news order by ann_distance desc limit 500) S order by rank_score desc;
参数说明:• ann_distance:用户与新闻的相关度 。
• create_time:新闻的创建时间 。
• click_times/(now()-create_time):新闻热度点击率 。
• two_hour_click_times/(now()-create_time):新闻近期热度点击率 。
• w1、w2、w3、w4:逻辑回归模型学习中各个属性的权重 。
推荐阅读
- 面试被问了几百遍的 IoC 和 AOP,还在傻傻搞不清楚?
- 开淘宝店步骤 淘宝开店怎么开店
- 淘宝店铺托管靠谱吗 淘宝整店托管效果如何
- PHP这门编程语言在各大网站使用情况怎么样?
- 道不尽的茶事美在生活,杯水里的关怀
- 在 JavaScript 中替换所有指定字符 3 种方法
- 达摩盘人群圈选思路 达摩盘人群组合技巧
- 怎么开淘宝店及货源 怎么选择网店货源
- 阿里数据库开发规范解释:关联查询,为什么要建议小表驱动大表?
- 超级店长怎么用 超级店长需要付费吗