最老程序员创业札记:全文检索、数据挖掘、推荐引擎应用2 吴言的直接上司张宏宇比他小10岁是一个北大毕业的硕士头脑相当灵活办事效率非常高常常别人还不明白是怎么回事的时侯他就恍然大悟了。他的头衔是研发总监实际上就是研发部门经理手下有20几个人他还有一个漂亮的女朋友靓照就放在笔记本的桌面上每次开会时都让这些程序员们眼馋得直流口水。哎天下的好事怎么都让他一人占尽了呢事情的起因很偶然公司准备在网上商城开始销售化妆品需要研发部门提供推荐功能给用户推荐适合她们需求的化妆品。但是当前的推荐引擎是通过海量数据挖掘产生推荐结果的因此需要对现有推荐算法进行改进。但是张宏宇在会上直接承诺在本周内搞定。由于吴言比较资深列席了这次管理会议在会上提出了不同的意见吴言认为应该采用基于内容的推荐引擎而目前公司采用的是基于机器学习的推荐引擎因此需要更长的时间进行预研才能找出合理的实现方案两人甚至还发生了颇为激烈的争吵但是管理层还是选择了相信年轻有为的研发总监拍板本周推出这个功能。吴言回到坐位上心情一如既往的不太好不过已经习惯了高层从来没有听取过底层程序员的意见所谓听取一线技术人员意见也只是个形式而已。哎想想自己的同学小A现在已经做到研发副总了还有小B做为华北区销售总监早就老婆开宝马自己开奔驰了......再看看自己还在这里的最底层郁闷着。吴言正在坐位上胡思乱想忽然有人从背后拍了一下他的肩膀把他一下从暇想中拉回了现实轻轻惊叫了一声回头一看原来是上司张宏宇。“对不起老吴吓了你一跳吧”张宏宇轻松的说着。“我想这周还剩下两天了我们最好今天就想出一个临时解决方案我陪你一起加下班你这边没问题吧”吴言心中暗想又来这一套明明自己瞎承诺却让我来替你摆平活都我做回头功劳都是你的。虽然心里不满但是吴言还是很勉强的说“应该没问题。”张宏宇得到了自己需要的答复欢快地说“太好了谢谢谢谢”然后风一般的回到了他在窗边有个简易隔断的老板桌那去了。整个下午及晚上吴言都在座位上编写初始数据、初始数据导入程序、推荐引擎新接口然后是测试调试查找BUG。那边张宏宇又是去到研发副总王永辉王总的大办公室去聊天请王总吃晚饭期间不时过来问一下吴言进展情况。时间过得真快转眼已经十一点多了终于通过编写辅助数据可以实现通过机器学习推荐算法向用户推荐化妆品的原型了张宏宇看到了更是兴奋异常连说“太好了太好了辛苦辛苦赶紧回家休息吧明天还得上班呢今天打车回去明天拿票过来报销”听着这些俗套的话吴言心里没有任何感觉。坐在出租车里吴言看着车窗外如水的夜色心中一个声音强烈的叫着再也不能这样了我要改变虽然这并不是第一次但是这次却是最强烈的一次。整整一夜吴言被这个念头折磨得难以入睡我要怎么改变现状呢再换一份工作天下乌鸦一般黑新公司未必比现在的强多少。出路出路......是不是可以创业这个念头在吴言的头脑里一闪兴奋得几乎使他从床上跳起来虽然创业的念头以前也有过但是这一次却像是一个处在黑暗中的人看到远方的一盏明灯一样整个人都亢奋起来。第二天吴言起了个大早不到八点就来到了公司公司里还空无一人他要开始准备创业了这个想法只要想想就让他觉得很兴奋。程序员创业准备过程十分简单吴言从产生创业想法到确定创业方向也就只有两三个小时的时间接下来就是开干了。首先是到Google上搜创业方向从一大堆的搜索结果中吴言注意到了SNS不错这造就了人人网、开心网、新浪微博然后是电子商务不错电子商务造就了马云这个当代的创业教父级人物。忽然他看到了社会化电子商务电子商务与SNS的融合社交购物元年好像是当前的一个热点。搜一下社会化电子商务发现已经有人在女装、化妆品等方面已经开始做了不过其他行业还未见涉及。社会化电子商务可以用到他的全文检索、数据挖掘、推荐引擎的技术背景同时只需要聚合其他电子商务网站内容不用考虑进销存等让人犯愁的事。对!就做这个方向。但是电子商务的种类很多到底做哪个类别呢服装、化妆品等等自己不熟悉而且已经有人在做了不如做3C电器吧聚合京东、卓越、库巴、500城等电器商城能让消费者直接比较同一商品在不同网上商城的价格而不用到各个商城去比较这本身对消费者就有意义。确定了创业大方向后说干就干第一件事就是实现从各大电器商城网页抓取功能网页抓取可以使用Apache的HttpClient网页分析可以采用Jsoup但是出于程序员的本能发现只需要十几行代码就可以实现的网页抓取功能用Apache HttpClient光下载所需软件就需要几M索性就自己写吧从头开始的成就感可比采用开源软件强烈多了。在Eclipse下建立一个新工程创建网络爬虫接口WebCrawler然后建立专门针对京东的网络爬虫类JdCrawler实现接口方法getContent输入京东商城的网址京东(JD.COM)-正品低价、品质保障、配送及时、轻松购物首先发现京东的首页好大几经调整Buffer的大小终于完整下载下来京东商城首页第一眼就发现京东商城利用HTML中的meta属性增加了关键词的密度算是一种搜索引擎优化SEO的实用小技巧吧。然后是建立开源项目为什么要建开源项目呢因为创业这事成功率很低即使不成功能够做一个不错的开源软件也是不错的。吴言首先尝试了googlecode注册用户创建项目都很顺利但是当要上传代码时就发现有问题了因为国内好像屏爱蔽了获取SVN密码的链接没有密码当然就没有办法上传了。吴言只好选择在Sourceforge上创建了自己的开源项目sep3c选用SVN作为版本控制工具项目介绍及WiKi都采用了英文虽然可能有些词不达意但是他想把这个项目做成国际级的项目所以必须采用英文。