reCAPTCHA – 防机器访问软件的妙用

注:如果没有兴趣阅读这篇文章,也一定请看文章中的视频。文中不少图片也截自该视频

想必大家可能都看到过Captcha或reCaptcha的字样,而且可能也都知道Captcha的作用。

captcha

captcha

其主要目的就是防止机器人恶意(当然善意的也不行)的在短时间内超强度访问网站(比如,在一定时间内频繁的使用Google搜索,具体的如这位同学试图利用Google Scholar统计论文引用次数而遭遇了麻烦),或者不正当的侵占免费资源(比如,你想去craigslist上免费贴广告),这种情况下,你就会被要求输入验证码或者被屏蔽。

对于平常不会去骚扰这些网站的同学们,自然觉得这是多此一举,而且带来了极大的不便。

Captcha的发明者,Luis von Ahn,也意识到了这个问题。但他自然不是想着去取消这项功能,而是想利用这似乎浪费的10-20秒时间去做有益的事情。这就诞生了reCAPTCHA

reCAPTCHA的口号是Stop Spam, Read Books,它的基本想法就是把古时候照片影印的文档拿出来,取其中难以辨识的词让人们来帮助解读。而这些词之所以被定义为难以辨识,也正是对计算机而言。

ocr

比如上图中,影印的文档经OCR(Optical Character Recognition, 光学字符识别)后,仍然有不少词组难以识别,或者识别的词和原文没有关联。而对人们而言,至少还能多识别一些,也更容易猜对一些词。所以reCAPTCHA就把这些确信度不高的词搬到了网上,在需要注册用户,张贴广告的地方得到了采用, 比如 facebook.com, craigslist.org 等等。

但由于这些摘自影印书籍的词并没有确认的答案,所以大家往往会看到两个词,一个是已知答案的,另一个则是需要被识别的。只要输对已知答案的那个,就会被认为不是机器人。而另一个输入的词则会为数字化古籍作出贡献。

下面这两张是我最近使用craigslist的成果:

recaptha

recaptcha2

似乎还挺容易一眼就猜出哪个是已知的,哪个是扫描的。如果有意恶作剧的人们似乎就可以故意输对其中该输对的一个,然后把另一个词输成自己的名字之类,就可以名留青史。当然事实上是不行的,reCAPTCHA自然也会把这个相同的词分发给其他不同的人进行辨认,只有当达到一定数目,并且认同率高于一定值,这个词才会被认为是有效词。

最后一个小注释就是,这阶段这些需要被识别的词汇都来自纽约时报古籍版

Comments 1

  1. Stone wrote:

    这个真牛, 主意不错.

    Posted 06 Jul 2009 at 11:28 pm

Trackbacks & Pingbacks 1

  1. From 一亩二分地 - Crowdsourcing (群包,群服 或是 群策群力?) on 05 Jul 2009 at 5:12 pm

    [...] 怎样是一个Crowdsourcing的例子呢?这回刚介绍的reCAPTCHA其实就是一个很好的例子。你如果看了那文中的视频,你也会注意到视频的标题其实是Human Computation(人类计算),视频最后也提到了全世界6%的人口为这项工程做了贡献。从这个意义上来说,翻译作“群服”,或者“海服”其实倒也不错。 [...]

Post a Comment

Your email is never published nor shared. Required fields are marked *