大雨

2009年06月16日

上午北京的天如暗夜,在公司的玻璃幕前看着水珠滑落,很靠谱。

为什么我不常写blog呢?因为我总是踌躇于写得不好是要误人子弟的。作为一个工程师,越来越不信科学那一套了。

Test

2009年05月29日

From iPod touch
Technology is incredible

Milestone of Doclass

2009年05月27日

Our platform is finally ready for deliver.

2009年02月19日

试验一下引用Picasa图片

去年在自藏·日喀则

北京·国家美术馆

去年在西藏·珠峰营地

在BaseHTTPServer中关闭连接

2009年02月10日

背景

起因是万恶的IE。

因为IE在HTTP重连细节上的处理,它和python的BaseHTTPServer类存在兼容性问题:在POST操作时会造成Connection Reset。

解决方案之一,是在BaseHTTPServer中使用Connection: Keep-Alive。

但是BaseHTTPServer是一个单进程的模型,使用了长连接便不能处理并发请求了。

最终的目标是期望能够使用BaseHTTPServer及保证并发请求的处理,又提供IE的兼容性。

现在看来,不一定是IE的问题。客户端和服务器端在persistent connection的处理上存在不一致。

BaseHTTPServer在返回HTTP/1.0的情况下,单次请求完成后仍然保持连接。

尝试的方案

  • 在BaseHTTPHandler中完成请求后调用self.connection.close():没有看源代码到底怎么回事,但是从结果来看这个connection显然不是sock句柄;
  • 使用HTTP的断开命令:貌似HTTP协议中没有这种东西;
  • 返回数据后,再返回一个204之类的Response,同时设置Connection: Close:在Firefox一切正常,但还是因为IE诡异的重连机制,导致Connection Reset;

最终方法

  • 重载BaseHTTPHandler的handle()函数
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请求处理完毕后,连接关闭。

  • 将HTTP Header中的Connection字段设置为close

否则IE中将出错

关于Query Classification和Query Intention

2009年02月3日

对于全网引擎,Query Analysis主要是在两个层面的分类

  • Query意图的分类:Navigational、Informational、Transactional,再具体一点的Download,Local Info之类;
  • Query知识类别上的分类:分类目标是新闻、体育、经济、音乐,主要目的是为了做多个垂直引擎的结果融合或者Query Planing;

先说知识类别上的分类吧,这个东西在全网搜索中使用较多,本身难度也不大,比较确定。抽象说的,思路无非都是通过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

本文中提到的论文

  1. Learning query intent from regularized click graphs
  2. Understanding user goals in web search
  3. Functional faceted web query analysis
  4. Coupling Feature Selection and Machine Learning Methods for Navigational Query Identification

关于中国政府的信息过滤政策

2009年02月3日
But remember, the brick walls are there for a reason. The brick walls are not there to keep us out. The brick walls are there to give us a chance to show how badly we want something. Because the brick walls are there to stop the people who don’t want it badly enough. They’re there to stop the other people.

- Randy Pausch

记恋冬妮娅

2009年02月3日

结尾时刘小枫写到:

这一私人事件发生在一九七五年秋天。前不久,我读到法国作曲家Ropartz的一句话:Qui nous dira la raison de vivre? 这勾起我那珍藏在茫茫心界对冬妮娅被毁灭的爱满含怜惜的经历,我仍然可以感到心在随着冬妮娅飘忽的蓝色水兵衫的 飘带颤动。我不敢想到她,一想到她,心就隐隐作痛……。

一刻

2009年02月3日

行刑队站成一排。赫拉迪克背靠营房的墙壁站着,等待开枪。有人担心墙壁沾上血迹;便吩咐囚犯朝前跨出几步。赫拉迪克可笑地联想到摄影师吩咐对象摆好姿势的情景。一滴雨水沉重地落到他一侧太阳穴,顺着面颊徐徐淌下;军士长一声吆喝,发出最后的命令。

物质世界凝固了。

枪口朝赫拉迪克集中,但即将杀他的士兵们一动不动。军士长举起的手臂停滞在一个没有完成的姿势上。一只蜜蜂在后院地砖上的影子也固定不动。风像立正似的停住。赫拉迪克试图喊叫,发出声音,扭动一下手。他明白自己动弹不得。他听不到这个受遏制的世界的最轻微的声息。他想:我在地狱里。我疯了。时间已经停滞。后来又想,果真如此的话,那么他的思维也应该停滞。他要做个试验:他背诵(嘴唇不动)维吉尔的神秘的第四首田园诗。他想那些已经遥远的士兵一定和他一样焦急;他渴望同他们沟通思想。使他惊异的是,一动不动待了这么久居然不感到疲倦,不感到眩晕。不知过了多久,他睡着了。醒来时,世界仍旧没有动静,没有声息。他脸上仍留有那滴雨水;地砖上仍有蜜蜂的影子;他喷出的烟仍浮在空中,永远不会飘散。等到赫拉迪克明白时,已经过了另“一天”。

为了完成手头的工作,他请求上帝赐给他整整一年的时间,无所不能的上帝恩准了一年。上帝为他施展了一个神秘的奇迹:德国的枪弹本应在确定的时刻结束他的生命,但在他的思想里,发布命令和执行命令的间隔持续了整整一年。先是困惑和惊愕,然后是忍受,最终是突然的感激。

除了记忆之外,他没有任何文件可用;每增添一行六音步的诗句,他都默记在心,从而达到的准确和严谨,是那些灵机一动、想出整节整节的诗、随即又忘掉的人难以企及的。他不是为后代,也不是为上帝写作烟为他对上帝的文学喜好一无所知。他殚精竭虑、一动不动、秘密地在时间的范畴里营造无形的迷宫。他把第三幕改写了两次。删除了某些过于明显的象征:例如一再重复的钟声和音乐声。没有任何干扰。有的地方删删减减,有的地方加以拓展;有时恢复了最早的构思。他对那个后院和兵营甚至产生了好感;士兵中间的一张脸促使他改变了对勒默斯塔特性格的概念。他发现福楼拜深恶痛绝的同音重复只是视觉的迷信:是书写文字的弱点和麻烦,口头文字就没有这种问题……他结束了剧本:只缺一个性质形容词了。终于找到了那个词;雨滴在他面颊上流下来。他发狂似的喊了一声,扭过脸,四颗枪弹把他打倒在地。

亚罗米尔·赫拉迪克死于3月29日上午九时零二分。

- 秘密的奇迹 博尔赫斯

旅行随笔

2009年02月3日
一周前,我于成都阴霾的天空下,憎恨着这为阳光蒙上一层丽纱的文明。窗外无尽的喧嚣和名利中无意的消耗,我毅然出走。
一天前,在冷冰的帐篷里,包裹所有衣物的身体蜷缩在睡袋中,畅想阳光的温暖的同时抵御着零下二十度的消耗。那时的我又想起被疏远的文明。或许正是文明中的琐碎的、做作的、无意的等等,阻尼了自然的极端的冲动,于是,生活变得甜美而效率低下。
此刻,在日隆镇肮脏的房间里,被墙寰包围的我终于不为那份自由感到担心,于是有了闲情为自己的兽欲感到羞愧-我仅赖物欲的刺激、完全脱离精神的诉求,走完五十里。当人类的本能具体化后,一切都变得那么简单而粗暴。
[4/11/2006 于日隆ICE-ROCK旁]

与其实我想接近一些东西,不如过我在竭力远离一些东西。让自然剥去文明那温暖的枷锁,如同高原的阵风吹散成都上空的薄雾般,虽然失去遮拦的阳光将我灼伤,虽然灿烂的星空下是透骨的冰凉,但这就是我所企盼的直接的自然的力量。
也许有一天,无须仰仗时空的变换,在钢筋水泥构建的、物欲横流的、被文明粉饰的、人类生生不息的牢笼里,我亦能抛开文明的制肘和打破物质的阻隔,感受生命的脉搏。

一直以为生命是统一的和谐的,至少自观时应该如此。没想到无处不在的是精神与行为的脱节、以及心灵和肉体的撕裂。芥川龙之介说得满有意思:反感一个社会的风尚,在生活中又丝毫不违背它。
这么一说精神分裂倒不是病,它是精神健全者唯一的选择。不分裂才有病。
[4/12/2006 于返程班车上]