大规模网页快速消重中网页特征的提取

刚在群里有人突然提起这个,也就顺便写写大家暂且看之,所以算法都需要考虑应用场景,而我自己设计的算法也仅满足我当时的业务应用而已,不可直接照抄,否则后果自负。
1、一般处理的方法
(1)最原始的使用文本相似度判别,相当准确,但是计算速度慢,提高的方法无非是先索引进行预处理,或者用SVD来降维减少矩阵运算时间
(2)文本摘要为文本特征,进行特征重复判别
(3)抽取文本关键词,构成比较小的文本向量做为特征进行判别
大家考虑过以上3中算法的共性没?那就是要分词,中文分词博大精深,效果越好速度越慢这是铁律,但具体还要看分词算法的设计。所以这部分时间的消耗以上3中方法是无可避免的必须进行的步骤。
而我所考虑的是从句子的角度,但如果单个句子的特征,特征未免单一,而不具有代表性,句子多了又可能,造成特征过于复杂和容错性能的下降,毕竟我们通过自动抽取的网页正文不能保证100%无任何噪音和抽取失误带来的原文缺失。在这个角度上我们进一步考虑是否能有更好的方法呢?传统中文断句,我们主要依赖于标点符号,那我的想法就是标点符号左右的汉字已经能有很强的代表性来作为句子的特征,而句子又能作为文本的特征,因此尝试了取逗号 句号 感叹 问号 左右2边各2个汉字或英文作为特征,来进行文本表示。
全文按照标点符号取出汉字后构成了1个比较长的串,但为了信息指纹的需要,我们必须考虑容错性的问题,这个串如果直接HASH,有可能因为噪音的加入产生巨大的偏差,因此我对这个长串做了截断的处理,同时考虑一般标题的信息含量很高,单独认为标题也成为1个字串,指纹特征就变成了1个标题的HASH码 3个截断后的子串HASH码 同时标题的权重为1.5 其他子串权重为1.0 阀值设定为3 这样如果有标题相同 并有2个字串相同的文章我们就认为是重复,或者标题不相同 3个字串完全相同的是重复。具体消重特征判别,是使用数据库的内存表还是BLOOMFILTER之类的算法就随便你了。
当然以上算法的前提是正文和标题抽取的准确如果噪音过多,这个算法可能降低到一个完全无法应用的程度,怎么提高该算法的在噪音比较高情况下的容错性,该是各位看官自己考虑的问题了(请我吃饭我就告诉你,如果你不喜欢用自己的大脑)

[Last Modified By King, at 2008-04-02 17:16:58]

你可能感兴趣的:(算法)