[yyimage 加载gif]50 有张gif 是一个少女在晚上玩手机被猫骗进垃圾桶被几个怪物仑的,谁有

挖掘知乎里有趣的东西挖掘知乎里有趣的东西受“看知乎”启发而创建的一个用简单的统计和机器学…关注专栏更多最新文章{&debug&:false,&apiRoot&:&&,&paySDK&:&https:\u002F\u002Fpay.zhihu.com\u002Fapi\u002Fjs&,&wechatConfigAPI&:&\u002Fapi\u002Fwechat\u002Fjssdkconfig&,&name&:&production&,&instance&:&column&,&tokens&:{&X-XSRF-TOKEN&:null,&X-UDID&:null,&Authorization&:&oauth c3cef7c66aa9e6a1e3160e20&}}{&database&:{&Post&:{&&:{&title&:&你可能感兴趣的“暗知乎”(二)&,&author&:&grapeot&,&content&:&\u003Cp\u003E一年以前,我们做过一些基于标签的\u003Ca href=\&http:\u002F\u002Fzhuanlan.zhihu.com\u002Fp\u002F?refer=grapeot\& data-editable=\&true\& data-title=\&知乎内容推荐\& class=\&\&\u003E知乎内容推荐\u003C\u002Fa\u003E,根据反馈效果不是很好。最近基于最新的一些技术积累,我们建立了一个个性化的\u003Ca href=\&http:\u002F\u002Fzhuanlan.zhihu.com\u002Fp\u002F?refer=grapeot\& data-editable=\&true\& data-title=\&知乎内容搜索引擎\& class=\&\&\u003E知乎内容搜索引擎\u003C\u002Fa\u003E,有了一些文本索引\u002F理解的能力。用这些技术,对一部分测试用户推出了新版的内容推荐系统。小规模试用之后感觉不错。比如它能看出来我喜欢航空和机器学习,不关注评价电影和情感咨询。而轮子哥喜欢C++,微软和美腿(竟然不是大胸),而不关注伞形信托,男篮和八阿哥。现在把这个系统开放给大家,这样就都可以看到一些平时可能忽略过去但是感兴趣的问题啦。\u003C\u002Fp\u003E\u003Cp\u003E在试用之前你需要先弄清楚自己的知乎id是什么。在知乎里点页面右上角的图标进入你的个人主页,然后看一下浏览器的地址栏。比如我的个人主页的地址是\u003Ca href=\&http:\u002F\u002Fzhihu.com\u002Fpeople\u002Fgrapeot\u002F\& class=\&\& data-editable=\&true\& data-title=\&zhihu.com\u002Fpeople\u002Fgrapeot\u002F\&\u003Ezhihu.com\u002Fpeople\u002Fgrapeot\u002F\u003C\u002Fa\u003E。那么我的知乎id就是grapeot。注意!知乎id不会是中文,也不会含有空格,所以如果你原来打算输入中文的话,肯定是id找错了~\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp\u003E网址是\u003Ca href=\&https:\u002F\u002Flink.zhihu.com\u002F?target=http%3A\u002F\u002Fzhihu.grapeot.me\u002F\& class=\&\& data-editable=\&true\& data-title=\&http:\u002F\u002Fzhihu.grapeot.me\u002F\&\u003Ehttp:\u002F\u002Fzhihu.grapeot.me\u002F\u003C\u002Fa\u003E,输入你的用户名进行测试。如果你之前参加过个性化搜索引擎的测试的话,应该已经有结果了。如果网站提示还没有收入索引的话,不用担心,系统已经在后台自动记录下你的知乎id。过几天来看应该就有结果了~\u003C\u002Fp\u003E\u003Cp\u003EP.S. 感谢\u003Ca href=\&https:\u002F\u002Fwww.zhihu.com\u002Fpeople\u002Fc8ca69c2b68c35ca72a602d9\& data-hash=\&c8ca69c2b68c35ca72a602d9\& class=\&member_mention\& data-tip=\&p$b$c8ca69c2b68c35ca72a602d9\&\u003E@徐旻威\u003C\u002Fa\u003E 对前端界面的贡献!\u003C\u002Fp\u003E\u003Cimg src=\&a0be100b6b23d152abe8.png\& data-rawwidth=\&1091\& data-rawheight=\&673\&\u003E&,&updated&:new Date(&T05:14:47.000Z&),&canComment&:false,&commentPermission&:&anyone&,&commentCount&:87,&likeCount&:1017,&state&:&published&,&isLiked&:false,&slug&:&&,&isTitleImageFullScreen&:false,&rating&:&none&,&sourceUrl&:&&,&publishedTime&:&T13:14:47+08:00&,&links&:{&comments&:&\u002Fapi\u002Fposts\u002F2Fcomments&},&url&:&\u002Fp\u002F&,&titleImage&:&https:\u002F\u002Fpic4.zhimg.com\u002Fa0be100b6b23d152abe8_r.jpg&,&summary&:&&,&href&:&\u002Fapi\u002Fposts\u002F&,&meta&:{&previous&:null,&next&:null},&snapshotUrl&:&&,&commentsCount&:87,&likesCount&:1017},&&:{&title&:&自己动手改造智能家居生活&,&author&:&grapeot&,&content&:&\u003Cp\u003E花了两个月的时间,断断续续做了一些智能\u002F自动家居的改造。感觉自动家居果然是要成体系才会比较有意思——现在的生活已经有点科幻了。\u003C\u002Fp\u003E\u003Cp\u003E晚上入睡一小时前,iphone提早把抽湿机打开,让住一楼的穷逼床单能干爽一点。到了入睡的时间,iphone把卧室灯光调暗,色温调低,连上蓝牙音箱播放海浪等声音催眠,慢慢调暗亮度最终关灯。\u003C\u002Fp\u003E\u003Cimg src=\&b6ae693b5cba0ac4fd633b3b1984b9da.png\& data-rawwidth=\&2484\& data-rawheight=\&2208\&\u003E\u003Cp\u003E到了早上,手机会根据麦克风的声音判断是不是适合唤醒的浅层睡眠,在适当的时机闹铃,同时慢慢调亮灯光,把窗帘从上往下打开,这样又不会被路人看到羞羞的东西又能被慢慢唤醒。随后会用摄像头和闪光灯测一个心率。\u003C\u002Fp\u003E\u003Cimg src=\&eb3a450ee9abb.png\& data-rawwidth=\&1680\& data-rawheight=\&1280\&\u003E\u003Cp\u003E洗漱完毕后,siri会问你今天多重(因为穷逼买不起无线体重秤),然后放到apple health中去。\u003C\u002Fp\u003E\u003Cimg src=\&fde2ab5e8c.png\& data-rawwidth=\&2484\& data-rawheight=\&2208\&\u003E\u003Cp\u003E吃完早饭,骑车上班,gps定位显示我离开了家,把家里的动作传感器和门窗动作传感器arm上,如果检测到异常会响起警号并且打我电话。而所有数据,比如睡眠质量,心率,体重,骑车的轨迹和速度等等,会被手机记录下来,一方面app自己可以分析(比如天气和睡眠质量的相关性),一方面也被加密起来和医生共享。到了公司以后,ifttt自动记录我到公司的时间,结合trello的时间管理插件在周末自动生成时间利用简报。\u003C\u002Fp\u003E\u003Cimg src=\&29dcde8ab62f434b551c07.png\& data-rawwidth=\&2484\& data-rawheight=\&2208\&\u003E\u003Cp\u003E港真,五年前完全想不到现在生活是这样信息化,自动化的。但要真问有什么用,我也不知道。。可能就是有了更多的数据,对自己的生活习惯有了更多的了解,从而可以有针对性的优化。同时因为电脑帮你做了很多死的工作,比如每天9点自动开抽湿机,每隔两天扫地机器人自动吸尘,所以脑子更轻松了,也更有了生活质量上的保障。不过对我们不折腾会死星人来说,可能“酷”一个字就够了吧。(笑\u003C\u002Fp\u003E\u003Cp\u003E如果你们有兴趣自己装一个这样的环境的话,中间涉及的app有:\u003C\u002Fp\u003E\u003Cul\u003E\u003Cli\u003Esleep cycle:检测睡眠质量,智能闹铃,测心率\u003C\u002Fli\u003E\u003Cli\u003Eiconnecthue:飞利浦Hue灯泡客户端,带定时功能,需要灯泡配合\u003C\u002Fli\u003E\u003Cli\u003Ewemo:能用手机遥控的智能开关,需要贝尔金的wemo开关配合\u003Cbr\u003E\u003C\u002Fli\u003E\u003Cli\u003Epowerview:亨特道格拉斯百叶窗的app,可以通过无线网控制百叶窗的开合,需要安装亨特道格拉斯的百叶窗\u003C\u002Fli\u003E\u003Cli\u003Eismartalarm:ismartalarm DIY安防系统的app,可以通过无线网激活或禁用安防系统,需要安装ismartalarm的硬件设备和传感器\u003C\u002Fli\u003E\u003Cli\u003Ecyclemeter:记录自行车的速度,路线等,可以存到Apple Health Kit中去\u003C\u002Fli\u003E\u003Cli\u003Eifttt:把所有东西整合到一起\u003C\u002Fli\u003E\u003Cli\u003Eworkflow:实现简单的自动化,这里用来实现一个简单的界面,让我可以在通知区域输入体重,然后后台自动存到health里去\u003C\u002Fli\u003E\u003Cli\u003Ehealth:苹果的一站式健康平台\u003Cbr\u003E\u003C\u002Fli\u003E\u003C\u002Ful\u003E\u003Cp\u003E此外还有一些DIY的东西。因为能遥控的百叶窗\u002F窗帘实在是太贵了,如果用商业的遥控窗帘(落地窗,三四米的跨度)要两三万人民币,把我卖了也买不起啊。。所以只好用了个rasperberry pi配合舵机控制板,钓鱼线,滑轮组,舵机自己撸了一个土法遥控窗帘,成本500人民币。可惜知乎传不了动图,静态图大概是这个样子的:\u003C\u002Fp\u003E\u003Cimg src=\&a1fc430185ddf4ae612e25.jpg\& data-rawwidth=\&2880\& data-rawheight=\&1280\&\u003E\u003Cp\u003E原理图是这个样子的:\u003C\u002Fp\u003E\u003Cimg src=\&00ec96c32e46fa739f81e017ea736bee.png\& data-rawwidth=\&1746\& data-rawheight=\&1002\&\u003E\u003Cp\u003E还用简单的背景减除做了个阳台的监控,来看放在外面的豆子到底是谁偷走了。。两天以后发现小偷长这样。。(后来我撒了一把芥末豌豆,整个世界安静了,她再也没来过。。\u003C\u002Fp\u003E\u003Cimg src=\&d2ec6c90b.jpg\& data-rawwidth=\&1288\& data-rawheight=\&968\&\u003E\u003Cp\u003E未来还是有很多工作的,比如因为房子太老,Nest、EcoBee等先进的温控装置装不上(需要大改电路)。还有之前自己做的行车记录仪等等,以后再介绍吧~\u003C\u002Fp\u003E&,&updated&:new Date(&T22:58:57.000Z&),&canComment&:false,&commentPermission&:&anyone&,&commentCount&:142,&likeCount&:1799,&state&:&published&,&isLiked&:false,&slug&:&&,&isTitleImageFullScreen&:true,&rating&:&none&,&sourceUrl&:&&,&publishedTime&:&T06:58:57+08:00&,&links&:{&comments&:&\u002Fapi\u002Fposts\u002F2Fcomments&},&url&:&\u002Fp\u002F&,&titleImage&:&https:\u002F\u002Fpic3.zhimg.com\u002Fc08d9c6fdab_r.jpg&,&summary&:&&,&href&:&\u002Fapi\u002Fposts\u002F&,&meta&:{&previous&:null,&next&:null},&snapshotUrl&:&&,&commentsCount&:142,&likesCount&:1799},&&:{&title&:&自己动手打造智能家居(二)&,&author&:&grapeot&,&content&:&一个月前介绍了当前的智能家居生活(\u003Ca href=\&https:\u002F\u002Fzhuanlan.zhihu.com\u002Fp\u002F\& data-editable=\&true\& data-title=\&自己动手改造智能家居生活 - grapeot的文章 - 知乎专栏\&\u003E自己动手改造智能家居生活 - grapeot的文章 - 知乎专栏\u003C\u002Fa\u003E),最近一个月又有了一些新的探索和心得。\u003Cp\u003E首先是一些新的设备加入进来了,现在能控制的东西更多了。\u003C\u002Fp\u003E\u003Cul\u003E\u003Cli\u003E温控器。因为家里的暖气比较老,是市电直接接上电暖气,不能直接用Echobee\u002FNest之类智能温控器。网上有一些自己装继电器和变压器,把强电变成弱电控制的改造方法,但问了一圈电工都不愿意接这个活,这搞得我也不敢动手了。。后来发现有一个加拿大公司做了这种强电直接控制电暖气的智能温控(\u003Ca href=\&https:\u002F\u002Fcasaconnect.com\u002Fen\u002Fcaleo\u002F\& class=\&\& data-editable=\&true\& data-title=\&Caleo | CaSA\&\u003ECaleo | CaSA\u003C\u002Fa\u003E),买来以后发现又便宜又好用。于是现在可以直接用手机\u002FIFTTT控制家里每个房间的温度了。它还有温度和湿度的传感器,还可以和除湿机加湿器配合起来用。\u003C\u002Fli\u003E\u003C\u002Ful\u003E\u003Cbr\u003E\u003Cimg src=\&v2-f107aa459d8a22e466a229b3d58e6cba.png\& data-rawwidth=\&740\& data-rawheight=\&224\&\u003E\u003Cul\u003E\u003Cli\u003E智能门锁。我用的是August。其实就是一个可以用手机遥控开关门的小东西,可以和IFTTT\u002FEcho\u002FSiri接起来。很贴心的一个功能是自动开门。当它发现你离开家200米以外又回来,并且蓝牙连上了它鉴权通过以后,它就会自动开门。实际生活中感觉这个功能很好用,尤其是推着自行车,手上拿着包裹,嘴里还叼着信的时候,不用把所有东西都放下来拿钥匙开门实在幸福感爆棚。注意有个坑是它的Android App很难连上,自动开门也不太work。iPhone就无比顺滑。Amazon上带HomeKit的版本评价比不带HomeKit的版本评价也更高。\u003C\u002Fli\u003E\u003Cli\u003EiBeacon。这个东西偏geek一点(如下图)。它本质上是个蓝牙小广播站,不停地向外广播我在这里我在这里,我的发射信号强度是这么强。所以iphone就可以知道大概离它有多远,并且可以用这个信号做一个geo-fence。我买了几个。具体的应用是到家了手机会知道,可以做一些动作,到车上了就可以做一些动作等等。目前还在探索有什么应用。网上有人做了一个精确的室内定位系统,感觉也挺有意思的。但我自己稍微试了一下,发现买的几刀的传感器距离测定实在是不准,连在哪个房间里都不太分得出来。\u003C\u002Fli\u003E\u003C\u002Ful\u003E\u003Cimg src=\&v2-b04f1f35a333252dfd8a2c1f08bbbb6a.jpg\& data-rawwidth=\&2377\& data-rawheight=\&1185\&\u003E\u003Cul\u003E\u003Cli\u003EAmazon Echo。这是个大杀器!智能家居目前还停留在遥控阶段。基本上能用手机遥控的东西就叫智能家居了。但很多时候用手机遥控(甚至Siri)都还是太慢,并不方便。但有了Echo就好像有个管家一样,只要说句话就行了。这是个质的变化。我的感受是之前一直在怀疑我搞这么多智(yao)能(kong)家居有什么卵用,买了Echo才觉得我靠还是值的。更具体的感受可以参见这个回答\u003Ca href=\&https:\u002F\u002Fwww.zhihu.com\u002Fquestion\u002F2Fanswer\u002F\& data-editable=\&true\& data-title=\&如何评价 Amazon Echo? - grapeot 的回答\& class=\&\&\u003E如何评价 Amazon Echo? - grapeot 的回答\u003C\u002Fa\u003E。现在家里设置了各种咒语,比如gou是开窗帘,li是开客厅暖气,guo是开灯,jia是锁门。等以后人类灭绝,新生代人类要是成长在这个环境里(假设Echo还能用。。),会不会进入各种咒语的高魔社会。。\u003C\u002Fli\u003E\u003C\u002Ful\u003E\u003Cp\u003E这段时间也一直在怀疑这个智能家居到底有什么卵用。经过一些探索,有了一些感想:\u003C\u002Fp\u003E\u003Cul\u003E\u003Cli\u003E从更方便到更安全。搞这个东西的初衷就是懒。躺在床上不想下床关窗帘,看完恐怖片希望起夜的时候灯能从床上打开。但最近美国有一些入室抢劫的新闻,上网搜了一下保证安全的一些要点,发现重要的一条就是让你家看起来比隔壁更难抢(23333)。比如夜里把院子里的灯打开(没人想在光亮下撬门),养狗或者装动作\u002F门窗警报系统等等。有了智能家居,现在可以很方便的把外面的灯从日落开始打开,日出关掉。警报系统在说Alexa trigger good night的时候自动开启,日出关掉。这样让家里更安全是我当时没想到的一个好处。\u003C\u002Fli\u003E\u003Cli\u003E用IFTTT集中控制。虽然市场上有很多集中控制智能家具的尝试(HomeKit,Google Home,Sumsung SmartThings),但目前兼容性最好的还是IFTTT。而且这东西一两种智能组件没啥用,你要能集中控制,把传感器和动作器串起来才能做出来有意思的东西。举个栗子,我的暖气因为是电暖气,为了最大化热效率需要有个电风扇在那吹(囧囧囧),如果不用IFTTT,我需要在手机上打开暖气app,先把暖气打开,然后打开Wemo app,把电风扇打开。弄完半分钟过去了。但如果设了一个IFTTT trigger一下做这两件事情,只要在Launch Center里面划一下手指,或者跟Alexa说一声trigger li就好了,一两秒的事情。而且还能完成一系列复杂动作,比如关灯开暖气开警报等等。\u003C\u002Fli\u003E\u003Cli\u003E从遥控到自动化。如果光是遥控,哪怕是语音控制的话,智能家居也不是太有意思。一些每天都要做的事情完全可以交给自动化的系统来做,解放自己的脑容量。比如前面说的天黑开院子里的灯,开暖气的时候自动开电风扇。而且这个自动化不用局限于家居本身。iPhone有个app叫Workflow,可以做一些有意思的自动化。我现在每次下班进入车里的时候,geo-fence会被iBeacon触发,自动运行一个workflow。它会调用苹果地图算出来回家还要多久,给老婆发短信汇报,然后打开网易云音乐开始放歌。要想加入自动开暖气等等功能也是很容易做到的。\u003C\u002Fli\u003E\u003Cli\u003E从自动化到智能化。智能化不是说有了语音识别就叫智能化了。我这里说的智能化主要是引入更复杂的逻辑控制。比如上面举的例子,如果我是早上去上班,一打开车门结果手机自动给老婆发短信0分钟后到家,岂不很傻逼。这个目前我还是手动控制,但通过改造IFTTT还是可以加入判断逻辑的,比如看GPS坐标决定要不要发短信,看气温决定要不要自动开暖气等等。目前IFTTT本身不支持任何逻辑,但它支持调用外部Web接口,以及监听web requests,可玩性就高了很多。目前我实现了一个延时接口,用来在跟Alexa道晚安之后定时15分钟自动关灯。更详细的用法可以参考这个blog:\u003Ca href=\&http:\u002F\u002Fgrapeot.me\u002Fadding-a-delay-to-ifttt-recipes.html\& data-editable=\&true\& data-title=\&Adding a Delay to IFTTT Recipes\&\u003EAdding a Delay to IFTTT Recipes\u003C\u002Fa\u003E\u003C\u002Fli\u003E\u003C\u002Ful\u003E\u003Cp\u003E总的来说,在探索智能家居的不归路上越走越远,现在家里有快20个设备连在IFTTT上,也有了几十条自动化的recipe。现在我也不知道这个东西会有什么用,但总有种感觉它会让生活变得非常不同,甚至有很多商业化的空间。Stay tuned。:)\u003C\u002Fp\u003E&,&updated&:new Date(&T17:12:53.000Z&),&canComment&:false,&commentPermission&:&anyone&,&commentCount&:37,&likeCount&:267,&state&:&published&,&isLiked&:false,&slug&:&&,&isTitleImageFullScreen&:false,&rating&:&none&,&sourceUrl&:&&,&publishedTime&:&T01:12:53+08:00&,&links&:{&comments&:&\u002Fapi\u002Fposts\u002F2Fcomments&},&url&:&\u002Fp\u002F&,&titleImage&:&https:\u002F\u002Fpic1.zhimg.com\u002Fv2-f107aa459d8a22e466a229b3d58e6cba_r.jpg&,&summary&:&&,&href&:&\u002Fapi\u002Fposts\u002F&,&meta&:{&previous&:null,&next&:null},&snapshotUrl&:&&,&commentsCount&:37,&likesCount&:267},&&:{&title&:&知乎中的近义词&,&author&:&grapeot&,&content&:&近义词,看上去一个很简单的东西,但其实它可以反应一个社区的文(黑)化(话)。比如轮子在中文维基中的近义词是车轮,但在知乎中的近义词是vczh。又比如贵知在知乎其实是知乎的意思,而在其他地方都没有这样的情况。这里面有很多有意思的东西。为了方便大家挖掘一些奇怪的近义词,我们用知乎的一些答案训练了一个机器学习模型(Word2Vec),来把意思相近的词归在一起。比如“知乎”的近义词是:\u003Cimg src=\&v2-ec3d8e46ca024b5a049719.png\& data-rawheight=\&443\& data-rawwidth=\&633\&\u003E\u003Cp\u003E咦。。好像混进去了一些奇怪的东西。。草地和石榴为什么要成为一个缩写呢,和知乎又有什么关系。。你们可以自己去试试哈,猛击此处:\u003Ca href=\&http:\u002F\u002Fzhihu.grapeot.me\u002Fword2vec.html#%E7%9F%A5%E4%B9%8E\& data-editable=\&true\& data-title=\&知乎 的知乎近义词\&\u003E知乎 的知乎近义词\u003C\u002Fa\u003E。\u003Ca class=\&member_mention\& href=\&https:\u002F\u002Fwww.zhihu.com\u002Fpeople\u002Fbae4da\& data-hash=\&bae4da\& data-hovercard=\&p$b$bae4da\&\u003E@lau phunter\u003C\u002Fa\u003E提到,另一个萌萌的近义词是 谢邀。\u003Cimg src=\&v2-f333b5bea353f37f477c21e96f6f8731.jpg\& data-rawheight=\&650\& data-rawwidth=\&858\&\u003E\u003C\u002Fp\u003E\u003Cp\u003E看上去简单的近义词分析,其实有很多可以让知乎变得更“聪明”的应用,比如:\u003C\u002Fp\u003E\u003Cul\u003E\u003Cli\u003E错别字改正。一个例子是通过“知乎”的近义词,我们可以看出“知乎”和“知呼”其实是一个意思。那么下次用户在搜索里输入“知呼”的时候,搜索引擎就可以把“知乎”也加入关键字,这可以让搜索引擎聪明很多。\u003C\u002Fli\u003E\u003Cli\u003E标签推荐。我们的近义词模型已经可以认出来希拉里和川普是一对近义词(抛开政治立场,这俩都是总统候选人)。比如我们发现一个问题的答案中反复出现了一坨类似“希拉里”,“床破”,“川普”这些意义相近的词,那就可以向公共编辑者推荐“美国大选”这个标签。或者,我们不公开地给问题加标签,而是默默地在搜索数据库里面标注“这个问题很可能和美国大选相关”,这样搜索和相关问题都会智能很多。\u003C\u002Fli\u003E\u003Cli\u003E干货鉴别和答案排序:干货型答案其实有很多共同特征,比如很多表示逻辑的连词。而这些连词在模型里都是近义词(\u003Ca href=\&http:\u002F\u002Fzhihu.grapeot.me\u002Fword2vec.html#%E6%89%80%E4%BB%A5\& data-editable=\&true\& data-title=\&所以 的知乎近义词\&\u003E所以 的知乎近义词\u003C\u002Fa\u003E)。所以基于这个模型,我们也可以做一些干货鉴别的尝试。而这对于答案排序是非常关键的。目前知乎的答案排序非常依赖用户的点击反馈,这样一些新答案即使质量很高,但因为没有赞同也很难排到前面被更多人看到。如果我们有能力鉴别出干货答案的话,也可以大幅改善知乎答案排序的这一问题。\u003C\u002Fli\u003E\u003Cli\u003E更精准的搜索,更智能的时间线。基于这样的近义词分析,我们可以用其他非监督的机器学习方法自动地学出用户感兴趣的“话题”,从而提升时间线的质量。当然,干货鉴别(和我们之前做的\u003Ca href=\&https:\u002F\u002Fzhuanlan.zhihu.com\u002Fp\u002F\& data-editable=\&true\& data-title=\&美女鉴别\&\u003E美女鉴别\u003C\u002Fa\u003E)也可以大幅提升各种用户的幸福感XDDD\u003Cbr\u003E\u003C\u002Fli\u003E\u003C\u002Ful\u003E\u003Cp\u003E当然这个模型目前还有很多技术上的缺陷。目前训练用的语料库主要是从之前知乎搜索引擎里面直接抓出来的。这导致:第一,分词的方法用的是信息检索的一套分词,所以会出现一些奇怪的近义词,比如\u003Ca href=\&http:\u002F\u002Fzhihu.grapeot.me\u002Fword2vec.html#%E5%B8%8C%E6%8B%89%E9%87%8C\& data-editable=\&true\& data-title=\&所以 的知乎近义词\&\u003E希拉里 的知乎近义词\u003C\u002Fa\u003E;第二,语料库规模比较小。下一步计划是用更大的数据(甚至可以包括中文维基)重新分词,再训练一个版本。预期质量会再提升不少。\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp\u003E你们也可以积极探索一些有(qi)趣(guai)的近义词,把结果分享在评论里。直接复制地址栏的URL贴上来就好啦~\u003C\u002Fp\u003E&,&updated&:new Date(&T19:08:47.000Z&),&canComment&:false,&commentPermission&:&anyone&,&commentCount&:150,&likeCount&:1057,&state&:&published&,&isLiked&:false,&slug&:&&,&isTitleImageFullScreen&:false,&rating&:&none&,&sourceUrl&:&&,&publishedTime&:&T03:08:47+08:00&,&links&:{&comments&:&\u002Fapi\u002Fposts\u002F2Fcomments&},&url&:&\u002Fp\u002F&,&titleImage&:&&,&summary&:&&,&href&:&\u002Fapi\u002Fposts\u002F&,&meta&:{&previous&:null,&next&:null},&snapshotUrl&:&&,&commentsCount&:150,&likesCount&:1057},&&:{&title&:&知乎中的“近义词”(二):让电脑理解答案的主题&,&author&:&grapeot&,&content&:&\u003Cp\u003E前两天我们做了一个非常简单的小实验,让电脑能自动鉴别出知乎中的“近义词”(\u003Ca href=\&https:\u002F\u002Fzhuanlan.zhihu.com\u002Fp\u002F\& data-editable=\&true\& data-title=\&知乎中的近义词 - 挖掘知乎里有趣的东西 - 知乎专栏\&\u003E知乎中的近义词 - 挖掘知乎里有趣的东西 - 知乎专栏\u003C\u002Fa\u003E,经指正也许叫相关词更好些)。比如希拉里的“近义词”是特朗普,微软的“近义词”是苹果等等。这篇文章主要想演示,其实仅仅凭借这个简单的技术,我们已经能让电脑理解一个答案的主题了。换言之,电脑看完一个答案以后,仅仅通过近义词的相关知识,就有能力辨别出这个答案是在说政治,还是美食,还是医学,或者是计算机等等。\u003C\u002Fp\u003E\u003Cp\u003E鉴别主题这个东西是非常重要的,它可以让知乎变得聪明很多。对答案来说,它可以帮助我们筛选干货贴或是爆照贴,从而改进排序;对问题来说,它可以自动建议话题标签,甚至自动重定向问题;对用户来说,它可以帮助个性化每个人看到的时间线,推送的广告,甚至每个人可以看到不同的知乎日报,不同的答案排序。知乎一大问题是现在内容越来越多,仅凭被动的浏览很可能会与自己真正感兴趣的高质量内容擦肩而过。但一旦我们有了让电脑自动鉴别答案主题和质量的能力,就等于让每个人都有了个24x7不断为你发掘有趣内容的小秘书,当它发现你可能感兴趣的东西的时候就自动推送给你。这样可以让你看到的知乎是你期待的“那一个”知乎,不论是娱乐向还是学习向都会高效很多。\u003C\u002Fp\u003E\u003Cp\u003E先看一下demo:\u003C\u002Fp\u003E\u003Cp\u003E\u003Ca href=\&http:\u002F\u002Fzhihu.grapeot.me\u002Fclassify.html#\& data-editable=\&true\& data-title=\&知乎答案分类\&\u003E知乎答案分类\u003C\u002Fa\u003E。\u003C\u002Fp\u003E\u003Cp\u003E在文本框里面输入想要分类的答案的内容,点击确定,就可以看结果啦。我们先给你填了一个例子,方便你测试。目前这个系统只能在长度适中(不能只有一两句话),主题明确的时候才能给出靠谱的结果。面对单纯抖机灵爆照向的答案会大概率懵逼。。。如果能把复制答案的时候知乎自动添加的“答案来自知乎,地址http:\u002F\u002F”等等去掉的话,准确率就更高啦。下面是一个示例截图。\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cimg src=\&v2-db2fda8532e.png\& data-rawwidth=\&583\& data-rawheight=\&665\&\u003E\u003Cbr\u003E安利了半天,我们是怎么让电脑理解答案的主题呢?很简单,我们现在有了近义词,如果仔细观察一下的话,会发现,同一个领域的近义词往往是联系在一起的。比如\u003Ca href=\&http:\u002F\u002Fzhihu.grapeot.me\u002Fword2vec.html#%E8%83%B8%E8%85%94\& data-editable=\&true\& data-title=\&胸腔\&\u003E胸腔\u003C\u002Fa\u003E的近义词有\u003Ca href=\&http:\u002F\u002Fzhihu.grapeot.me\u002Fword2vec.html#%E6%8B%AC%E7%BA%A6%E8%82%8C\& data-editable=\&true\& data-title=\&括约肌\&\u003E括约肌\u003C\u002Fa\u003E,而括约肌又和\u003Ca href=\&http:\u002F\u002Fzhihu.grapeot.me\u002Fword2vec.html#%E8%82%8C%E8%85%B1\& data-editable=\&true\& data-title=\&肌腱\& class=\&\&\u003E肌腱\u003C\u002Fa\u003E联系在一起,接下来是\u003Ca href=\&http:\u002F\u002Fzhihu.grapeot.me\u002Fword2vec.html#%E8%83%AB%E9%AA%A8\& data-editable=\&true\& data-title=\&胫骨\&\u003E胫骨\u003C\u002Fa\u003E。也就是说,如果我们把相互之间靠的很近的词放在一起的话,我们可能就可以自然而然得出“主题”这个东西了。类似于下面的图。想象一下红色的词是和医学相关的,绿色的词是和生物相关的,蓝色的词是和化学相关的。也许他们之间没有明显的界限,但是通过运行一些现成的机器学习的程序(术语叫聚类),我们可以大概的得出一个这一块是医学,这一块是生物,这一块是化学的印象。当然,聚类算法本身只知道红色的这一坨是一个领域的,但并不会知道它和医学相关。我们最终还需要把每个颜色里面的词给打印出来,通过人来判断,哦这个类别是医学这样。\u003Cbr\u003E\u003Cimg src=\&v2-948ecb3d702d5bc70e2d1b50c187887b.png\& data-rawwidth=\&597\& data-rawheight=\&466\&\u003E\u003Cp\u003E那么我们聚类的结果长什么样呢?我们用几GB的文本训练了一个130多万词的word2vec近义词模型。然后把其中出现的频率尤其高的21万个词挑出来做了聚类。下面是一些类的典型词汇:\u003C\u002Fp\u003E\u003Cul\u003E\u003Cli\u003E番茄汁 椰奶 鸡油 核桃仁 白萝卜 乌梅 椰奶 番茄汁 昆布 猪血,这是个吃货的类\u003Cbr\u003E\u003C\u002Fli\u003E\u003Cli\u003E调解书 委托书 公司章程 合同书 工商登记 叛国罪 取保候审 行政拘留 法办 治安拘留,这是行政法律向的词汇\u003Cbr\u003E\u003C\u002Fli\u003E\u003Cli\u003E模式匹配 变量名 语法分析 XML 词法 URL 剪贴板 文件名 超链接 索引,码农在哪里?让我听到你们的声音!\u003Cbr\u003E\u003C\u002Fli\u003E\u003Cli\u003E氮气 氢气 氟利昂 制冷剂 甲烷 波函数 自旋 实部 静电力 惯性力 这是我们数理化生自然科学类\u003C\u002Fli\u003E\u003C\u002Ful\u003E\u003Cp\u003E还有很多其他类。我们一共整理了15个类别,在demo里只演示了一部分。因为有一些类别比较抽象,类似:\u003C\u002Fp\u003E\u003Cul\u003E\u003Cli\u003E真傻 狗屁 他妈的 TMD 好赖 求赞 跪谢 别打我 谢谢 嘿嘿,这明显是个水贴撕逼类\u003C\u002Fli\u003E\u003Cli\u003E放声大哭 垂头丧气 惊魂未定 默不作声 一声不吭 千篇一律 俗不可耐 不知所谓 不堪入目 平淡无奇,看到这个类的时候我都被电脑的文化水平震惊了,这叫文化人类\u003Cbr\u003E\u003C\u002Fli\u003E\u003Cli\u003E小受 碧池 男孩子 小姑娘 女流氓,这。。只能叫羞羞的类了。。\u003C\u002Fli\u003E\u003C\u002Ful\u003E\u003Cp\u003E注意在整个过程中,除了最后我们扫了一眼聚类出来的十几个类别,给他们起了个名字以外,我们没有用到\u003Cb\u003E任何\u003C\u002Fb\u003E人工标定。这是一件非常不可思议的事情。等于是电脑在看了非常非常多的中文以后,自己总结出来,知乎上似乎可以分为几个话题。最后只要我们告诉它1号话题叫美食,2号话题叫行政法律,它就能“看懂”知乎的主题了!同时这个“主题”的分布本身也是一个重要的机器学习的feature,可以支撑很多应用。这大大降低了应用的门槛,等于是一坨数据,直接拿来我们就能给你加上“智能”,什么文本质量评价,主题鉴别,搜索推荐,广告匹配,水军遏止,全部给你来一套。而这些智能应用,就是这个专栏下面要给知乎加上的东西。\u003C\u002Fp\u003E&,&updated&:new Date(&T03:39:07.000Z&),&canComment&:false,&commentPermission&:&anyone&,&commentCount&:39,&likeCount&:179,&state&:&published&,&isLiked&:false,&slug&:&&,&isTitleImageFullScreen&:false,&rating&:&none&,&sourceUrl&:&&,&publishedTime&:&T11:39:07+08:00&,&links&:{&comments&:&\u002Fapi\u002Fposts\u002F2Fcomments&},&url&:&\u002Fp\u002F&,&titleImage&:&https:\u002F\u002Fpic4.zhimg.com\u002Fv2-695a7da79c6883efe9e4e0c91362f82c_r.jpg&,&summary&:&&,&href&:&\u002Fapi\u002Fposts\u002F&,&meta&:{&previous&:null,&next&:null},&snapshotUrl&:&&,&commentsCount&:39,&likesCount&:179},&&:{&title&:&知乎中的“近义词”(三):让搜索更智能&,&author&:&grapeot&,&content&:&之前为了方便对知识的搜索,做了个\u003Ca href=\&https:\u002F\u002Fzhuanlan.zhihu.com\u002Fp\u002F?refer=grapeot\& data-editable=\&true\& data-title=\&搜索引擎\&\u003E搜索引擎\u003C\u002Fa\u003E。但是其中的算法非常基础,经常在需要装逼的时候搜不到,比如有次想搜火车的座位排布,结果搜“火车”,或者“铁路”,弄死搜不到。这真是令人尴尬。后来过了好久才发现其实那个答案里面提到的是“高铁”。从那以后就在想,要是搜索引擎能更智能一点,哪怕你输入的关键字是“火车”,也能搜到“高铁”就好了。最近做了一些针对知乎“近义词”的工作,正好可以用到搜索里面来。\u003Cp\u003E老规矩,先上demo。\u003Ca href=\&http:\u002F\u002Fzhihu.grapeot.me\u002Fretrieval.html\& class=\&\&\u003Ehttp:\u002F\u002Fzhihu.grapeot.me\u002Fretrieval.html\u003C\u002Fa\u003E\u003C\u002Fp\u003E\u003Cp\u003E这个demo用的是一个非常小的数据库,只有150个文档。文档的具体内容在这里:\u003Ca href=\&http:\u002F\u002Fzhihu.grapeot.me\u002Ftext.tsv\& class=\&\&\u003Ehttp:\u002F\u002Fzhihu.grapeot.me\u002Ftext.tsv\u003C\u002Fa\u003E。主要是想演示一下如果我们用A做关键字,在A不太能搜到的情况下,能不能把和A相关的B关键字也匹配上。\u003C\u002Fp\u003E\u003Cp\u003E试试看搜索“火车”,现在能出来和高铁相关的内容了!\u003C\u002Fp\u003E\u003Cp\u003E\u003Cimg src=\&v2-922c58bcbd3b4e38fbd7ef49d3143b47.png\& data-rawwidth=\&599\& data-rawheight=\&312\&\u003E而如果搜索“痛苦”的话(\u003Ca href=\&http:\u002F\u002Fzhihu.grapeot.me\u002Fretrieval.html#%E7%97%9B%E8%8B%A6\& data-title=\&链接\& class=\&\&\u003E链接\u003C\u002Fa\u003E),也会出现含有“绝望”,“苦难”等字眼的文档。\u003C\u002Fp\u003E\u003Cbr\u003E\u003Cimg src=\&v2-3dceacf2e0a6d718fd62c.png\& data-rawwidth=\&614\& data-rawheight=\&532\&\u003E\u003Cp\u003E这个搜索引擎还有一个比较意外的功用是,可以搜索一些相对模糊或者抽象的关键字,把相关的内容全部搜出来。比如如果我们搜索语言(\u003Ca href=\&http:\u002F\u002Fzhihu.grapeot.me\u002Fretrieval.html#%E8%AF%AD%E8%A8%80\& data-title=\&链接\& class=\&\&\u003E链接\u003C\u002Fa\u003E),可以看到结果里包含了汉语,英语,日语,甚至满语和象形文字的内容。而更神奇的是,大部分结果都并没有“语言”这个词。知乎官方最近做的\u003Ca href=\&https:\u002F\u002Fwww.zhihu.com\u002Fquestion\u002F\& data-title=\&话题索引功能\& class=\&\&\u003E话题索引功能\u003C\u002Fa\u003E,其实非常适合用这个东西来自动抓取,供人工迅速编辑呢。\u003C\u002Fp\u003E\u003Cp\u003E总的来说,相比于传统的按词匹配的搜索引擎,加入了神经网络以后的智能搜索引擎可以在词-文档,文档-文档乃至标签-文档之中建立更为紧密的联系。这一方面可以帮助用户在不太记得关键字的情况下仍然完成搜索,一方面可以构建一个知识网络,从而进行很多其他的智能应用。现在我们的demo系统还有一些问题,比如用户搜索“英语”,我们会返回和搜索“语言”完全相同的结果。这是因为语料库以及模型规模还太小,没有学出来\&英语\&和\&语言\&其实是不同的东西。在实际的大语料库中可以比较简单地改善。\u003C\u002Fp\u003E\u003Cp\u003E这个系统目前已经在一些投资公司里应用了。比如看项目书,看到无人机的项目,这个引擎会自动推荐更多的无人机的项目,帮助横向比较。这样基金经理就可以在不丧失系统性的情况下,大量浏览项目书,得出一个整体印象。类似的应用还有很多,我们也已经开发出了一个汉语Search Engine as a Service的服务。用户提交一个文本文件,我们就可以自动进行索引,并提供智能搜索服务。有意思的应用以及前景都是很广阔的。\u003C\u002Fp\u003E&,&updated&:new Date(&T08:37:12.000Z&),&canComment&:false,&commentPermission&:&anyone&,&commentCount&:18,&likeCount&:153,&state&:&published&,&isLiked&:false,&slug&:&&,&isTitleImageFullScreen&:false,&rating&:&none&,&sourceUrl&:&&,&publishedTime&:&T16:37:12+08:00&,&links&:{&comments&:&\u002Fapi\u002Fposts\u002F2Fcomments&},&url&:&\u002Fp\u002F&,&titleImage&:&&,&summary&:&&,&href&:&\u002Fapi\u002Fposts\u002F&,&meta&:{&previous&:null,&next&:null},&snapshotUrl&:&&,&commentsCount&:18,&likesCount&:153},&&:{&title&:&知乎中的“近义词”(四):从搜索到智能&,&author&:&grapeot&,&content&:&\u003Ca href=\&https:\u002F\u002Fzhuanlan.zhihu.com\u002Fp\u002F\& data-editable=\&true\& data-title=\&上回\&\u003E上回\u003C\u002Fa\u003E我们说到基于Word2Vec可以做一些相对靠谱的搜索引擎。这个其实是非常关键的一点。因为电脑从诞生之初就擅长记忆,计算,穷举类的工作,而并不擅长偏智能方面的工作——比如琴棋书画。这不是说电脑不能做有智能的事情,而是说比如我们要让电脑会下围棋要10000个小时的努力,但让电脑在记忆、穷举方面做得很好可能只要1个小时的努力。Not all tasks are created equal。而搜索,就是那个电脑特别擅长的任务。这篇文想说的是,其实从搜索这个看上去暴力的应用出发,电脑也可以变得很智能。\u003Cp\u003E技术上来看,什么叫搜索引擎(Search Engine)呢?比如我们现在有10个文档,每个文档有一个编号。电脑看一遍这10个文档,记下来了每个文档的特点,我们把这一步叫做“索引”。索引完了以后,你可以给电脑一个词或者一句话,电脑会从这10个文档里面找到和你的搜索关键字最相关的文档,然后把这个文档的编号返回给你。够简单吧?对于Web搜索引擎比如bing,google来说,这个编号就是文档的URL。对于知乎的搜索引擎来说,这个编号就是回答的id。但其实这个编号不一定是字符串或者数字,甚至不一定要两两不同,这引出了很多种玩法。比如每个文档可以是一个知乎问题,而这个编号就是问题的话题。这样当某个用户提了一个新的问题的时候,我们就可以把这个用户的问题内容当做关键字进行搜索,然后根据返回的编号(也就是话题)来自动提示他可以添加什么话题。这样,高大上的“人工智能”就从最土的记忆-搜索中出来了。\u003C\u002Fp\u003E\u003Cp\u003E还有一种有趣的玩法是给一个知乎答案,猜他是谁写的。比如我们做了个demo,现在模拟一个最简单的“知乎”。找了10个片段。其中5个来自金庸的武侠小说《鹿鼎记》,5个来自大刘的科幻小说《三体》。为了让电脑能认得我们的输入,我们把这10个片段组织成10行文本,每一行的格式类似\u003C\u002Fp\u003E\u003Cblockquote\u003E\u003Cp\u003E金庸&TAB&鹿鼎记的片段\u003C\u002Fp\u003E\u003Cp\u003E金庸&TAB&鹿鼎记的片段\u003C\u002Fp\u003E\u003Cp\u003E。。。。。。\u003C\u002Fp\u003E\u003Cp\u003E三体&TAB&三体的片段\u003C\u002Fp\u003E\u003Cp\u003E。。。。。\u003C\u002Fp\u003E\u003C\u002Fblockquote\u003E\u003Cp\u003E我们搭了一个系统,只要你把这种格式的文本输入进去,按一下“索引”,系统就会读入这些文本,开始索引了。界面类似下图。\u003C\u002Fp\u003E\u003Cp\u003E\u003Cimg src=\&v2-9a84dd3a53fbdf7ab9bdb98.png\& data-rawwidth=\&588\& data-rawheight=\&525\&\u003E索引可能会花一段时间,在这个例子里面可能需要10秒钟左右。当索引结束的时候,下面会出现一个文本框,问你想搜索什么。比如我们想看看这句话“从近代史和现代史上看,科学基础理论研究成果转化为实用技术有两种模式:渐进型和突变型”可能来自三体还是来自鹿鼎记。注意这句话并没有出现在我们索引的文本里,甚至没有出现明显的线索比如人名。那么我们把这句话粘贴进去,点确定:\u003C\u002Fp\u003E\u003Cimg src=\&v2-053dddef5806acf61ef238.png\& data-rawwidth=\&700\& data-rawheight=\&342\&\u003E\u003Cp\u003E系统发现,这句话和三体和金庸都有关联,但和三体的联系更为紧密,更有可能是三体里面的。如果你有机器学习背景的话,会知道这是一个比较经典的文本分类的问题,一般需要用机器学习来训练一个分类器。但这里我们并没有用任何复杂的高等数学啊贝叶斯啊分类器啊,只是单纯的用搜索引擎,就把一个人工智能的应用做了出来。\u003C\u002Fp\u003E\u003Cp\u003E打开“文档的编号可以是任何标签”这个思路以后,其实可以用这个系统做很多很多的东西。比如辨别一个答案是不是干货,是不是爆照,一个新闻是不是谣言,一个用户是男是女,一条私信是不是骚扰。。。Search Engine as a Service并不是传统意义上像出租虚拟机那样出租搜索能力,轻松转变成AI Service的潜力让它价值无穷。\u003C\u002Fp\u003E\u003Cp\u003E现在是你们自己发挥创造力的时间了:demo系统猛击此处\u003Ca href=\&http:\u002F\u002Fzhihu.grapeot.me\u002FSEaaS.html\&\u003Ehttp:\u002F\u002Fzhihu.grapeot.me\u002FSEaaS.html\u003C\u002Fa\u003E。注意我租的服务器比较烂,索引又比较耗资源,所以如果碰到反应比较慢的时候,等几秒再重试,不要快速反复刷新。谢谢啦。\u003C\u002Fp\u003E\u003Cp\u003E*从以前的评论来看,有很多朋友问这是什么技术做的。我的后台系统是Python+Flask+GUnicorn+Nginx+Ubuntu。用的是Micro Service架构,因为很多模型比较大,加载比较占内存,这样能够最大程度跨进程复用内存。关于机器学习方面,用的是最简单的jieba分词+Word2Vec+Bag of Visual Words(这是个机器视觉的算法,我把移植到文本上了)+TF-IDF+Inverted index。\u003C\u002Fp\u003E&,&updated&:new Date(&T08:32:41.000Z&),&canComment&:false,&commentPermission&:&anyone&,&commentCount&:6,&likeCount&:46,&state&:&published&,&isLiked&:false,&slug&:&&,&isTitleImageFullScreen&:false,&rating&:&none&,&sourceUrl&:&&,&publishedTime&:&T16:32:41+08:00&,&links&:{&comments&:&\u002Fapi\u002Fposts\u002F2Fcomments&},&url&:&\u002Fp\u002F&,&titleImage&:&&,&summary&:&&,&href&:&\u002Fapi\u002Fposts\u002F&,&meta&:{&previous&:null,&next&:null},&snapshotUrl&:&&,&commentsCount&:6,&likesCount&:46},&&:{&title&:&TrumpBot - 一个学川普说话的人工神经网络&,&author&:&grapeot&,&content&:&\u003Cp\u003E之前看到一些关于RNN的教程(当时看的是这个:\u003Ca href=\&https:\u002F\u002Fzhuanlan.zhihu.com\u002Fp\u002F\& data-editable=\&true\& data-title=\&知乎专栏\&\u003E知乎专栏\u003C\u002Fa\u003E),觉得很有意思。所以爬了川普发的26000+条推特训练了一个LSTM学他说话。感觉语言还不是特别通,但还是比较有川普的风格。。搞笑的是这个网络还会@奥巴马,发一些(不存在的)链接,加hag,以及引用和转发其他人的(并不存在的)tweet。。一些这个神经网络编出来的推特:\u003C\u002Fp\u003E\u003Cul\u003E\u003Cli\u003EAfter setbacks are simply putting all thanked for the situation. Too many statements against China--good luck.\u003C\u002Fli\u003E\u003Cli\u003EDoes a budget blogging @BarackObama won't approve the opening of the luck course today- \u003Ca href=\&http:\u002F\u002Ft.co\u002Fuu002y4t\& data-editable=\&true\& data-title=\&t.co 的页面\&\u003E\u003Cu\u003Ehttp:\u002F\u002Ft.co\u002Fuu002y4t\u003C\u002Fu\u003E\u003C\u002Fa\u003E\u003C\u002Fli\u003E\u003Cli\u003ELooking forward to meeting a #TrumpTuesday on @AScheifer \u003Ca href=\&http:\u002F\u002Fbit.ly\u002FbMvxVu\& data-editable=\&true\& data-title=\&bit.ly 的页面\&\u003E\u003Cu\u003Ehttp:\u002F\u002Fbit.ly\u002FbMvxVu\u003C\u002Fu\u003E\u003C\u002Fa\u003E\u003C\u002Fli\u003E\u003Cli\u003E\&@TexasArmance2016: @realDonaldTrump @mmunhannitorial Donald Trump for president!\&\u003Cbr\u003E\u003C\u002Fli\u003E\u003C\u002Ful\u003E\u003Cp\u003E但大多数语句还是不通的。更多的例子参见这个网页:\u003Ca href=\&http:\u002F\u002Fzhihu.grapeot.me\u002Ftrumpbot.html\& data-editable=\&true\& data-title=\&Trump bot\&\u003ETrump bot\u003C\u002Fa\u003E\u003C\u002Fp\u003E\u003Cp\u003E一些技术细节:\u003C\u002Fp\u003E\u003Cul\u003E\u003Cli\u003ETwitter的数据是在这里拿的:\u003Ca href=\&http:\u002F\u002Ftrumptwitterarchive.com\u002F\& data-editable=\&true\& data-title=\&Trump Twitter Archive\&\u003ETrump Twitter Archive\u003C\u002Fa\u003E。这网站也挺搞笑的。。\u003C\u002Fli\u003E\u003Cli\u003ELSTM用的是开源的code:\u003Ca href=\&https:\u002F\u002Fgithub.com\u002Fjcjohnson\u002Ftorch-rnn\& data-editable=\&true\& data-title=\&jcjohnson\u002Ftorch-rnn\&\u003Ejcjohnson\u002Ftorch-rnn\u003C\u002Fa\u003E。\u003C\u002Fli\u003E\u003Cli\u003E训练用的是AWS上的K80。\u003C\u002Fli\u003E\u003C\u002Ful\u003E&,&updated&:new Date(&T09:13:06.000Z&),&canComment&:false,&commentPermission&:&anyone&,&commentCount&:31,&likeCount&:393,&state&:&published&,&isLiked&:false,&slug&:&&,&isTitleImageFullScreen&:false,&rating&:&none&,&sourceUrl&:&&,&publishedTime&:&T17:13:06+08:00&,&links&:{&comments&:&\u002Fapi\u002Fposts\u002F2Fcomments&},&url&:&\u002Fp\u002F&,&titleImage&:&&,&summary&:&&,&href&:&\u002Fapi\u002Fposts\u002F&,&meta&:{&previous&:null,&next&:null},&snapshotUrl&:&&,&commentsCount&:31,&likesCount&:393},&&:{&title&:&[智能家居] 一些关于红外成像仪的有趣实验&,&author&:&grapeot&,&content&:&\u003Cp\u003E最近气温骤降,实在冷得受不了了,开始各种买买买小太阳。因为之前做了个全天温湿度监控系统,所以能定量分析小太阳的作用和耗电量(下图)。然鹅数据显示加了平均每月110度电的能耗之后,家里的平均气温只上升了2华氏度。所以总觉得家里一定有漏风的地方。上网搜了一些教程,神马用玻璃胶封堵窗框缝隙之类跟着做了一遍,并没有什么卵用。本着做优化一定要有定量指标的思想,决定买个红外成像仪来做。\u003C\u002Fp\u003E\u003Cp\u003E\u003Cimg src=\&v2-5fa1b26d78d7c54dcdcd.png\& data-rawwidth=\&1242\& data-rawheight=\&1104\&\u003E现在的红外成像仪还是很便宜+小巧的。我买的是FLIR One。长的像这个样子。\u003Cimg src=\&v2-56bef997c68f8bfcfb851a1b.jpg\& data-rawwidth=\&2539\& data-rawheight=\&1769\&\u003E有个闪电接口,可以直接插到iPhone上去。有个app可以直接拍照。这个相机好的地方是,它有一个光学摄像头,一个红外摄像头。然后app里实际显示的是二者的叠加。所以能比较清楚地看到物体的温度分布。拿到相机以后,随便拍了几张,发现了一些问题。\u003C\u002Fp\u003E\u003Cp\u003E\u003Cimg src=\&v2-bbc526fa4e5e2f2329596.jpg\& data-rawwidth=\&640\& data-rawheight=\&480\&\u003E首先,窗子漏风真的很严重啊。尤其是下半部分。进一步特写发现,我以前一直针对窗框和窗体之间的缝隙在堵,这个思路根本就是错的。打了玻璃胶以后,最冷的地方不是这个缝隙,而是推拉窗滑轨的缝隙。果断下单买了weather strip来堵。\u003C\u002Fp\u003E\u003Cimg src=\&v2-b7b3b0725d7fef743d9f.jpg\& data-rawwidth=\&640\& data-rawheight=\&480\&\u003E\u003Cp\u003E第二个改进是,之前就觉得暖气的温度太高,只靠辐射传热太浪费了。所以买了个电风扇对着吹,有效地把热空气带到了房间的每个角落。但前两天不小心把水滴到了暖气上,嗞啦一声沸腾了。。这说明电风扇的散热效果仍然不是很好。经过一些研究,发现风扇吹出来的风是四面八方发散的。在没有定量优化的时候,我的解决方法只能是做个山寨风(da)道(peng),强迫空气从暖气过。这样气温有了一些提升,但代价是晚上大棚哗哗的响。。完全睡不着。。\u003C\u002Fp\u003E\u003Cp\u003E\u003Cimg src=\&v2-7d7abbf88ffdd414b54ed499f4a8af5b.jpg\& data-rawwidth=\&1280\& data-rawheight=\&960\&\u003E在拿到热成像仪以后,对暖气拍了张照,发现高温的地方主要集中在风吹不到的地方(废话)。但这个照片一下把哪里能吹到风,哪里吹不到风给显示出来了(下图左)。进一步探索发现电风扇因为出风口隔栅的形状是不对成的,出的风也是左右不对称的。。根据热成像仪的指引,把电风扇掉了个头,调整了一下出风的方向,很快暖气片的温度就降了下来,热量被更均匀地对流到整个房间了(下图右)。\u003C\u002Fp\u003E\u003Cimg src=\&v2-91ea0176172bde74ee6d0a2b720d22b0.jpg\& data-rawwidth=\&1280\& data-rawheight=\&480\&\u003E\u003Cp\u003E第三个改进是,我们发现还有个重要的热量损失源是房间门!下面是房间门的照片,可以看见冷风嗖嗖的往里灌啊(左图)。。于是我们用透明胶(囧)把房门下面的缝给封了起来,效果拔群(右图)。\u003C\u002Fp\u003E\u003Cimg src=\&v2-fa39a93d04333beca83c4.jpg\& data-rawwidth=\&960\& data-rawheight=\&640\&\u003E\u003Cp\u003E这个热成像仪还有很多好玩的应用。比如对整个房间扫了一遍以后发现天花板上有一个带状低温区。经过排查后发现这是卫生间通向外界的排气管道。(这个真不是屁股)那一大块低温区是风倒灌进排气口造成的。\u003C\u002Fp\u003E\u003Cp\u003E\u003Cimg src=\&v2-751c345146ddcdc48f5b431fd7d0807a.jpg\& data-rawwidth=\&480\& data-rawheight=\&640\&\u003E把它对准一些日常物体也有很多有意思的发现。比如MacBook和SurfaceBook的差别。很明显能看出来MacBook的CPU装在底座上而SurfaceBook装在显示屏上。你甚至能看出来之前我敲了哪些键。用来偷密码看来真的是可能的。\u003Cimg src=\&v2-6d9c77cec8a3f4e61c8ed7ab3baebef3.jpg\& data-rawwidth=\&2048\& data-rawheight=\&2048\&\u003E\u003C\u002Fp\u003E\u003Cp\u003E对准沙发,还能看出来刚才人的坐姿是什么样的:\u003C\u002Fp\u003E\u003Cp\u003E\u003Cimg src=\&v2-c02ce662dea31e68d6c3a9b.jpg\& data-rawwidth=\&480\& data-rawheight=\&640\&\u003E还可以对着人拍。这张照片真是把我吓了一跳。脚趾并没有感觉太冷,但一拍照发现温度比脚面低太多。。真是一定要注意肢端保暖,自己都感觉不到的。。而且感觉这个也许可以用来看整容啥的。如果鼻子比其他地方温度低一截,会不会就是整的啥的。。\u003Cimg src=\&v2-ba3ab75ec6b.jpg\& data-rawwidth=\&480\& data-rawheight=\&355\&\u003E\u003C\u002Fp\u003E\u003Cp\u003E总之,热成像仪还是个很好玩的东西 。它为我们进行优化提供了定量的依据以及评估。深刻体会到,做优化,一定一定要有定量的指标!否则瞎JB打玻璃胶堵缝啥的看上去忙的很,其实没什么卵用。\u003C\u002Fp\u003E&,&updated&:new Date(&T19:29:02.000Z&),&canComment&:false,&commentPermission&:&anyone&,&commentCount&:89,&likeCount&:516,&state&:&published&,&isLiked&:false,&slug&:&&,&isTitleImageFullScreen&:false,&rating&:&none&,&sourceUrl&:&&,&publishedTime&:&T03:29:02+08:00&,&links&:{&comments&:&\u002Fapi\u002Fposts\u002F2Fcomments&},&url&:&\u002Fp\u002F&,&titleImage&:&https:\u002F\u002Fpic2.zhimg.com\u002Fv2-038a2c09f6c644cd567f_r.jpg&,&summary&:&&,&href&:&\u002Fapi\u002Fposts\u002F&,&meta&:{&previous&:null,&next&:null},&snapshotUrl&:&&,&commentsCount&:89,&likesCount&:516},&&:{&title&:&[智能家居] 关于树莓派测量空气质量的一些实验&,&author&:&grapeot&,&content&:&现在所说的“智能家居”,其实更多的是“遥控家具”。正如以前的文里面提到的,我个人认为智能家居需要三个阶段,遥控化,自动化,和智能化。现在利用ifttt和一些手工规则,我们已经可以实现相当程度的自动化了(6点开暖气,日落开灯等等)。但想要到智能化还有相当的路要走。我自己就是搞机器学习的,所以也希望能学以致用,至少让自己家更智能,过得更舒服。但要搞智能化,面临的第一个问题就是,训练数据从哪来,甚至,训练数据是什么。从提高生活质量的角度出发,我把空气质量作为一个切入点。开始了一些用树莓派测量空气质量的实验。\u003Cp\u003E从自己生活的角度看,其实也很好奇室内污染到底有多严重,甲醛pm2.5到底有多少。由于有后期数据分析可视化的需求,所以更希望从app里面看。然鹅,至少没有看到美国公司做又能测pm2.5\u002F甲醛\u002F游离有机物(VOC),又有app的产品(最接近的是知名pm2.5测量厂商dylos的pro版提供一个土土的串口能连PC)。国内这样的产品有一些接近的,但看到200块的售价和扫一扫朋友圈自动分享的广告语,虽然觉得牛逼,总觉得哪里不对。。所以从实用的角度出发,也决定自己动手丰衣足食一把。\u003C\u002Fp\u003E\u003Cp\u003E最终的结果就是,做出来一个东西可以搜集\u002F监控家里的温湿度,二氧化碳,噪音水平,以及空气质量。目前空气质量仅仅包括氮氧化物\u002F氨\u002F苯\u002F酒精和甲醛。未来会加入PM2.5。app的截图如下。\u003C\u002Fp\u003E\u003Cp\u003E\u003Cimg src=\&v2-e4f5aaf45512adcca9aeabf5bdf96c20.png\& data-rawwidth=\&1132\& data-rawheight=\&723\&\u003E这些数据是从不同的传感器搜集来的:\u003C\u002Fp\u003E\u003Cul\u003E\u003Cli\u003E温湿度是从家里的暖气控制器(thermostat)搜集的。它自带一个(未公开的)OAuth API。Ajax抓包可以拿到。\u003C\u002Fli\u003E\u003Cli\u003E二氧化碳和噪声水平用的是Netatmo。\u003C\u002Fli\u003E\u003Cli\u003E空气质量用的是树莓派加传感器。下面详细说说这个。\u003C\u002Fli\u003E\u003C\u002Ful\u003E\u003Cimg src=\&v2-bbb756febf.jpg\& data-rawwidth=\&1240\& data-rawheight=\&1239\&\u003E\u003Cp\u003E=============hard core技术内容的分割线===============\u003C\u002Fp\u003E\u003Cp\u003E树莓派(基于ARM)和Arduino之类单片机的重要差异在于,他虽然有GPIO接口,能够读取数字信息,但他并没有内置模拟数字转换器(ADC),所以不能像Arduino那样直接连模拟传感器。但流行的气体传感器MQ135等等都是模拟的,所以得搭一个小电路,用MCP3008之类的ADC芯片先把模拟信号转成数字信号,然后再读取。这里有一个相当好的教程:\u003Ca href=\&https:\u002F\u002Flearn.adafruit.com\u002Freading-a-analog-in-and-controlling-audio-volume-with-the-raspberry-pi\u002Foverview\& data-editable=\&true\& data-title=\&Analog Inputs for Raspberry Pi Using the MCP3008\&\u003EAnalog Inputs for Raspberry Pi Using the MCPC\u002Fa\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp\u003E\u003Cimg src=\&v2-e2ae309de6efccd215881.png\& data-rawwidth=\&1443\& data-rawheight=\&719\&\u003E但教程里面对MCP3008信号读取用的是bit banging的方法,也就是自行实现上图的协议。其实树莓派内置硬件支持SPI总线接口。所以我就偷个懒,直接用spidev来读了。改改电路以后几行python就能搞定。后端用tornado架个网站,前端用ajax刷新数据写个web app就接起来了。\u003C\u002Fp\u003E\u003Cp\u003E同时也和学物理的同学探讨了一下。MQ135之类传感器的原理是,传感器的表面有一层二氧化锡的膜。空气中的目标分子(比如苯分子)接触到这层膜的时候,会可逆地放出电子,从而改变二氧化锡膜的电导率。所以通过测量电阻,就可以实现对有害气体含量的测量了。不同的气体会有不同的膜。至于PM2.5,一般的传感器用的是激光散射。但这个非常不准确,一般只用来做定性测量。原因是气溶胶含量的测量博大精深,不同的条件下适合用不同的方法,很难说有一种传感器能在各种不同的环境下都能得到准确的结果。国家标准里面测量PM2.5用的是BAM之类直接过滤空气的方法,非常昂贵。\u003C\u002Fp\u003E\u003Cp\u003E今天拿到了更小的树莓派zero。踩了一些坑,也说一下。\u003C\u002Fp\u003E\u003Cimg src=\&v2-ede9a847c0cd15a41bea8f1f.jpg\& data-rawwidth=\&710\& data-rawheight=\&627\&\u003E\u003Cp\u003E树莓派zero是一种5美元的全功能电脑。它和普通的树莓派在功能上是完全一样的,只是有一些接口上的缩水。比如4个全尺寸USB口变成了1个OTG mini USB口。而且把wifi去掉了,这就很蛋疼。。显然不可能到哪都拖根网线,自然地,就需要折腾看能不能把Wifi给装上去。。一个很简单的想法是,我找个特别小的那种无线网卡,就一个USB口外面伸出来一点点那种,插上不就完了。想法很简单,但真插上去以后发现特别不稳定,一两秒断一次,断一次要找几十秒才能重新连上。折腾了六七个小时,debug了半天内核错误信息。网卡设置,dhcp,路由,驱动,一个个排查过去,最终的结论是。。USB口支持的电流太小,撑不起来这个无线网卡。网上有人找个了有源的USB hub,插上就能跑了。\u003C\u002Fp\u003E\u003Cp\u003E这特码就有点尴尬了。树莓派zero的好处都有啥?不就是便宜和小么!要是随身带个有源usb hub,又不便宜又不小了。。只能另外想办法。先看能不能魔改OS把usb电流弄大。。搜了一些方法试了以后并没有什么卵用。继续bing,找到另一个魔改方法。大概地说,就是树莓派zero为了调试方便,在PCB电路板上暴露了一些电极。这里面正好包括+5V, GND, 以及USB通信的D+和D-。一个简单粗暴的方法是,老子把网卡拆了,直接把电极焊上不就完了么。\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp\u003E说拆就拆。网卡拆完以后特别特别小。。跟一个一分硬币差不多大。可以看到天线其实就是弯弯曲曲的一排金属。\u003C\u002Fp\u003E\u003Cp\u003E\u003Cimg src=\&v2-79eb6e5ce07e7d3cc91fba.jpg\& data-rawwidth=\&2100\& data-rawheight=\&902\&\u003E有个小坑是USB信号是差分信号(differiential signal),为了避免干扰,每根线的长度最好是一样的。所以焊上去以后摆成了这个奇怪的pose。\u003C\u002Fp\u003E\u003Cp\u003E\u003Cimg src=\&v2-0abe72c21898acf4f46235f3abe6707d.jpg\& data-rawwidth=\&1200\& data-rawheight=\&738\&\u003E插电以后真特码亮了。。DHCP也可以拿到IP地址。DHCP的过程感觉比之前快了不少,可能和电流增大了有关。然鹅,不稳定的问题还是没有完全解决,log里时不时还是能看见网卡重启的错误。还有个大坑是这么焊了以后OTG USB用不了了。。插上网卡就灭了,然后USB也没反应。。所以如何在树莓派zero上加上一个又便宜又小的wifi还是一个未解之谜。。\u003C\u002Fp\u003E\u003Cp\u003E=====================思想感情的分割线=====================\u003C\u002Fp\u003E\u003Cp\u003E整个过程中焊了接口,拼了模拟和数字电路,操作了总线,做了驱动和内核debug,写了python,架了网站,写了前端。虽然很多东西从本科毕业就再没碰过,一条龙下来都比较顺畅,感觉本科的系统化教育还是很有用的。总体感受就是,欢迎您报考中国科学技术大学!基础扎实真的不后悔。\u003C\u002Fp\u003E&,&updated&:new Date(&T12:25:36.000Z&),&canComment&:false,&commentPermission&:&anyone&,&commentCount&:54,&likeCount&:357,&state&:&published&,&isLiked&:false,&slug&:&&,&isTitleImageFullScreen&:false,&rating&:&none&,&sourceUrl&:&&,&publishedTime&:&T20:25:36+08:00&,&links&:{&comments&:&\u002Fapi\u002Fposts\u002F2Fcomments&},&url&:&\u002Fp\u002F&,&titleImage&:&https:\u002F\u002Fpic3.zhimg.com\u002Fv2-e5c774d52a222deeff067_r.jpg&,&summary&:&&,&href&:&\u002Fapi\u002Fposts\u002F&,&meta&:{&previous&:null,&next&:null},&snapshotUrl&:&&,&commentsCount&:54,&likesCount&:357},&&:{&title&:&[智能家居] 家庭灯光的智能控制&,&author&:&grapeot&,&content&:&\u003Cp\u003E智能家居最容易入手的一环就是智能灯光。从飞利浦的hue,到wemo的智能开关,到小米的智能灯泡,每家的技术都不一样,但基本都能实现遥控,定时开关等基本功能。结合Alexa\u002FSiri还能实现语音控制。到了这一步,家庭灯光就已经比较智能了。这篇文章主要介绍的是,如何在这个基础上更进一步,加入人体感应功能。\u003C\u002Fp\u003E\u003Cp\u003E一些品牌的灯光已经有了人体感应的功能,比如Hue有动作感应传感器,可以和Hue灯泡连起来。小米也有人体感应传感器。但它们的不足是,仅仅起到了自动开关灯的作用,和常见的声控灯没有太大区别。比如上厕所的时候还要一边拉屎一边鼓掌\u002F挥舞自己的双手让灯不要超时,想想就酸爽。。同时这些传感器还并不能实现对灯光更精细的控制。比如起夜冲进厕所,啪,灯一下全打到最亮,我的氪金狗眼都要被亮瞎了。。所以,这篇文章主要介绍一下我对智能灯光应该如何做的人性化的一些思考和实现。\u003C\u002Fp\u003E\u003Cp\u003E在定下具体的目标之前,我们先要了解一下我们手头有什么工具。最核心的当然就是红外传感器啦。长得像下图左这样,驱动电压5V。它里面有一个红外感应器(下图右)。如果有人走过的话,它会输出一个高电平,否则输出低电平。灵敏度和超时长度可调。它的一个致命缺陷是,如果你就在那一直坐着不动的话,它感应不到红外变化,就会觉得没有人了,输出低电平。换言之,这个传感器检测的是人动不动而不是人在不在。价格方面,5块人民币就可以买到。相比之下,同样原理的飞利浦Hue动作感应器需要300人民币左右(当然还包括配套电路,研发等等成本和品牌溢价)。\u003Cimg src=\&v2-ce4ca4e4d4b1d5c085db95.png\& data-rawwidth=\&952\& data-rawheight=\&311\&\u003E\u003C\u002Fp\u003E\u003Cp\u003E的确有其他更高级的传感器和算法可以实现检测人在不在而不是动不动,比如摄像头可以轻松地实现这一点,或者在门口拉个红外\u002F激光围栏也可以。但综合考虑成本和实现难度以后,我觉得这个红外传感器还是最合适的。只是因此我们也确定了一个我们不会去实现的功能,就是自动关灯。因为除非引入更多的传感器和更精细的算法,否则自动关灯很难做到人满意的程度。同时它带来的好处非常有限——现在的LED灯泡可以做到7W功率达到70W白炽灯的亮度。就算有自动关灯每天少开2个小时,也不过是0.014度电,按5毛钱一度电算,一年才能省2块多钱。考虑到投资和收益,我们并不需要自动关灯功能。\u003C\u002Fp\u003E\u003Cp\u003E至于我们想要的功能主要是三点:\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cul\u003E\u003Cli\u003E人经过自动开灯。比如晚上睡前想去厨房倒杯水,我可不想摸黑走路,或者大动干戈叫Alexa开灯。又比如起夜,在厕所摸开关摸半天也很不爽。\u003C\u002Fli\u003E\u003Cli\u003E要能判断什么时候自动开灯,什么时候不要开。比如装在卧室的自动灯,老婆睡觉了我一进卧室灯打开了引发家庭暴力,我睡了翻个身又把灯打开了(这个可以通过改动传感器的位置实现)。\u003C\u002Fli\u003E\u003Cli\u003E要能判断什么时候用什么亮度。比如我们的洗手间没有窗户,所以平时希望只要一有人进去就满亮度打开。但如果夜里进去的话希望开的比较暗,以免亮瞎狗眼。此外对于起夜的情况希望有个自动关灯功能,因为这个只靠定时也可以做得很好,而且这样就彻底不用碰开关了。\u003C\u002Fli\u003E\u003C\u002Ful\u003E\u003Cp\u003E关于用什么机制来实现(机理设计),第一点非常简单,弄个微控制器,传感器高电平就联系Hue Bridge开灯就好(我们家用的是Hue)。二三点的关键是在于知道什么时候处于睡眠状态,什么时候解除睡眠状态。在前面的智能家居文章里介绍过,我们的Alexa有个特殊的IFTTT trigger叫做good night。每晚睡觉前我们都会跟Alexa道晚安,这时候Alexa会自动关灯,关窗帘,启动摄像监控,激活警报器等等。只要在这里跟告诉自动灯控制器,激活睡眠模式就可以了。这时开始,所有房间的自动开灯功能就都被禁用了。除了洗手间仍然有自动开灯,但灯光亮度非常弱。至于什么时候解除睡眠模式,我们用的是IFTTT,每天日出的时候把洗手间设置成全亮度,日落的时候把其他房间的自动开灯功能打开。这样一方面比较智能,只在日光不足的时候自动开灯;一方面也比自己实现一个类似功能简单可靠。\u003C\u002Fp\u003E\u003Cp\u003E下面具体介绍实现的技术细节。整个技术框架如下图所示。\u003C\u002Fp\u003E\u003Cp\u003E\u003Cimg src=\&v2-e29d52cff4dcd883fcc0.png\& data-rawwidth=\&1924\& data-rawheight=\&912\&\u003E具体的实现可以根据技术框图很容易给出来。几个要点是:\u003C\u002Fp\u003E\u003Cul\u003E\u003Cli\u003EESP-8266不仅是一个Wifi芯片,而且是一个独立的微控制器(MCU),可以直接用Arduino IDE编程。而且它的能力比Arduino强很多。\u003C\u002Fli\u003E\u003Cli\u003EESP-8266唯一的坑是它整个芯片都是3.3V的。但这个红外传感器只能用5V驱动,用3.3V的话会不断重启。有个很hacky的解决方法是,如果你用的是NodeMCU开发板的话,它是用5V电压驱动的,这个电压可以用USB输入,也可以用VIn输入。所以如果用USB输入的话,VIn其实是输出5V电压的。可以用这个来驱动红外传感器。但一个坑是,在芯片启动的那一刻,VIn不能连在传感器上,否则它会认为驱动电压不足。要等芯片启动以后再把传感器接上去。\u003C\u002Fli\u003E\u003Cli\u003EHue Bridge的API非常简单。基本上是个RESTful API。网上有很多教程。可以用ESP-8266直接驱动,也可以在电脑端连。我选择了在电脑端连,是因为微控制器要重新编程调试比电脑上编程还是要麻烦不少(虽然ESP-8266可以无线更新)。如果不走API用IFTTT控制的话,延时可能会到10秒左右,实在不靠谱。所以我选择了在本地直接发送API请求的方式。\u003C\u002Fli\u003E\u003Cli\u003E树莓派上的软件,我用的是tornado写了个web service。通过nginx反向代理,经过路由器把暴露在广域网上。然后IFTTT有个Maker channel可以通过这个接口来控制睡眠模式。\u003C\u002Fli\u003E\u003C\u002Ful\u003E\u003Cp\u003E最终的成品如图所示。左上角的是红外传感器,旁边蓝色的是温湿度传感器。右下角的是ESP-8266开发板。注意Mini USB口和芯片的相对尺寸。所有电路传感器加起来还没有用来供电的充电器大。\u003C\u002Fp\u003E\u003Cimg src=\&v2-ac57e1a39f7361654ababd150c9aec58.jpg\& data-rawwidth=\&1100\& data-rawheight=\&1017\&\u003E\u003Cp\u003E总结一下,这篇文章首先定了一个模糊的需求方向(自动开灯),然后调研市场上已有的解决方案,分析优势和不足,确定具体的目标和非目标。接下来敲定机理设计,一步步细化,到最终实现。一遍过程做下来,还是可以学到不少东西的。\u003C\u002Fp\u003E\u003Cp\u003E[更新] 换了一个带5V输出的开发板,现在重启要手工干预的问题也解决了。同时用乐高搭了个丑萌丑萌的小盒子。。\u003C\u002Fp\u003E\u003Cimg src=\&v2-df261a96cc.jpg\& data-rawwidth=\&908\& data-rawheight=\&1210\&\u003E&,&updated&:new Date(&T21:18:50.000Z&),&canComment&:false,&commentPermission&:&anyone&,&commentCount&:77,&likeCount&:340,&state&:&published&,&isLiked&:false,&slug&:&&,&isTitleImageFullScreen&:false,&rating&:&none&,&sourceUrl&:&&,&publishedTime&:&T05:18:50+08:00&,&links&:{&comments&:&\u002Fapi\u002Fposts\u002F2Fcomments&},&url&:&\u002Fp\u002F&,&titleImage&:&https:\u002F\u002Fpic4.zhimg.com\u002Fv2-cc8cbeeccdafea09a2bad8_r.jpg&,&summary&:&&,&href&:&\u002Fapi\u002Fposts\u002F&,&meta&:{&previous&:null,&next&:null},&snapshotUrl&:&&,&commentsCount&:77,&likesCount&:340},&&:{&title&:&一夜之间从知乎小透明到万赞。。。需要多少个大V扶持呢?&,&author&:&kumakuma-47&,&content&:&周末刷了部剧,一时兴起写了篇文章《\u003Ca href=\&https:\u002F\u002Fzhuanlan.zhihu.com\u002Fp\u002F?group_id=492736\& data-editable=\&true\& data-title=\&推荐一部真人秀,看完好想删了朋友圈。。。 - 知乎专栏\& class=\&\&\u003E推荐一部真人秀,看完好想删了朋友圈。。。 - 知乎专栏\u003C\u002Fa\u003E》,结果就这么无心插柳地达成了万赞成就(截止到目前为止16734个赞)。要知道在这之前,我就是一个标准的知乎小透明,11年加入知乎到现在,只答过1次题,一共只有13个关注者,还都是线下本来就认识的朋友。\u003Cp\u003E\u003Cimg src=\&v2-e6b3b763bca05e582bdd51b.png\& data-rawwidth=\&1564\& data-rawheight=\&1018\&\u003E而这篇文章一夜之间爆红,让我产生了一个疑惑,从一个知乎小透明到万赞文章,在毫无刻意推广的情况下,是怎么传播开的?幸运的是,知乎完整的记录下了所有点赞的ID,以及点赞的先后顺序,看起来可以爬一发!\u003Cbr\u003E\u003C\u002Fp\u003E\u003Ch1\u003E基本假设\u003C\u002Fh1\u003E\u003Cp\u003E首先把所有点赞的账户按照先后顺序排列,纵轴是该账户的关注者数量。线比较高的就是传说中的知乎大v了。【可以明显的看出,每一波都是大v点赞带来群众点赞的节奏】,划掉 ——有评论指出,这个一点也不明显,应该跟时间结合在起来,大v点赞-&点赞速度暴涨这样,才能证明了是大V带节奏。然而根据现有的渠道,没有一个直接的方法可以拿到点赞的timestamp(\u003Ci\u003E时间戳)\u003C\u002Fi\u003E,也就只好这么粗放的显然一下了。\u003C\u002Fp\u003E\u003Cimg src=\&v2-d96a987c7eb2e9928aaf1e.png\& data-rawwidth=\&772\& data-rawheight=\&514\&\u003E\u003Cp\u003E那么接下来要确认的就是,哪些童鞋的赞,给我带了关键性的爆发性的增长(传说中的大腿啊!抓到了要紧紧抱住!)。按照知乎的机制,用户点赞的时候,其关注者的时间线上就会出现该动态。这是文章在知乎内被传播出去的唯一途径。由于能够抓取到的数据有限,我只能基于此做了一些假设。\u003C\u002Fp\u003E\u003Col\u003E\u003Cli\u003E假设小明有 700个关注者,当他点了赞之后,就会在700个人的页面上出现,因此定义为700个impression(\u003Ci\u003E展示量\u003C\u002Fi\u003E)。\u003C\u002Fli\u003E\u003Cli\u003E而这700个人中,有30个人因为看了小明的点赞,也打开文章点了赞,那就是有30个conversion(\u003Ci\u003E有效转化\u003C\u002Fi\u003E)。\u003C\u002Fli\u003E\u003Cli\u003E小李关注了小明同学,但是他点赞发生在小明同学之前,那么这就不算是一个有效转化。\u003C\u002Fli\u003E\u003Cli\u003E当一个用户关注的多个账户都给这篇文章点了赞,那这篇文章就会在时间轴上出现多次,因此记为多次有效转化,也就是说不做去重处理。\u003C\u002Fli\u003E\u003C\u002Fol\u003E\u003Cp\u003E因此,我决定采用“有效转化”,而非“展示量”,作为用户影响力的衡量标准。那么现在我们把每个有效转化都画成一条线的话,就有了一个 social network graph(\u003Ci\u003E社交网络图谱\u003C\u002Fi\u003E)。\u003C\u002Fp\u003E\u003Ch1\u003E100个赞\u003C\u002Fh1\u003E\u003Cp\u003E都说从0到1是最难的,那让我们看看,在起步阶段,带来头100个赞的衣食父母都是谁呢。\u003C\u002Fp\u003E\u003Cimg src=\&v2-79074b80edf5cb2f7bafde3.png\& data-rawwidth=\&1108\& data-rawheight=\&995\&\u003E\u003Cp\u003E感谢CCTV MTV ! 感谢所有的早期点赞用户!好吧,看起来有点凌乱,感谢致辞环节结束,让我们把大部分群众的标签给去掉,看看有哪些大v中v小v在带节奏呢。\u003C\u002Fp\u003E\u003Cp\u003E\u003Cimg src=\&v2-4bc9e7e80.png\& data-rawwidth=\&961\& data-rawheight=\&872\&\u003E这时候故事路径就很明显了。左上角的小红点,都是认识的朋友,零零散散从微信朋友圈上来的。中间的一大波赞按图索骥,可以看到都是由\u003Ca href=\&http:\u002F\u002Fwww.zhihu.com\u002Fpeople\u002F2c261f1c1ea50cdec6c7f\& data-hash=\&2c261f1c1ea50cdec6c7f\& class=\&member_mention\& data-title=\&@grapeot\& data-editable=\&true\& data-hovercard=\&p$b$2c261f1c1ea50cdec6c7f\&\u003E@grapeot\u003C\u002Fa\u003E 引发的。\u003Ca href=\&http:\u002F\u002Fwww.zhihu.com\u002Fpeople\u002F2c261f1c1ea50cdec6c7f\& data-hash=\&2c261f1c1ea50cdec6c7f\& class=\&member_mention\& data-title=\&@grapeot\& data-editable=\&true\& data-hovercard=\&p$b$2c261f1c1ea50cdec6c7f\&\u003E@grapeot\u003C\u002Fa\u003E 是谁?五年前在fb实习时,坐在我对过道的同一个组的哥们,目前在知乎上有2万多个关注者。他的赞带来了\u003Ca href=\&http:\u002F\u002Fwww.zhihu.com\u002Fpeople\u002Fbd9e16d5c0f6a8329205\& data-hash=\&bd9e16d5c0f6a8329205\& class=\&member_mention\& data-hovercard=\&p$b$bd9e16d5c0f6a8329205\& data-editable=\&true\& data-title=\&@熊辰炎\&\u003E@熊辰炎\u003C\u002Fa\u003E , CMU机器学习大神的赞,这个赞又进一步带来了其他大v的赞。\u003C\u002Fp\u003E\u003Cbr\u003E\u003Cimg src=\&v2-7ef76d21fdaba10f3ce0aaf46a72c2e8.png\& data-rawwidth=\&1368\& data-rawheight=\&372\&\u003E\u003Ch1\u003E3500个赞\u003C\u002Fh1\u003E\u003Cp\u003E接下来看看,达到千赞需要哪些大v的加持。这里选取了前3500个赞作为截点,是因为到3500赞的时候,已经收到了知乎的站内信通知,被官方微博跟知乎日报推送了。在那之后的传播途径,就已经不再局限于点赞所带来的触发量了。\u003C\u002Fp\u003E\u003Cp\u003E第一步,导入数据!额,这黑漆漆的一片..啥玩意...\u003C\u002Fp\u003E\u003Cimg src=\&v2-00321bfef6de5117afa75ec45246ac6e.png\& data-rawwidth=\&616\& data-rawheight=\&532\&\u003E\u003Cp\u003E调整一下布局,看着还挺有美感的,有种现代行为艺术家泼墨的风采,打算打印出来挂在家里当壁画了。\u003C\u002Fp\u003E\u003Cimg src=\&v2-b47ec8a02fd6e54dcc07d9.png\& data-rawwidth=\&1156\& data-rawheight=\&1216\&\u003E\u003Cp\u003E给点分类,上色,根据有效转化量设置权重,调整点的大小。\u003C\u002Fp\u003E\u003Cimg src=\&v2-7bad9f4ef2faa02cefb6c3b.png\& data-rawwidth=\&1178\& data-rawheight=\&1200\&\u003E有点小激动,让我们加上标签,看看关键人物都是谁!\u003Cbr\u003E\u003Cimg src=\&v2-82a0ef16b66e173c4c023bc2bb3889cd.png\& data-rawwidth=\&1319\& data-rawheight=\&1185\&\u003E\u003Cp\u003E额...这是怎么回事...密密麻麻看不见了要...那么过滤一下,只有带来有效转化数量大于500的节点,才显示标签。这样是不是清爽多了!咦,右下角的imike是谁?说脱口秀的那个老外也来知乎了?点开主页一看... \u003Ca data-hash=\&8bb3b9cd605bf\& href=\&http:\u002F\u002Fwww.zhihu.com\u002Fpeople\u002F8bb3b9cd605bf\& class=\&member_mention\& data-hovercard=\&p$b$8bb3b9cd605bf\& data-editable=\&true\& data-title=\&@张亮\&\u003E@张亮\u003C\u002Fa\u003E,知乎联合创始人!!!排名第二的id看着也好陌生,让我来读一读...\u003Ca href=\&http:\u002F\u002Fwww.zhihu.com\u002Fpeople\u002Faa416d0a4eeef7\& data-hash=\&aa416d0a4eeef7\& class=\&member_mention\& data-hovercard=\&p$b$aa416d0a4eeef7\& data-editable=\&true\& data-title=\&@滕腾\&\u003E@滕腾\u003C\u002Fa\u003E
???what??被偶像临幸了?!!排名第三的jeffz又是哪位,认识好多个叫jeff的童鞋,但是印象中都不太上知乎呀...打开主页,\u003Ca href=\&http:\u002F\u002Fwww.zhihu.com\u002Fpeople\u002F78e3b2ae1be4ab038a6e\& data-hash=\&78e3b2ae1be4ab038a6e\& class=\&member_mention\& data-title=\&@赵劼\& data-hovercard=\&p$b$78e3b2ae1be4ab038a6e\& data-editable=\&true\&\u003E@赵劼\u003C\u002Fa\u003E
知乎“温赵轮”三大软狗之一!!!evanyou咦,这个感觉有点眼熟!对!vuejs的作者, \u003Ca href=\&http:\u002F\u002Fwww.zhihu.com\u002Fpeople\u002Fcfdec6226ece879d2571fbcf\& data-hash=\&cfdec6226ece879d2571fbcf\& class=\&member_mention\& data-hovercard=\&p$b$cfdec6226ece879d2571fbcf\& data-editable=\&true\& data-title=\&@尤雨溪\&\u003E@尤雨溪\u003C\u002Fa\u003E
!!kaiqu这个我认识!\u003Ca href=\&http:\u002F\u002Fwww.zhihu.com\u002Fpeople\u002F563d7c2ad2de1f7ae7c07d35e734293d\& data-hash=\&563d7c2ad2de1f7ae7c07d35e734293d\& class=\&member_mention\& data-title=\&@曲凯\& data-hovercard=\&p$b$563d7c2ad2de1f7ae7c07d35e734293d\& data-editable=\&true\&\u003E@曲凯\u003C\u002Fa\u003E 老师!微信大号“42章经”的拥有者,VC界的网红!就不一一举例了,基本上点开每个ID,都会被背后的主人给吓到....这篇文章的受众,显然已经横跨了创业圈,媒体圈,科技圈,VC圈等各大圈子,这时候再不火没天理啊。 \u003C\u002Fp\u003E\u003Cbr\u003E\u003Cp\u003E还记得在100赞里出现的几个关键ID嘛?grapeot, xiong-cheng-yan, quartz 等等,也都在这个榜单里出现了。那么新出现的这些大v,又都是谁带来的呢。回去重新看原始数据,基本上每个ID跟grapeot之间,都只间隔了一到两个中间人。也就是说,grapeot尽管在这张图中变成了一个小圆圈,但依旧扮演了ancestor(祖先节点)的角色。\u003C\u002Fp\u003E\u003Cimg src=\&v2-0a6ffd838cdcf4f9ef3bbb.png\& data-rawwidth=\&1320\& data-rawheight=\&1145\&\u003E\u003Cimg src=\&v2-7da0e6d3b47f7afbd094bc1d.png\& data-rawwidth=\&480\& data-rawheight=\&914\&\u003E\u003Cbr\u003E\u003Ch1\u003E15000赞\u003C\u002Fh1\u003E\u003Cp\u003E截止至我写爬虫的时候,大概有15000个赞左右。而此时因为知乎日报、微博、以及微信上的转载,已经很难界定后继的赞是因为什么原因进来的了。跟3500个赞采取了一样的数据处理过程,看看就好。\u003C\u002Fp\u003E\u003Cimg src=\&v2-c631153abf6.png\& data-rawwidth=\&1249\& data-rawheight=\&1047\&\u003E\u003Cbr\u003E\u003Ch1\u003E故事梗概\u003C\u002Fh1\u003E现在让我们一起来还原一下故事的梗概。周日的一个晚上,一个知乎小透明在刷完剧之后,写篇文章就睡觉去了,睡之前还是零赞。过了几个小时,在另外一个时区的微信好友grapeot上线了,并点了个赞。然后,引发了一众计算机圈子的大神们点赞,又进一步引发了张亮、好奇实验室等各界大V的赞,从而触发了网络效应。而grapeot作为最早在评论区留言的群众,也获得了评论千赞的成就。\u003Cp\u003E这个故事告诉了我们,想在知乎火一把要怎么做?&&&&&& 请珍惜实习时坐在你过道的小伙伴 &&&&&& 找到你的知乎大V朋友,并找到TA跟TA的小伙伴们都关注的领域,然后等着你的大V朋友来点赞 &&&&&& 好吧,我承认我编不下去了,完全就是歪打正着,再让我来一篇万赞肯定是写不出来了。。。\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp\u003E附:\u003C\u002Fp\u003E\u003Col\u003E\u003Cli\u003E知乎数据爬取的部分采用了github repo: \u003Ca href=\&https:\u002F\u002Fgithub.com\u002F7sDream\u002Fzhihu-oauth\& data-editable=\&true\& data-title=\&7sDream\u002Fzhihu-oauth\& class=\&\&\u003E7sDream\u002Fzhihu-oauth\u003C\u002Fa\u003E,在此致敬!作者也在知乎上, id \u003Ca href=\&http:\u002F\u002Fwww.zhihu.com\u002Fpeople\u002Fef7be83f9f1fcab3adfa7a6a1f510427\& data-hash=\&ef7be83f9f1fcab3adfa7a6a1f510427\& class=\&member_mention\& data-hovercard=\&p$b$ef7be83f9f1fcab3adfa7a6a1f510427\& data-editable=\&true\& data-title=\&@7sDream\&\u003E@7sDream\u003C\u002Fa\u003E 。\u003C\u002Fli\u003E\u003Cli\u003E图像生成采用了\u003Ca href=\&https:\u002F\u002Fgephi.org\u002F\& class=\&\& data-editable=\&true\& data-title=\&Gephi\&\u003EGephi\u003C\u002Fa\u003E,第一次尝试数据可视化,随手找了个开源软件。从效果上来看,还是相当不错的,在youtube上找段教学视频看半个小时,就可以上手画图了。唯一的问题是这软件有不太稳定,经常点着点着就死掉了,需要记住随时保存,然后不停地重启进程。t推荐这个视频 \u003Ca href=\&https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=snPR8CwPld0\& data-editable=\&true\& data-title=\&youtube.com 的页面\& class=\&\&\u003Ehttps:\u002F\u002Fwww.youtube.com\u002Fwatch?v=snPR8CwPld0\u003C\u002Fa\u003E,手把手教会你怎么画出一个彩色的图。\u003C\u002Fli\u003E\u003Cli\u003E对于所有在文中出现的ID, 都表示衷心的感谢!!\u003C\u002Fli\u003E\u003C\u002Fol\u003E\u003Cp\u003E附附(提问区):\u003C\u002Fp\u003E\u003Col\u003E\u003Cli\u003E某大神指出,是否可以跑个根据时间的pagerank,定量地描述传播过程中的贡献大小。不确定这是否一定需要timestamp,还是具有先后顺序就可以判断?\u003C\u002Fli\u003E\u003Cli\u003E有什么方法可以方便地提取出点赞的timestamp?已知能从每个用户的点赞记录里面爬出来,但是这实在有点繁琐...\u003C\u002Fli\u003E\u003C\u002Fol\u003E\u003Cp\u003E++++++++++++++++++\u003C\u002Fp\u003E\u003Cp\u003E更新:评论区的好多同学对于自己是第几个点赞的,以及自己的影响力是多少很感兴趣,附上结果,\u003Ca href=\&http:\u002F\u002Fcodelab.hiwecloud.com\u002Fzhihu\& data-editable=\&true\& data-title=\&hiwecloud.com 的页面\&\u003Ehttp:\u002F\u002Fcodelab.hiwecloud.com\u002Fzhihu\u003C\u002Fa\u003E,搜索自己的id就可以看到啦。页面简陋,请见谅~\u003C\u002Fp\u003E&,&updated&:new Date(&T01:07:12.000Z&),&canComment&:false,&commentPermission&:&anyone&,&commentCount&:138,&likeCount&:1820,&state&:&published&,&isLiked&:false,&slug&:&&,&isTitleImageFullScreen&:false,&rating&:&none&,&sourceUrl&:&&,&publishedTime&:&T09:07:12+08:00&,&links&:{&comments&:&\u002Fapi\u002Fposts\u002F2Fcomments&},&url&:&\u002Fp\u002F&,&titleImage&:&https:\u002F\u002Fpic2.zhimg.com\u002Fv2-e215c67e4b110cfacd8a831_r.jpg&,&summary&:&&,&href&:&\u002Fapi\u002Fposts\u002F&,&meta&:{&previous&:nu}

我要回帖

更多关于 gifimageview 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信