PHP词库去重算法的心得

在PHP里面数值的比较运算是最快的,每个词就是一个字符串,给每个词生成一个不重复的特殊数值,然后对数值进行比对。PHP有md5、sha1算法可两种生成特殊值,不过生成的值是字符串类型,这样就会比较慢。所以在给词生成特殊数值的时候就需要自己写一个hash算法来生成独特的数值。

我们知道一个字占2-3字节,一个字节占8个位,所以我们可以先把每个词转化成二进制的数值,由于二进制数值比较长不利于比较,最后再转成十进制的数值,这样生成的值就不会重复了。记得开启PHP模块的bcmatch扩展,相同的词生成的十进制数值是一样的。