早期的关键字堆砌SPAM作弊方式之一,是将中文词库中的单词直接用软件拼凑成文章,这样的文章没有实际的意义,只能给搜索引擎看。那么对于这样的文章,搜索引擎是通过什么方式来识别的呢?
我们知道,每个搜索引擎都有网页质量监控部门,对于百度等掺杂人工处理的搜索引擎而言,用户发现这样的网站,投诉到百度,百度直接封了这个网站了事。但对于Google这样的封站也是自动处理的搜索引擎而言,对关键字堆砌作弊的识别就显得更为重要了。
对于关键字堆砌作弊方式的识别,网站建设搜索引擎一般采用统计分析的方法进行。
搜索引擎首先将网页进行分词,分词完成后可以得到词的数量N和文章长度L,从大量文章的统计中发现文章的长度L和词的数量N两个数字之间存在一定的分布关系,一般而言L/N界于4至8之间,均值大约在5-6之间。也就是说一篇长度为1000字节的文章中,应该有125-250个分词,由于中文和英文的词的组成不一致,因此在英文和中文中这个比值的范围会有所不同。如果搜索引擎发现L/N特别大,那么这篇文章就存在就存在关键字堆砌现象了,如果L/N特别小,则可能是这篇文章是由一些词所组成的没有意义的文章。
进一步,通过大量正常文章统计发现,文章中密度高的几个关键字出现的次数之和与N/L存在一定的分布关系,搜索引擎就可以通过网页中的分布与统计结果的分布图进行比较得出文章是否存在关键字堆砌的现象。
此外,搜索引擎还将从停止字的比例来判定文章是否为自然文章。停止字就是如“的”“我”“是”等在文章中普遍使用的字或词,如果文章中停止字的比例在正常的比例范围之外,这个网页应提交到网页质量监控部门审核。
当然,还有更多的算法可以对网页与自然语言的文章进行比较分析,以判别文章是否为自然文章。
所谓魔高一尺、道高一丈,有些作弊者已经放弃了单词的组成文章的作弊方式,而改用句子组成文章的作弊方式,作弊者通过爬虫或其它方式获得网上文章的句子,并用软件将数十篇文章的某几句拼凑成一篇文章。这就需要搜索引擎做语义的分析来判断是否作弊了,然而目前关于语义分析的研究还处于研究阶段,这也是下一代智能搜索引擎的方向。
然而我们仍然不能将自动文章生成一棍子打死,基于人工智能的文章生成仍然是人类研究自身语言以及自身智能的一个重要方向。作弊与反作弊,将能促使人类对人工智能的研究。
如果到最后,软件能生成人类能够理解的文章,这是SPAM还是精华?你能肯定地说目前存在的智能化程度还不够高的RSS聚合文章一定是SPAM吗?然而,如果这样的文章海量的出现,我们又该如何去面对这个现象?