后台留了一堆问题,本篇是对其中两个问题的答疑正文抽取在【SEO如何处理采集内容 ①】中的“泛采集”部分提到过正文抽取,然后有一些人依旧表示不知道怎么搞这东西用网上开源的就可以,Google搜索“{编程语言}正文提取算法”便能找到一大堆的解决方案,如:Readability、Boilerpipe、Diffbot……大部分算法已经打包好了,拿过来就可以直接用,用不着自己写。
我们是做网站的,不是搞技术的,有现成的轮子用就OK了那么一些人又有一个问题:我该用哪个好呢?No No No,这不是用轮子的思维,首先不可能每个算法都能提取所有的网页,其次,算法不止一个那这件事就简单了,一个算法没有将当前网页的正文提取出来,好办,不用做别的,直接切下一个算法接着试,这个不行再换下一个,如果网页正常,总有一个能将正文提取出来。
除非这个页面模板乱七八糟什么都有,比如网站首页,没有明显的主体内容区块,这个另算所以
011/06/09/evaluating-text-extraction-algorithms/内容去重另一个问题,采集到重复的内容咋办?本渣渣之前用过两个办法 第一种:首先我们已经限定有效内容需要满足哪些指标,比如字数必须大于150字,才算有效内容,小于150字的删除不入库。
那么大于150字的内容一般都有4个以上标点符号XXXXXXX,XXXXXXXXXXXX:“XXXXXX,XXXXXXXXXXXXXXXXXX,XXXXXXXXXX,XXXXXXXX,XXXXXXXXX?” XXXX,XXXXXXX。
XXXXXXX;XXXX;XXXXXXXX;XXXXXX,XXXXXXXXXX,XXXXXXXX,XXXXXX - XXX!所以每篇文章,从第2个标点符号开始,连续提取两个标点符号之间的文本,且字数大于7的,直至提取3个文本段。
然后将这3个文本段合并成一个,将文本段重复的文章去重,只保留一个因为连续3个文本段相同的文章基本都是重复的,而且是完全重复,改都没改的第二种用现成的文本去重算法,依旧Google搜索,一堆现成的解决方案,如simhash、Shingling…..。
首先对所有抓回来的文本清洗,去除无关词汇,如停止词、助词(的地得..)什么的,然后再通过上述的解决方案来计算相似文档哪个好?本渣渣觉得都一般,没觉得哪个好,但都可以凑活用但都有个问题,一旦文章量大起来,比如上了几百万,程序跑起来很慢,巨烧CPU,怎么办??。
于是就沿用第一种办法的思路,不分析全文了,直接找出每篇文章的最长的n句话,做一遍hash签名,然后还是用上述现成的算法去跑,n一般取3不但运行速度快了很多,找相似文章的最终效果貌似也比之前好了===================================================。
知识星球-->日后有福利发之,比如一段能写黄段子的Python代码
右下角