08 2011 档案

摘要:对一系列文章进行自动聚类可以做为基于内容的推荐引擎的基础,如果要实现文本的自动聚类,首先按照本系列5中所介绍的,对文章进行分词,然后计算得出文章的术语向量表示,即求文章中每个不同的单词以其所对应的TF*IDF,具体计算方法如5中所示。目前文本自动聚类算法中,用得最多是KMean算法,本文中就介绍KMean算法的应用。当然,KMean算法可以通过调用Mahout或WEKA这两个开源的机器学习算法库来实现,但是在这类算法中需要准备比较复杂的输入文件,预处理过程比较复杂,还有一点,我们可能在实际应用中要对KMean算法进行调整,这样自己编写KMean算法重加有助于我们对文本聚类算法的理解。我们首先定 阅读全文
posted @ 2011-08-24 16:28 java中文技术 阅读(589) 评论(0) 推荐(0) 编辑
摘要:第一批员工吴言把自己租的房子换成了一个临街的两室两厅的单元房,里边只有简单的装修,并且没有家居和家电,虽然每月3500的租金有些贵,但是却可以同时解决吴言住宿和办公问题,吴言还是觉得挺值的。吴言首先买了个简易的地毯,铺在了原本是地砖的地上,因为这样可以防止电脑椅来回移动时产生的噪音影响邻居。然后吴言在比较大的客厅和主卧室里各摆上了四个电脑桌,这样可以方便大家的交流,同时也保证了大家都有相对隐密的个人空间,吴言觉得自己原来公司的开放式办公环境,一点私密空间都没有,感觉很不人性化,当这次自己可以做主时,在成本允许的情况下,他想尽量做到人性化。将电源线和网线都从地毯下穿过,并给每个桌子上配置了电脑, 阅读全文
posted @ 2011-08-24 12:01 java中文技术 阅读(180) 评论(0) 推荐(0) 编辑
摘要:蝴蝶结效应吴言昨天晚上熬得很晚,早上是被自己的手机来电惊醒的。谁这么早就来电话,真讨厌!吴言心里嘟囔着,不情愿的从床上爬起来,下意识的看了一下表,原来已经十点多了,已经不算早了。吴言拿起手机,无精打彩的说道:“喂?”“老吴,我是杨子健!现在说话方便吗?”原来是杨子健,他和吴言原来是一个项目组的,来公司三年多,也算是老同事了,正是他接手了吴言原来的推荐引擎开发工作。难道是自己的代码有问题他搞不定?想到离职时任总的所做所为,吴言真的是不想管了,可是想到这样会使杨子健很难受,杨子健这个人还不错,何苦为难他呢!就在吴言确认对方是杨子健的这一瞬间,吴言做出这个决定:他决定如果不是太困难的事情,就接下来, 阅读全文
posted @ 2011-08-22 13:16 java中文技术 阅读(151) 评论(0) 推荐(0) 编辑
摘要:无论是要进行全文检索,还是对文章进行自动聚类分析,都需要将文章表示为术语向量(Term Vector),在Lucene内部就是通过术语向量来对文章进行索引和搜索的,但是Lucene没有向外提供合适的术语向量计算接口,所以对术语向量计算还必须我们自己来做。术语向量解述众所周知,一篇文章由一个个的单词组成,我们在进行文本处理时,首先进行中文分词,包括去除“的、地、得”等常用停止词,对关键词加上同义词,如缩写和全称,如果是英文可能还需要变为小写,去除复数和过去分词等,可能还需要提取词根,总之经过上述步聚的预处理,文章将变成由一系列单词组成的字符串数组。对一系统中的每一篇文章,我们首先计算每个单词的出 阅读全文
posted @ 2011-08-19 16:39 java中文技术 阅读(235) 评论(0) 推荐(0) 编辑
摘要:股权激励之惑终于通过程序可以把京成商城所有产品的页面全都通过网络爬虫程序全部下载到本地来了,吴言心满意足坐在了电脑椅的靠背上,这才发现自己已经足足一动不动的在这编了将近五个小时的程序了,好累呀,吴言很有成就感地伸了一个懒腰。“哎呦!”吴言不小心把堆在电脑桌上最上面的一本书碰到的地上,低头一看,那本书打开了扣在地上,原来是于丹的论语心得。吴言弯腰把书捡了起来,一看翻开的章节正是在讲“君子不器”的那一页,此时看到这句,吴言感慨颇深。记得自己刚开始工作时,对于工作的认识只是VC、VB、Java以及数据库读写等,没有独立工作的机会,那时的自己还不能称之为器,因为还缺乏独立工作的能力。后来,自己对工作的 阅读全文
posted @ 2011-08-19 08:59 java中文技术 阅读(140) 评论(0) 推荐(0) 编辑
摘要:创业合作伙伴吴言最近常在创业啪网站上活动,开始这个网站吸引吴言的地方是这里有无数创投业大佬,吴言想通过这里接触到他们,但是后来发现想在这里接触投资人,显然是水中捞月镜中摘花,成功的概率与直接买彩票独中5亿差不多。但是创业啪网站上还活跃着很多草根创业者,创业者之间互相交流,给吴言的感觉似乎可以说不定在什么时侯可以擦出火花来。吴言在创业啪网站上认识了徐德才,吴言的第一印象是这个名字很好,德才兼备,其次是他就是做销售的,目前在金蝶北方区做大客户销售,按照风投们的观点,他们正好可以互补,一个负责技术一个负责市场。正好徐德才对吴言的创业项目社会化电子商务也很感兴趣,双方在网上互相交流得非常好,所以决定在 阅读全文
posted @ 2011-08-18 08:47 java中文技术 阅读(155) 评论(0) 推荐(0) 编辑
摘要:商业计划书虽然吴言一直觉得系统开发才是硬道理,其他神马都是浮云。但是在创业网站上,各位牛人们一遍遍重复着的商业计划书的重要性,对吴言还是产生了影响。虽然商业计划书融资价值无限接近于零,但是一个商业计划书可以为自己理清创业思路,这点吴言还是认可的。况且,万一真的通过商业计划书融到资,那就更美了。吴言不准备写几十页那种长篇大论的商业计划书,因为一件事情说清楚两三页就足够了,VC们时间都很紧张,两三页他们可能都会嫌长。虽然也有观点说,写商业计划书体现你的态度,更有甚者,有人还声称,有创业团队就是凭在上百页的商业计划书,没有一个错别字,没有一个标点符号失误,得到投资人首肯而成功融资的。对于这些吴言始终 阅读全文
posted @ 2011-08-17 09:04 java中文技术 阅读(134) 评论(0) 推荐(0) 编辑
摘要:Lucene对文本解析是作为全文索引及全文检索的预处理形式出现的,因此在一般的Lucene文档中,这一部分都不是重点,往往一带而过,但是对于要建立基于文本的内容推荐引擎来说,却是相当关键的一步,因此有必要认真研究一下Lucene对文解析的过程。Lucene对文本的解析对用户的接口是Analyzer的某个子类,Lucene内置了几个子类,但是对于英文来说StandardAnalyzer是最常用的一个子类,可以处理一般英文的文解析功能。但是对于汉字而言,Lucene提供了两个扩展包,一个是CJKAnalyzer和SmartChineseAnalyzer,其中SmartAnalyzer对处理中文分词 阅读全文
posted @ 2011-08-16 16:37 java中文技术 阅读(1446) 评论(1) 推荐(0) 编辑
摘要:辞职创业吴言在经过了几天的反复思考,终于下定决心辞职创业了。做出这个决定真的需要很大的勇气,因为自己的年纪做为程序员来说,已经属于很高龄了,如果创业失败几乎没有退路,再找工作将很难,合适的工作几乎是不可能的。但是如果一辈子就这么重复着当下的生活,他又不甘心,非常的不甘心,放弃一切也要尝试一把的诱惑使他难以抗拒。整整一个上午,吴言都在早已写好的辞职邮件界面上,他需要鼓足勇气才能按下发送按钮,但是每一次他都在最后一刻放弃了,终于在近乎于误操作的情形下,他按下了发送按钮。终于,吴言如释重负,完成了一件大事。但是心里也有了一丝的不安,创业失败和失业这些词时常在脑海里闪现,每到想起这些,吴言都会觉得脊背 阅读全文
posted @ 2011-08-16 08:37 java中文技术 阅读(139) 评论(0) 推荐(0) 编辑
摘要:基于内容的推荐引擎有两种实现途径,一种是根据条目的元数据(可以将元数据理解为属性),另一种是根据条目的文本描述信息。本系列中将先描述基于条目描述信息的全文检索实现方式,然后描述基于元数据的内容推荐引擎实现方式。对于基于条目文本描述信息的内容推荐引擎,目前有很多资料可以参考,基本步聚是先对文本内容进行分词,包括提取出单词、去掉常用词如的地得、加入同意词、对英语还有去掉复数形式和过去分词形式等;第二步是计算各个词在每篇文章中的出现频率,以及在所有文章中的出现频率,即TF/IDF;第三步计算文章向量;最后是利用自动聚类算法,对条目进行聚类,这样就可以实现向用户推荐同类产品的需求了。但是在这里有一个非 阅读全文
posted @ 2011-08-12 16:34 java中文技术 阅读(295) 评论(0) 推荐(0) 编辑
摘要:创业餐厅正在吴言为能有机会和VC面谈这一问题一愁莫展的时候,事情突然有了转机,吴言听人说,中关村这边有家创业餐厅,创业者不仅可以在里面办公,还可以在那里很方便的见到著名投资人,而且那里的投资人都对早期项目感兴趣,并且这个地方刚办几个月,就有好几个在那里长期办公的团队获得了天使投资。竟然还有这样的机构,对自己这样的创业者来说,简直是再合适不过了,所以吴言决定要去那里试一试。吴言一大早就赶到了创业餐厅,吴言刚到那就被门口的标语吸引住了,上面写着:“VC欢迎你,有梦想谁都了不起,互联网创造奇迹”。感觉真亲切,同时又似曾相识,“呕,这是奥运歌曲北京欢迎你嘛!”吴言恍然大悟,但是用在这里显得格外贴切。在 阅读全文
posted @ 2011-08-12 11:46 java中文技术 阅读(124) 评论(0) 推荐(0) 编辑
摘要:正向前一篇分析的,在全文检索、数据挖掘、推荐引擎的后台系统中,通常可以提供三种类型的服务:同步服务、异步服务、后台服务。对于同步服务可以采用Web Service、XML Over HTTP或Restful服务,我在项目中就采用了Jason over HTTP,主要考虑Javascript解析Json效率较高,但是还要看各人喜好。对于异步服务在实现上,如果选用Java做为编程语言,基本就需要选择JMS了。而后台服务主要是定时任务,可以采用新版JEE中的Timer服务,或直接使用Timer。在JMS实现异步服务中,最简单的方法是采用消息驱动Bean来实现,但是JMS中有两种机制:一种是Queue 阅读全文
posted @ 2011-08-11 16:08 java中文技术 阅读(153) 评论(0) 推荐(0) 编辑
摘要:山寨工场奇遇记吴言这几天感觉自己像一台多线程运行的机器,一边是公司没完没了的系统升级需求,一边是自己社会化电子商务实现,还有就是恶补各种创业知识,吴言渐渐感到力不从心了,但是他依然坚持着。这不,今天刚打开网络,在浏览创业新闻时,就被一条新闻稿给吸引了,新闻稿讲的是北京山寨工场,创始人钟清时是全球五百强顶级企业全球高级副总裁,在两年前,在病中,在不影响企业日常管理工作的情况下,利用业余时间,拖着病体,在两三周内就融到了10亿美金,在当时更有山西煤老、浙商以及各自色爆发户,甚至还有地方政府大员,跪求投资而没有得到允许。由于山寨工场开创了中国创投业的新时代,开办之初就火的一塌糊涂。由于希望加入的简历 阅读全文
posted @ 2011-08-11 08:44 java中文技术 阅读(140) 评论(0) 推荐(0) 编辑
摘要:互联网创业葵花宝典吴言这几天参加了无数创业交流活动,看了无数的创业网站,但是本来很清晰的创业思路,恶补了这些创业秘诀和宝典之后,变得越来越糊涂了。吴言决定请教高人来指点一下,自然他想到了同学小A,小A是他上学睡他下铺的兄弟,真名叫陈永强,因为上学时总是考试都得A,所以才得到小A的称号。小A毕业后一直做销售工作,开始时小A经常蹭吴言的饭局和房子住,不过小A在毕业三五年之后,突然发迹,开始买了辆Sail,后来又换成了奥迪A6L,还做到了公司销售副总的位置。房子也从天通苑的二手经济适用房变成了雪梨澳乡的别墅。不过他们还始终保持着比较紧密的联系,小A的老婆就是小A在一个下雨天,用车送吴言参加老乡会,然 阅读全文
posted @ 2011-08-10 08:18 java中文技术 阅读(147) 评论(0) 推荐(0) 编辑
摘要:在后web2.0时代,简单的允许用户产生内容,连接用户组成社交网络,满足用户个性化需求,已经变成各个网站的标配,不可能成为网站的特色和竞争优势了。然而,随着用户产生内容的增多,用户与系统交互手段的丰富,用户可供选择的选项的增多,用户迫切需要一种可以处理当前信息爆炸时代的工具,可以迅速找到自己想要的内容,更加容易的做出正确的决策,因此在后web2.0时代,全文检索、数据挖掘、推荐引擎的应用,将是各大网站下一轮竞争的焦点。但是应用这三种技术需要一个统一的技术架构,在这个统一的架构下,才能将全文检索、数据挖掘、推荐引擎的功能发挥出来。我们将全文检索、数据挖掘、推荐引擎统成为商业智能系统,而与用户交互 阅读全文
posted @ 2011-08-09 17:46 java中文技术 阅读(524) 评论(0) 推荐(0) 编辑
摘要:OpenGL ES纹理处理使用OpenGL ES的纹理可以将图片贴到3D模型上,从而生成逼真的3D场景。纹理是以图片文件形式存在的,图片被归一化为(0.0, 0.0)到(1.0, 1.0)的矩形区域,通常一个3D物体具有一个纹理文件即可,每处三角片所使用的纹理可以通过uv坐标来指定。通过三角片每个顶点在归一化后图片中的坐标,可以从纹理图片中取出相应的三角形区域,OpenGL ES将该区域进行放缩旋转后绘制到三角片上。具体处理代码如下所示:obj = new MgnavObject(true, true, false); // 第一个参数表示使用纹理坐标,第三个参数表示不使用颜色下面代码导入纹理 阅读全文
posted @ 2011-08-09 07:24 java中文技术 阅读(215) 评论(0) 推荐(0) 编辑
摘要:OpenGL ES颜色处理在OpenGL ES编程中非常重要的概念就是颜色和纹理,通过这些元素可以创造出各种漂亮的场景。下面就来看一下在min3d中怎样显示颜色和纹理。显示颜色相对来说比较简单,一种情况是整个面都具有同样的颜色,这时该面上所有顶点的颜色值相同,如果同一面上各个顶点的颜色不同,将实现颜色渐变的效果。代码如下:obj = new MgnavObject(false, true, true); // 第一个参数表示禁止使用纹理,第三个参数是使用颜色下面是加入立方体前面的代码:// 1. frontnormalX = 0f; normalY = 0f; normalZ = 1.0f;c 阅读全文
posted @ 2011-08-09 07:21 java中文技术 阅读(289) 评论(0) 推荐(0) 编辑
摘要:在上一篇文章中,我们看到可以通过很少的代码,就可以在屏幕上显示出一个立方体,相当于min3d中的Hello World程序。但是,对于OpenGL ES编程来说,我们通常需要处理的数据是三角片,可惜使用min3d这样的引擎把这些细节给隐藏了。在这里我们自己手动生成一个放在原点上的立方体,给出顶点、三角片、法向量,然后由min3d引擎来显示,这样可以更深入理解OpenGL ES的工作原理。具体实现如下代码所示:public MgnavObject(boolean useUvs, boolean useNormals, boolean useVertexColors) {super(4*6, 2* 阅读全文
posted @ 2011-08-09 07:20 java中文技术 阅读(1389) 评论(0) 推荐(0) 编辑