上午北京的天如暗夜,在公司的玻璃幕前看着水珠滑落,很靠谱。
为什么我不常写blog呢?因为我总是踌躇于写得不好是要误人子弟的。作为一个工程师,越来越不信科学那一套了。
上午北京的天如暗夜,在公司的玻璃幕前看着水珠滑落,很靠谱。
为什么我不常写blog呢?因为我总是踌躇于写得不好是要误人子弟的。作为一个工程师,越来越不信科学那一套了。
From iPod touch
Technology is incredible
Our platform is finally ready for deliver.
背景
起因是万恶的IE。
因为IE在HTTP重连细节上的处理,它和python的BaseHTTPServer类存在兼容性问题:在POST操作时会造成Connection Reset。
解决方案之一,是在BaseHTTPServer中使用Connection: Keep-Alive。
但是BaseHTTPServer是一个单进程的模型,使用了长连接便不能处理并发请求了。
最终的目标是期望能够使用BaseHTTPServer及保证并发请求的处理,又提供IE的兼容性。
现在看来,不一定是IE的问题。客户端和服务器端在persistent connection的处理上存在不一致。
BaseHTTPServer在返回HTTP/1.0的情况下,单次请求完成后仍然保持连接。
尝试的方案
最终方法
def handle(self): """Handle multiple requests if necessary.""" self.close_connection = 1 self.handle_one_request() while not self.close_connection: self.handle_one_request()
改写为
def handle(self): self.handle_one_request()
目的在于保证每次HTTP请求处理完毕后,连接关闭。
否则IE中将出错
对于全网引擎,Query Analysis主要是在两个层面的分类
先说知识类别上的分类吧,这个东西在全网搜索中使用较多,本身难度也不大,比较确定。抽象说的,思路无非都是通过Query搜索结果中的文档进行分类,再balabalabala到Query,因为Query本身实在太短了。
这个方向最新的、比较有意思的论文应该是MSRA的[paper1],用的Spectral Clustering的方法,有兴趣的可以用过引用扩展阅读。
至于意图的分类,不确定性就比较大了。
首先意图如何定义?Navigational、Informational、Transcational这三个分类目标是Yahoo的同学提得[paper2],应该算Query意图分类目标定义的鼻祖了,被引用无数。但是这三个目标对于全网搜索来说也太粗犷了,对于垂直搜索的意图分析更没有可推广性。
我认为新加坡国立[paper3] 中的思路值得借鉴:将一个Query通过时效性、地域性、权威性、模糊程度四个维度进行刻画,描述的维度是可以根据具体应用进行扩充的,而且传统的 Navigational/Informational/Transcational也可以被映射到这个系统中来。这篇paper的另一个贡献在于明确了 Query意图分析是N个Binary-Class分类问题的组合,而不是一个N-Class分类问题。就我目前的所看到的数据,将Query意图分类作 为一个N-Class的分类问题本身也是不可解的。
其实Yahoo自己也是通过Binary-Classifier来做Query意图分类的,关于具体的实现在[paper4]中写的比较详细,基本上都是一些工程性的东西:想尽办法找特征,穷凶极恶的特征选择。模型?其实无所谓了,考虑到特征基本都是interdependent的,要不用CRF吧。
可以拿来做Query意图分类的特征,对于Query本身,可以分 词性、语义、词 三层。这个主要就看各家公司的资源了,没有雄厚的积累基本上提不出什么有用的信息;至于Query之外,命中结果数、用户搜索PV、命中URL中的字符 串、用户点击、命中文档内容……一切的一切,其实都能用得上,就看有多少资源available了。
最后我想说,其实资源到位了,做Query意图分析还是比较靠谱的。
欢迎各位大大和我讨论,entelechie@gmail.com
本文中提到的论文
- Randy Pausch
结尾时刘小枫写到:
这一私人事件发生在一九七五年秋天。前不久,我读到法国作曲家Ropartz的一句话:Qui nous dira la raison de vivre? 这勾起我那珍藏在茫茫心界对冬妮娅被毁灭的爱满含怜惜的经历,我仍然可以感到心在随着冬妮娅飘忽的蓝色水兵衫的 飘带颤动。我不敢想到她,一想到她,心就隐隐作痛……。
行刑队站成一排。赫拉迪克背靠营房的墙壁站着,等待开枪。有人担心墙壁沾上血迹;便吩咐囚犯朝前跨出几步。赫拉迪克可笑地联想到摄影师吩咐对象摆好姿势的情景。一滴雨水沉重地落到他一侧太阳穴,顺着面颊徐徐淌下;军士长一声吆喝,发出最后的命令。
物质世界凝固了。
枪口朝赫拉迪克集中,但即将杀他的士兵们一动不动。军士长举起的手臂停滞在一个没有完成的姿势上。一只蜜蜂在后院地砖上的影子也固定不动。风像立正似的停住。赫拉迪克试图喊叫,发出声音,扭动一下手。他明白自己动弹不得。他听不到这个受遏制的世界的最轻微的声息。他想:我在地狱里。我疯了。时间已经停滞。后来又想,果真如此的话,那么他的思维也应该停滞。他要做个试验:他背诵(嘴唇不动)维吉尔的神秘的第四首田园诗。他想那些已经遥远的士兵一定和他一样焦急;他渴望同他们沟通思想。使他惊异的是,一动不动待了这么久居然不感到疲倦,不感到眩晕。不知过了多久,他睡着了。醒来时,世界仍旧没有动静,没有声息。他脸上仍留有那滴雨水;地砖上仍有蜜蜂的影子;他喷出的烟仍浮在空中,永远不会飘散。等到赫拉迪克明白时,已经过了另“一天”。
为了完成手头的工作,他请求上帝赐给他整整一年的时间,无所不能的上帝恩准了一年。上帝为他施展了一个神秘的奇迹:德国的枪弹本应在确定的时刻结束他的生命,但在他的思想里,发布命令和执行命令的间隔持续了整整一年。先是困惑和惊愕,然后是忍受,最终是突然的感激。
除了记忆之外,他没有任何文件可用;每增添一行六音步的诗句,他都默记在心,从而达到的准确和严谨,是那些灵机一动、想出整节整节的诗、随即又忘掉的人难以企及的。他不是为后代,也不是为上帝写作烟为他对上帝的文学喜好一无所知。他殚精竭虑、一动不动、秘密地在时间的范畴里营造无形的迷宫。他把第三幕改写了两次。删除了某些过于明显的象征:例如一再重复的钟声和音乐声。没有任何干扰。有的地方删删减减,有的地方加以拓展;有时恢复了最早的构思。他对那个后院和兵营甚至产生了好感;士兵中间的一张脸促使他改变了对勒默斯塔特性格的概念。他发现福楼拜深恶痛绝的同音重复只是视觉的迷信:是书写文字的弱点和麻烦,口头文字就没有这种问题……他结束了剧本:只缺一个性质形容词了。终于找到了那个词;雨滴在他面颊上流下来。他发狂似的喊了一声,扭过脸,四颗枪弹把他打倒在地。
亚罗米尔·赫拉迪克死于3月29日上午九时零二分。
- 秘密的奇迹 博尔赫斯
与其实我想接近一些东西,不如过我在竭力远离一些东西。让自然剥去文明那温暖的枷锁,如同高原的阵风吹散成都上空的薄雾般,虽然失去遮拦的阳光将我灼伤,虽然灿烂的星空下是透骨的冰凉,但这就是我所企盼的直接的自然的力量。
也许有一天,无须仰仗时空的变换,在钢筋水泥构建的、物欲横流的、被文明粉饰的、人类生生不息的牢笼里,我亦能抛开文明的制肘和打破物质的阻隔,感受生命的脉搏。
一直以为生命是统一的和谐的,至少自观时应该如此。没想到无处不在的是精神与行为的脱节、以及心灵和肉体的撕裂。芥川龙之介说得满有意思:反感一个社会的风尚,在生活中又丝毫不违背它。
这么一说精神分裂倒不是病,它是精神健全者唯一的选择。不分裂才有病。
[4/12/2006 于返程班车上]