最老程序员创业札记:全文检索、数据挖掘、推荐引擎应用2

吴言的直接上司张宏宇比他小10岁,是一个北大毕业的硕士,头脑相当灵活,办事效率非常高,常常别人还不明白是怎么回事的时侯他就恍然大悟了。他的头衔是研发总监,实际上就是研发部门经理,手下有20几个人,他还有一个漂亮的女朋友,靓照就放在笔记本的桌面上,每次开会时,都让这些程序员们眼馋得直流口水。哎,天下的好事怎么都让他一人占尽了呢!

事情的起因很偶然,公司准备在网上商城开始销售化妆品,需要研发部门提供推荐功能,给用户推荐适合她们需求的化妆品。但是当前的推荐引擎是通过海量数据挖掘产生推荐结果的,因此需要对现有推荐算法进行改进。但是张宏宇在会上直接承诺在本周内搞定。由于吴言比较资深,列席了这次管理会议,在会上提出了不同的意见,吴言认为应该采用基于内容的推荐引擎,而目前公司采用的是基于机器学习的推荐引擎,因此需要更长的时间进行预研,才能找出合理的实现方案,两人甚至还发生了颇为激烈的争吵,但是管理层还是选择了相信年轻有为的研发总监,拍板本周推出这个功能。

吴言回到坐位上,心情一如既往的不太好,不过已经习惯了,高层从来没有听取过底层程序员的意见,所谓听取一线技术人员意见也只是个形式而已。哎,想想自己的同学小A,现在已经做到研发副总了,还有小B,做为华北区销售总监,早就老婆开宝马自己开奔驰了......再看看自己,还在这里的最底层郁闷着。

吴言正在坐位上胡思乱想,忽然有人从背后拍了一下他的肩膀,把他一下从暇想中拉回了现实,轻轻惊叫了一声,回头一看,原来是上司张宏宇。

“对不起,老吴!吓了你一跳吧!”张宏宇轻松的说着。“我想这周还剩下两天了,我们最好今天就想出一个临时解决方案,我陪你一起加下班,你这边没问题吧!”

吴言心中暗想,又来这一套,明明自己瞎承诺,却让我来替你摆平,活都我做回头功劳都是你的。虽然心里不满,但是吴言还是很勉强的说:“应该没问题。”张宏宇得到了自己需要的答复,欢快地说:“太好了,谢谢!谢谢!”,然后风一般的回到了他在窗边有个简易隔断的老板桌那去了。

整个下午及晚上,吴言都在座位上编写初始数据、初始数据导入程序、推荐引擎新接口,然后是测试,调试查找BUG。那边张宏宇又是去到研发副总王永辉王总的大办公室去聊天,请王总吃晚饭,期间不时过来问一下吴言进展情况。

时间过得真快,转眼已经十一点多了,终于通过编写辅助数据,可以实现通过机器学习推荐算法向用户推荐化妆品的原型了,张宏宇看到了更是兴奋异常,连说:“太好了!太好了!辛苦!辛苦!赶紧回家休息吧!明天还得上班呢!今天打车回去,明天拿票过来报销!”

听着这些俗套的话,吴言心里没有任何感觉。坐在出租车里,吴言看着车窗外如水的夜色,心中一个声音强烈的叫着,再也不能这样了,我要改变!虽然这并不是第一次,但是这次却是最强烈的一次。

整整一夜,吴言被这个念头折磨得难以入睡,我要怎么改变现状呢?再换一份工作?天下乌鸦一般黑,新公司未必比现在的强多少。出路?出路?......是不是可以创业?这个念头在吴言的头脑里一闪,兴奋得几乎使他从床上跳起来,虽然创业的念头以前也有过,但是这一次却像是一个处在黑暗中的人,看到远方的一盏明灯一样,整个人都亢奋起来。

第二天吴言起了个大早,不到八点就来到了公司,公司里还空无一人,他要开始准备创业了,这个想法只要想想就让他觉得很兴奋。程序员创业准备过程十分简单,吴言从产生创业想法,到确定创业方向,也就只有两三个小时的时间,接下来就是开干了。

首先是到Google上搜创业方向,从一大堆的搜索结果中,吴言注意到了SNS,不错这造就了人人网、开心网、新浪微博,然后是电子商务,不错电子商务造就了马云,这个当代的创业教父级人物。忽然他看到了社会化电子商务,电子商务与SNS的融合,社交购物元年,好像是当前的一个热点。搜一下社会化电子商务,发现已经有人在女装、化妆品等方面已经开始做了,不过其他行业还未见涉及。社会化电子商务可以用到他的全文检索、数据挖掘、推荐引擎的技术背景,同时只需要聚合其他电子商务网站内容,不用考虑进销存等让人犯愁的事。对!就做这个方向。但是电子商务的种类很多,到底做哪个类别呢?服装、化妆品等等自己不熟悉,而且已经有人在做了,不如做3C电器吧,聚合京东、卓越、库巴、500城等电器商城,能让消费者直接比较同一商品在不同网上商城的价格,而不用到各个商城去比较,这本身对消费者就有意义。

确定了创业大方向后,说干就干,第一件事就是实现从各大电器商城网页抓取功能,网页抓取可以使用Apache的HttpClient,网页分析可以采用Jsoup,但是出于程序员的本能,发现只需要十几行代码就可以实现的网页抓取功能,用Apache HttpClient光下载所需软件就需要几M,索性就自己写吧,从头开始的成就感可比采用开源软件强烈多了。

在Eclipse下建立一个新工程,创建网络爬虫接口WebCrawler,然后建立专门针对京东的网络爬虫类JdCrawler,实现接口方法getContent,输入京东商城的网址http://www.360buy.com/,首先发现京东的首页好大,几经调整Buffer的大小,终于完整下载下来京东商城首页,第一眼就发现,京东商城利用HTML中的meta属性,增加了关键词的密度,算是一种搜索引擎优化(SEO)的实用小技巧吧。

然后是建立开源项目,为什么要建开源项目呢?因为创业这事成功率很低,即使不成功,能够做一个不错的开源软件也是不错的。

吴言首先尝试了googlecode,注册用户创建项目都很顺利,但是当要上传代码时就发现有问题了,因为国内好像屏爱蔽了获取SVN密码的链接,没有密码,当然就没有办法上传了。

吴言只好选择在Sourceforge上创建了自己的开源项目sep3c,选用SVN作为版本控制工具,项目介绍及WiKi都采用了英文,虽然可能有些词不达意,但是他想把这个项目做成国际级的项目,所以必须采用英文。

注:与本文相关的开源项目:http://sourceforge.net/projects/sep3c 。不过项目还处于早期阶段,目前只有空项目,只有十几行网页抓取的代码,不过随着书中内容的展开,项目会逐渐具有越来越多的功能。

posted on 2011-08-05 08:10  最老程序员闫涛  阅读(10603)  评论(49编辑  收藏  举报

导航