Author: admin

如何为技术博客设计一个推荐系统(中):基于 Google 搜索的半自动推荐

与统计学相比,基于内容来向用户推荐相似的内容,往往更容易获得。对于推荐来说,则有两种方式:

  • 手动推荐
  • 自动推荐

手动推荐。在技术领域,作者通常比大多数读者更专业,他们往往知道什么是读者需要的。如,你看了一个 React 相关的文章,你可能会需要 Redux 相关的内容。

自动推荐。需要一些前提条件:融合现有系统的数据信息,获取一些用户的信息。随后,再计算出相关的内容,最后返回给读者。

而在这篇文章里,我们将介绍 :

  1. 标签生成的方式
  2. 基于手动标签推荐
  3. 半自动的标签推荐
  4. 全自动的基于内容推荐

标签生成

文章与我们平时使用的物品,有很大的不同之处。如手机,拥有固定的规格参数,价格、屏幕尺寸、运行内存(RAM)、机身内存、CPU、后置摄像头像素、前置摄像头像素等等,我们可以轻易地通过这些特征,了解用户大概需要什么东西。如果用户浏览的是 2880 的 某 pro 7 手机,那么某米 6 的手机可能更适合该用户。

而文章是一种非结构化的数据,除了作者、写作日期这一类的信息,我们很难直接描述其特性,也就难以判定文章之间是否是相似的。因此,我们就需要从文章中抽取出关键词,或称为标签,从而判断出用户喜欢的是某一种类别。

对于使用标签来向用户推荐产品的应用来说,标签生成方式有四种方式:

  • 手动标签
  • 机器生成推荐
  • 用户手动标记(UGC)
  • 混合学习式

手动标签

即,用作者、发布者手动添加相关标签,这种方式往往是最靠谱的。毕竟作者会比较专业,如文章《

如何打造一个破千 Star 的开源项目

这其实是之前在北京 Laravel Meetup 的一次分享内容,不过考虑到有很多人在公众号想听听关于我是如何做开源这个话题,所以就再次拿它讲一个文字版。

关于我,这个就没啥可讲的了,EasyWeChat 作者、Laravel China 创始人之一。

要想做好开源,这 8 个步骤缺一不可,当然这个过程周期是持续的,你会在不断开源过程中提升自己,学到新的东西。

第一件头疼的事情当然是 “做什么?”,不过根据我的个人经验来看,找一个开源项目 idea 并没有想象的那么难,一般有以下三个渠道:

第一个渠道是项目,因为大部分都是来自工作生活中,所以上图我把“项目”排到第一位。很多时候在我们的开发工作中,会经常遇到重复性的工作,比如你每启动一个项目都要搞一遍短信的发送,又得去找一遍用哪家的服务,还得折腾一遍权限系统,其实这些都是激发你创意的好时机。你会发现不是你一个人在重复,而是大家都在这样不停的重复做很多原本不需要重复做的事情。所以这时候就是你造轮子的好时机。

第二个创意来源就是交流群,我相信大部分同学的 QQ 都有不少技术交流群吧,你会发现很多人在群里会提重复的问题,或者一些伸手党会经常来问一些“有没有基于xxx的项目啊”、“有没有人会xxx” 诸如此类的问题。如果你发现这个需求确实挺多的,并且也没有一个好用的轮子,你就动手吧!

第三就是社区,一些论坛或者博客,也是发现需求的地方,基本都是从别人的讨论中发现创意,这些用户就是你的项目最直接用户。

做开源项目其实是一件比较费时费心的工作,它的最大难点并不在于代码,而是后期的维护持续的跟进。但是要想制作出一个受欢迎的开源项目,写好代码永远是关键的点,试想一下,一个人从你各种吹 B 的链接点到 GitHub,看到源码乱七八糟,格式不统一,驼峰+下划线各种混写,对齐也是 tab + space,注释基本为 0 的时候那个场景,是很吓人的,所以不管你的抽象能力怎么样,也不管你这个模块写得是否是那么的科学,请做好第一步:写好代码。

上图我列举了一些名词,难免有同学不认识,我这里大概介绍一下:

PSR 是国际框架组织 PHP-FIG(PHP Framework Interop Group) 制定的一系列规范,包括不限于自动加载,编码规范、缓存以及其它一系列接口规范。它虽然不是 PHP

深度学习和神经网络简介

有一次,我和Vito(我的合伙人)聊起了当下热门的几种技术趋势。当谈及它们在未来可能的发展前景的时候,Vito说了下面的一段话:

人工智能是个信息革命到蒸汽机规模之间的机会,相比之下虚拟现实应该是移动互联网级别的,而用户个性化服务应该是伴生规模的。

如果人工智能技术带来的变革确实能够比拟工业革命的话,那么它势必会成就一代人,同时也淘汰掉一代人。而且,仔细想想,其实人工智能离我们并不遥远,甚至可以说已经开始深入到我们的日常生活中了。从iPhone里的Siri,到各大网站的内容推荐系统,再到图像识别和人脸识别技术的广泛应用,这些场景的背后都有这项技术在发挥作用。…

微信开发上传图文消息内的图片(只返回图片URL),报错41005 缺少多媒体文件数据?(已解决)

表示之前遇到过同样的情况,但是没有做记录,坏习惯坏习惯。
首先,可以先尝试使用微信的测试工具试一下。虽然接口是有改过的,接口要求也不太一样,例如图片大小,但是可以排除某些其他因素,如图片是否已损坏之类的。我用本机的一张png图片在测试工具测试了一下,提示文件格式有问题,所以我换了一张jpg格式。测试结果通过。
在保证了图片一定可以上传的前提之后。再开始码php。
我用你的代码测了一下,结果是跟你一样。我本机装了PHP5.5.6版本和7.0.9版本,两个版本都是不行的(windows下,linux没有测过)。然后就是各种更改数据,切换版本。…

微信网页授权,错误40163,ios正确,安卓错误?

点击一个公众号菜单,跳转到【微信网页授权】,ios平台没问题,安卓平台始终是错误40163,官方的说法是code被重复使用了,从index.php里获取了马上就跳转到oauth.php里去换取access_token,中间没有任何使用过!看到网上一条线索,用苹果手机没任何问题,安卓一直是错误40163,换了两台安卓设备,微信都更新到了最新版本,错误一直在~

代码如下:

index.php

<?php
header('location:https://open.weixin.qq.com/connect/oauth2/authorize?appid='.$appid.'&redirect_uri='.$myappurl.'oauth.php&response_type=code&scope=snsapi_userinfo&state=1&connect_redirect=1#wechat_redirect');

oauth.php

<?php
    $code = $_GET['code'];
    $state = $_GET['state'];

    
    if (empty($code)) $this->error('授权失败');

    //获取oauth_token
    $token_url = 'https://api.weixin.qq.com/sns/oauth2/access_token?appid='.$appid.'&secret='.$appsecret.'&code='.$code.

关于微信网页授权获取用户基本信息的切入问题

微信网页授权获取用户基本信息
这个功能一直有一个疑问,没有想到很好的处理方式!
用户在如何跳转到网页授权这里的?这个要如何设置呢?
请大师指点!
我想了很多方式:
1、用户打开一个静态页面,使用window.locathion来跳转到微信授权的页面;
2、在菜单或者发送给用户的链接中,直接使用微信授权链接,在用户授权后,跳转到目标页面;
但是这两种方法有一定的弊端:使用snsapi_userinfo时,用户可能每次打开,都要授权,实际上,用户可能已经授权过了,于是想到了第三种方法:
3、用户打开目标页面,目标页面发送ajax请求到服务器,在服务器查询当前用户是否已经有过授权记录,如果有直接去获取用户基本信息,返回到页面;如果没有授权记录,则返回未授权信息给页面,页面再执行跳转请求微信授权。但是这样做,依然有一个点无法跨越,那就是在向服务器查询是否有授权记录时,需要的OpenID该从何而来?
求指点!谢谢!