SEO如何處理采集內容(5)
優(yōu)采云 發(fā)布時(shí)間: 2022-05-06 17:38SEO如何處理采集內容(5)
后臺留了一堆問(wèn)題,本篇是對其中兩個(gè)問(wèn)題的答疑
正文抽取
在中的“泛采集”部分提到過(guò)正文抽取,然后有一些人依舊表示不知道怎么搞。
這東西用網(wǎng)上開(kāi)源的就可以,Google搜索“{編程語(yǔ)言}正文提取算法”便能找到一大堆的解決方案,如:Readability、Boilerpipe、Diffbot……大部分算法已經(jīng)打包好了,拿過(guò)來(lái)就可以直接用,用不著(zhù)自己寫(xiě)。我們是做網(wǎng)站的,不是搞技術(shù)的,有現成的輪子用就OK了。
那么一些人又有一個(gè)問(wèn)題:我該用哪個(gè)好呢?
No No No,這不是用輪子的思維,首先不可能每個(gè)算法都能提取所有的網(wǎng)頁(yè),其次,算法不止一個(gè)。
那這件事就簡(jiǎn)單了,一個(gè)算法沒(méi)有將當前網(wǎng)頁(yè)的正文提取出來(lái),好辦,不用做別的,直接切下一個(gè)算法接著(zhù)試,這個(gè)不行再換下一個(gè),如果網(wǎng)頁(yè)正常,總有一個(gè)能將正文提取出來(lái)。除非這個(gè)頁(yè)面模板亂七八糟什么都有,比如網(wǎng)站首頁(yè),沒(méi)有明顯的主體內容區塊,這個(gè)另算。
所以,如果泛采集過(guò)程中需要提取正文的鏈接中,最好先將首頁(yè)url過(guò)濾掉。
如果非要糾結用哪個(gè)好,請參考:
內容去重
另一個(gè)問(wèn)題,采集到重復的內容咋辦?
本渣渣之前用過(guò)兩個(gè)辦法。
第一種:
首先我們已經(jīng)限定有效內容需要滿(mǎn)足哪些指標,比如字數必須大于150字,才算有效內容,小于150字的刪除不入庫。那么大于150字的內容一般都有4個(gè)以上標點(diǎn)符號。
XXXXXXX,XXXXXXXXX。XXX:“XXXXXX,XXXXXXXXXXXX。XXXXXX,XXXXXXXXXX,XXXXXXXX,XXXXXX。XXX?”
XXXX,XXXXXXX。XXXXXXX;XXXX;XXXXXXXX;XXXXXX,XXXXXXXXXX,XXXXXXXX,XXXXXX - XXX!
所以每篇文章,從第2個(gè)標點(diǎn)符號開(kāi)始,連續提取兩個(gè)標點(diǎn)符號之間的文本,且字數大于7的,直至提取3個(gè)文本段。
然后將這3個(gè)文本段合并成一個(gè),將文本段重復的文章去重,只保留一個(gè)。因為連續3個(gè)文本段相同的文章基本都是重復的,而且是完全重復,改都沒(méi)改的。
第二種
用現成的文本去重算法,依舊Google搜索,一堆現成的解決方案,如simhash、Shingling…..
首先對所有抓回來(lái)的文本清洗,去除無(wú)關(guān)詞匯,如停止詞、助詞(的地得..)什么的,然后再通過(guò)上述的解決方案來(lái)計算相似文檔。
哪個(gè)好?本渣渣覺(jué)得都一般,沒(méi)覺(jué)得哪個(gè)好,但都可以湊活用。。。
但都有個(gè)問(wèn)題,一旦文章量大起來(lái),比如上了幾百萬(wàn),程序跑起來(lái)很慢,巨燒CPU,怎么辦??
于是就沿用第一種辦法的思路,不分析全文了,直接找出每篇文章的最長(cháng)的n句話(huà),做一遍hash簽名,然后還是用上述現成的算法去跑,n一般取3。不但運行速度快了很多,找相似文章的最終效果貌似也比之前好了。