虽然不怎么用微软的Live Search,不过在试用了图片搜索的新功能后,还是不得不认可微软在图片检索方面的确走在了Google前面。
新功能允许用户在搜索结果中选定一副图片,然后搜索与其相关联的图片。之所以觉得这个功能好在于,大多数时候文字无法区分出图片的所有特征,所以搜索结果肯定不会完全匹配用户的意图,但是用户当然知道自己想要什么样的图片,只不过这个想法只存于用户的脑海中,这样就造成了用户和搜索引擎的沟通的障碍。而一旦搜索引擎具备了找出相似图片的能力就可以很好的解决这一问题。用户可以很快定位到自己想要的图片,然后获取大量的与此类似的结果。

Live 的搜索结果
我选择了右下角的Ipod作为我想要找的图片:

相关图片的结果
搜索的结果基本让人满意。不过显然改功能需要实时的对图片进行大量的运算,所以用户等待的时间会比较长。联想到微软亚洲研究院在SIGGRAPH上发Paper的能力,微软在图像处理上的技术的确不容小视。
下面是google的对比结果:

Google的对比结果
值得注意的是,Google的算法中显然将比较热门的ipod touch排在了前面。
也许很多人对什么是语义网的技术还不是很了解。不过也许你可以从OpenCalais的应用中找到一些线索。
OpenCalais能够分析网页中的文本,并对其进行语义标注。语义标注的过程将利用RDF描述的数据,去识别文本中的一些词汇。下图是我选取的一段文本被标注以后的结果:

Calais
标注之后的结果是文本中的人名、地名、组织和一些专有名词都被识别并打上了不同的标签。要做到这一些需要比较全的数据文件,加上NLP的技术来进行一定的模糊匹配。我的感觉是做得相当的不错。
改功能支持Web Service,可以广泛的被其他网站使用。不过目前的版本并不支持中文。
我们可以教会大猩猩手语吗?这听起来是一个不错的注意,也许我们像教一个先天聋哑的人类小孩一样去教一个大猩猩手语,我们会发现原来大猩猩也是能够使用语言的吗?
在wiki上的Great ape language词条页面内我找到了这样的描述:
It is now generally accepted that Apes can learn to sign and are able to communicate with humans. However, they are not able to form syntax to manipulate such signs, a trait which appears to be limited to human language use.
从这里我们可以看出对于类人猿而言即使在人类的训练环境下也只能掌握有限的语言能力。
科学家的研究发现人类的语言能力很大程度上已经成为了一种本能。人在婴儿时期有着更强的语言学习能力,在这一阶段大脑的突触和神经元数量都是人的一生中的最高水平,即使婴儿由于一些原因使得大脑受损,其修复能力也远远强于成人。一种解释说如果婴儿能够在较短的时间内掌握语言,那么他们将能够更多的得到来至成人的指导,从而获得更大的成活率。
对于一直被认为和人类的出于进化史上最近的亲戚的猿类们显然缺乏我们在进化过程中形成的这种语言处理能力。
相比于教大猩猩学习手语,我对人类的语言本能的内在机制更感兴趣。语言学家也做过很多的实验来试图发现人脑在理解语言时的蛛丝马迹。其中一个有意思的结论是人类在理解句子的含义的时候实际上是遵循深度优先的策略,直接选取概率最大的路径进行解释,如果最后发现无法正确的理解才会回过头来从新扫描。在wiki上的David Swinney词条上我们还可以找到很多有意思的实验及其结论。
如果我们能够正确理解大脑的语言功能,我们能够用计算机来进行模拟这一机制呢?目前NLP的研究中大量使用了概率的手段,但是现有的手段仅仅只是停留在Shallow的层次上,仅仅只是在试图获取语言某一方面的局部信息,离语言的理解差得很远。
通常我们都会希望一些服务在系统启动的时候能够自动运行,比如网站的服务,SVN服务等等。在Linux下面和这个功能有关的文件在/etc/rc.d(或者/etc, 不同的系统不一样)下。在这个目录下我们应该可以看到rc.0, rc.1, rc.2, rc.3, rc.4, rc.5, and rc.6, 他们分别对应于不同的运行模式,其中0和6保留为停机和重启。其余的模式在不同的机器上的定义不一定相同,我们可以查看/etc/inittab来找到自己系统上的默认模式和对于其他模式的说明. 在SuSe Linux下该文件的内容为:
# The default runlevel is defined here
id:5:initdefault:
# First script to be executed, if not booting in emergency (-b) mode
si::bootwait:/etc/init.d/boot
# /etc/init.d/rc takes care of runlevel handling
#
# runlevel 0 is System halt (Do not use this for initdefault!)
# runlevel 1 is Single user mode
# runlevel 2 is Local multiuser without remote network (e.g. NFS)
# runlevel 3 is Full multiuser with network
# runlevel 4 is Not used
# runlevel 5 is Full multiuser with network and xdm
# runlevel 6 is System reboot (Do not use this for initdefault!)
#
l0:0:wait:/etc/init.d/rc 0
l1:1:wait:/etc/init.d/rc 1
l2:2:wait:/etc/init.d/rc 2
l3:3:wait:/etc/init.d/rc 3
#l4:4:wait:/etc/init.d/rc 4
l5:5:wait:/etc/init.d/rc 5
l6:6:wait:/etc/init.d/rc 6
…………
和其他大多数的Linux版本不同,SuSe没有提供一个rc.local的文件用来定制用户的启动程序,该脚本仅运行一次。在SuSe的论坛上我找到了两种方法可以替换rc.local.
首先要创建rc.local,然后向其中加入自己的运行脚本。可以通过yast2来将其添加到启动项,yast2是SuSe的一个基于GUI的启动控制程序。如果你在命令行下工作可以使用chkconfig命令: chokconfig -add [filename], 在我的SuSe上文件的名字不能是rc.local, 貌似中间的那个.不被接受,所以我改成了rclocal。
如果用命令行方式需要在rclocal的前面添加:
#!/bin/sh
### BEGIN INIT INFO
# Provides: rc.local
# Required-Start: $network $syslog
# Required-Stop: $network $syslog
# Default-Start: 3 5
# Default-Stop: 0 1 2 6
# Description: [your description]
### END INIT INFO
来配置该启动项的一些参数。这里的含义是rclocal会在3和5模式下被启动。
参考链接:
http://forums.opensuse.org/archives/sf-archives/archives-programming-scripting/317339-there-no-rc-local.html
http://www.linux.com/articles/114107
那天在图书馆中无意中看到了《语言的本能》一书,便拿借回来读了一下。看了下豆瓣上的评价,结合自己的读书经验,得出的结论是这本书的中文版实在是很烂。
比如下面的英文:
Aphasia, the loss of language follwing brain injury, is devastating, and in severe cases family members may feel that the whole person is lost forever.
在书中被翻译成了:
很多家庭对于因脑伤而导致严重失语症的病人,根本是把他们当作死去、不存在般看待,因为他已‘消音’无声了”
而网友给出的参考翻译是:
“由脑伤引起的失语症是极具破坏性的,病情严重时,对家属而言,就好像永远失去了那个人一样。”
除去这些表意上有严重缺陷的地方外,还有很多明显的文法错误,而这些错误应该连小学生都能够看出来的。本书是台湾人翻译的,大陆这边估计直接照抄过来了,连校对都没做,一些词汇和大陆翻译得不一样,也造成读者的阅读困难。
这本书的封面上贴了很多国外对英文原版的赞美之词,读过此书之后感觉也挺有意思。最近在关注NLP的许多问题,本书中的一些观点很有启发意义。下了一本英文的电子版,还是原版读起来比较舒服呀。
开Blog的那天就有这样的想法了,当时想去自己实现一个。查了下Google Reader的API,能够从Google获得共享目录的RSS输出,这样自己只需要写一个Ajax的请求然后解析动态生成页面就可以了。不过由于自己的懒惰,一直没有时间去做,前些日子看到了Reader上提示说已经提供了该功能的脚本,直接复制就可以了,不过就算是这样还是等了好久才去修改自己的页面。 喏, 现在已经改好了,还是很容易的,Ctrl+C Ctrl+V, 哈哈。