搜索引擎原創(chuàng)識(shí)別與站內(nèi)權(quán)重繼承算法解析
有很多人問過我,說Mr.Zhao啊,百度如何判斷偽原創(chuàng)和原創(chuàng)?百度喜歡什么樣的文章?什么樣的文章比較例如獲得長(zhǎng)尾詞排名?等等諸如此類的問題。面對(duì)這些問題,我常常不知如何回答。如果我給一個(gè)比較大方向一些的答案,例如要重視用戶體驗(yàn)、要有意義等等,那么提問者會(huì)覺得我在應(yīng)付他,他們往往抱怨說這些太模糊?墒俏乙矝]法再給出具體的內(nèi)容,畢竟我不是百度,具體算法我又何德何能的為你們指點(diǎn)江山呢?
為此,我開始寫這個(gè)“如果是我”系列的文章。在這一系列文章里,我假設(shè)如果是我絞盡腦汁的來為網(wǎng)民提供較好的搜索服務(wù),我會(huì)怎么做,我會(huì)怎么對(duì)待文章內(nèi)容、如何對(duì)待外鏈、如何對(duì)待網(wǎng)站結(jié)構(gòu)等等諸如此類的站點(diǎn)元素。當(dāng)然,本人技術(shù)有限,我只能寫一點(diǎn)我稍微理解的東西。而百度以及其它的商業(yè)搜索引擎,他們有大量比我優(yōu)秀的人才,相信他們的算法以及處理問題的方式會(huì)比我完善很多,而我之所以寫這些,無外乎拋磚引玉,希望大家看后,心里有一個(gè)大概。畢竟在SEO的道路上走過一段時(shí)間后,沒有誰能夠當(dāng)誰的老師,一些觀點(diǎn)僅供參考。
在此,我要鄭重聲明,這個(gè)系列文章中所有涉及到的思想、算法與程序,均非本人所寫,全部是我從一些公開的資料里搜集而得的。同時(shí),相信大家也能理解,如果這些免費(fèi)公開的東西都能做到如此程度,那么那些商業(yè)機(jī)密就更不用提了。
好的,現(xiàn)在開始。
如果是我,我會(huì)喜歡什么樣子的文章呢?我會(huì)喜歡我的用戶喜歡的文章,如果硬要加判定標(biāo)準(zhǔn),那無外乎是兩種:1.原創(chuàng)且用戶喜歡。2.非原創(chuàng)且用戶喜歡。在這里,我的態(tài)度很明顯,偽原創(chuàng)就是非原創(chuàng)。那么用戶喜歡什么樣的文章呢?很顯然,一些新觀點(diǎn)、新知識(shí)往往是用戶喜歡的,也就是說通常原創(chuàng)文章都是用戶喜歡的,而且即便用戶不喜歡,原創(chuàng)站點(diǎn)作為新鮮內(nèi)容的制造者,也應(yīng)該受到一定的保護(hù)。那么非原創(chuàng)的文章用戶就一定不喜歡嗎?誠然否也。一些站點(diǎn),其內(nèi)容往往是經(jīng)過搜集整理后聚合而成的,那么這些站點(diǎn)對(duì)用戶來說就是有價(jià)值的,其相對(duì)應(yīng)的文章理應(yīng)獲得較好的排名。
由此可見,我需要重視兩類文章即可。一是原創(chuàng)文章,二是有價(jià)值的信息聚合站點(diǎn)下的文章。
首先要明確一點(diǎn),本文探討范圍僅限內(nèi)容頁,而非專題頁、列表頁和首頁。
那么我在甄別這兩類文章之前,我需要先進(jìn)行信息的采集。本文對(duì)于spider程序部分不進(jìn)行闡述。當(dāng)spider程序下載下來網(wǎng)頁信息后,在內(nèi)容處理的模塊中,我需要先對(duì)內(nèi)容除噪。
內(nèi)容除噪,并非大家經(jīng)常性的誤以為僅僅除去代碼而已。對(duì)于我來說,我還要出去頁面部分非正文內(nèi)容的文字。比如導(dǎo)航條、比如底部文字以及各個(gè)文章列表。將它們的影響除去后,我將得到一段僅僅包含網(wǎng)頁正文內(nèi)容的文本段落。寫過采集規(guī)則站長(zhǎng)朋友應(yīng)該知道,這個(gè)并不難。但搜索引擎畢竟是一款程序,不可能針對(duì)每個(gè)站寫個(gè)類似于的采集規(guī)則的東西,所以我需要建立一套除噪算法。
在此之前,我們先明確我們的目的。
上圖中很明顯內(nèi)容1是用戶最為需要的,內(nèi)容2是用戶可能感興趣的,其余均是無效的噪音。那么針對(duì)于此,我們可以發(fā)現(xiàn)如下幾特征:
1.所有的調(diào)用列表全部是在一個(gè)信息塊里,這個(gè)信息塊絕大部分是由標(biāo)簽組成,即便有游離于標(biāo)簽的內(nèi)容,其文字也基本是固定的,且在站內(nèi)頁面中存在大量重復(fù),較為容易判斷。
2.內(nèi)容2一般緊鄰著內(nèi)容1。而且內(nèi)容2中的鏈接錨文本,與內(nèi)容1存在相關(guān)性。
3.內(nèi)容1部分,是有文字文本內(nèi)容和標(biāo)簽混合而成,且在通常情況下,文本文字內(nèi)容在網(wǎng)站網(wǎng)頁集合中具有唯一性。
那么,針對(duì)于此,我采用廣為人知的標(biāo)簽樹方式,將內(nèi)容頁進(jìn)行分解。
從網(wǎng)頁的標(biāo)簽布局上來看,網(wǎng)頁是通過若干的信息塊來提供內(nèi)容的,而這些信息塊又是由特定的標(biāo)簽規(guī)劃出來的,常見的標(biāo)簽有div ul li p table tr td 等,我們依照這些標(biāo)簽,將網(wǎng)頁費(fèi)解為樹狀結(jié)構(gòu)。
上圖是我手繪的簡(jiǎn)單的標(biāo)簽樹,通過這種方式,我可以非常輕松的識(shí)別出各個(gè)信息塊。然后我設(shè)定一定闕值A(chǔ)為內(nèi)容比重闕值。內(nèi)容比重闕值為信息塊中文本字?jǐn)?shù)與標(biāo)簽出現(xiàn)此處的比值。我設(shè)定當(dāng)網(wǎng)頁中信息塊內(nèi)容比重闕值大于A時(shí),才會(huì)被我列為有效內(nèi)容塊(此舉是為了杜絕過分的多內(nèi)鏈,因?yàn)槿绻黄恼虏紳M內(nèi)鏈,則不利于用戶體驗(yàn)),然后我再比對(duì)內(nèi)容塊中的文本,當(dāng)其具有唯一性時(shí),此一個(gè)或多個(gè)內(nèi)容塊的集合,即為我所需要的“內(nèi)容1”。
那么內(nèi)容2我要如何處理呢?在講解處理內(nèi)容2之前,我先講解一下內(nèi)容2的意義。正如我先前所說,如果是一個(gè)注重用戶體驗(yàn)的聚合性網(wǎng)站,那么他的作用是將現(xiàn)有的互聯(lián)網(wǎng)內(nèi)容經(jīng)過精心的分類與關(guān)聯(lián),來方便用戶更好、更有效的閱讀。針對(duì)這樣的站點(diǎn),即便其文章不是原創(chuàng)而是從互聯(lián)網(wǎng)上摘抄的,我也會(huì)給予其足夠的重視與排名,因?yàn)樗己玫木酆蟽?nèi)容往往更能滿足用戶的需求。
那么針對(duì)聚合站點(diǎn),我可以通過“內(nèi)容2”來進(jìn)行粗略的判斷。簡(jiǎn)而言之,如果是一個(gè)良好的聚合站點(diǎn),首先其內(nèi)容頁必須存在內(nèi)容2,同時(shí)內(nèi)容2必須占重要部分。
好了,識(shí)別內(nèi)容2很簡(jiǎn)單,對(duì)于內(nèi)容比重闕值低于某個(gè)特定值的信息塊,我全部判斷為鏈接模塊。我將內(nèi)容1通過某些方式(具體方式本文后半部分講解),提取出主題B。我將鏈接模塊中的所有a標(biāo)簽的錨文本分別進(jìn)行分詞,如果所有的錨文本均與主題B相符,則將此鏈接模塊判定為內(nèi)容2。設(shè)定鏈接闕值C,鏈接闕值為內(nèi)容2中標(biāo)簽出現(xiàn)次數(shù)除以所有鏈接模塊所出現(xiàn)的a標(biāo)簽次數(shù)所得的比重,若大于C,則此網(wǎng)站可能為聚合網(wǎng)站,針對(duì)內(nèi)容排名計(jì)算時(shí)會(huì)引用聚合站點(diǎn)特定的算法。
拓展閱讀1開始:
我相信很多SEO從業(yè)者剛接觸這行時(shí),就聽說過一件事,就是內(nèi)容頁面導(dǎo)出鏈接要具有相關(guān)性。還有一件事,就是頁面下面要有相關(guān)閱讀,來吸引用戶縱深點(diǎn)擊。同時(shí)應(yīng)該還聽人講過,內(nèi)鏈要適中,不可太多等。
但很少有人會(huì)說為什么,而越來越多的人因?yàn)椴幻髌鋬?nèi)在道理,而漸漸忽視了這些細(xì)節(jié)。當(dāng)然,以前的一些搜索引擎算法在內(nèi)容上的注重程度不夠,也起到了推波助瀾的作用。但是,如果從陰謀論的角度上來看,我可以假設(shè)出這么一個(gè)道理。
絕大部分用戶的搜索頁面,第一頁只有10個(gè)結(jié)果,除去我自家產(chǎn)品,往往僅剩下7個(gè)左右,一般用戶最多只會(huì)點(diǎn)擊到第3頁,那么我需要的優(yōu)質(zhì)站點(diǎn)其實(shí)不到30個(gè)就可以最大限度的滿足用戶體驗(yàn)。那么經(jīng)過3-5年的布局,逐漸篩選出一些耐得住寂寞和認(rèn)真做細(xì)節(jié)的站,這時(shí)候我再將這一部分算法進(jìn)行調(diào)整,進(jìn)而篩選出這些優(yōu)質(zhì)站點(diǎn),推送給用戶。當(dāng)然,在做的過程中還有更多的參考因素,比如域名年齡、JS數(shù)量,網(wǎng)站速度等。
拓展閱讀2開始:
你們說,為什么當(dāng)站文章中有大量相同時(shí),會(huì)快速引起搜索引擎懲罰呢?這里我說的不是摘抄與原創(chuàng)的問題,而是你站內(nèi)自己和自己的文章重復(fù)。之所以搜索引擎反應(yīng)這么快,同時(shí)懲罰嚴(yán)厲,根本原因就是在你的文章中,他提取不到內(nèi)容1。
好,經(jīng)過這一系列處理,我已經(jīng)獲得了內(nèi)容1與內(nèi)容2了,下面該進(jìn)行原創(chuàng)識(shí)別的算法了。
現(xiàn)在基本上搜索引擎對(duì)于原創(chuàng)的識(shí)別,在大面上采用的是關(guān)鍵詞匹配結(jié)合向量空間模型來進(jìn)行判斷。Google就是這么做的,在其官方博客有相應(yīng)的文章介紹。這里,我就做個(gè)大白話版本的介紹,爭(zhēng)取做到簡(jiǎn)單易懂。
那么,我通過分析內(nèi)容1,得到內(nèi)容1中權(quán)重最高的關(guān)鍵詞k,那么按照權(quán)重大小進(jìn)行排序,前N個(gè)權(quán)重最高的關(guān)鍵詞的集合我命名為K,則K={k1,k2,……,kn},則每一個(gè)關(guān)鍵詞都會(huì)對(duì)應(yīng)一個(gè)其在頁面中獲取到的權(quán)重特征值,我將k1對(duì)應(yīng)的權(quán)重特征值設(shè)定為t1,則前N個(gè)權(quán)重關(guān)鍵詞對(duì)應(yīng)的特征值集合則為T={t1,t2,……,tn},那么我們有了這個(gè)特征項(xiàng),就能計(jì)算出其相對(duì)應(yīng)的特征向量W={w1,w2,……,wn}。接著我將K拼成字符串Z,同時(shí)MD5(Z)則表示字符串Z的MD5散列值。
那么假定我判定的兩個(gè)頁面分別是i與j。
則我計(jì)算出兩個(gè)公式。
1.當(dāng)MD5(Zi)=MD5(Zj)時(shí),頁面i與頁面j完全相同,判斷為轉(zhuǎn)載。
2.設(shè)定一個(gè)特定值α
當(dāng)0≤α≤1的時(shí)候,我判定頁面相似為重復(fù)。
由此,對(duì)于原創(chuàng)文章的判斷就結(jié)束了。好了,苦逼煩悶的枯燥講解告一段落,下面我用大白話再重新復(fù)述一遍。
首先,你的內(nèi)容一模一樣,一個(gè)字都不帶改的,那肯定是摘抄的啊,這時(shí)候MD5散列值就能迅速的判斷出來。
其次,很多SEO他們懶,進(jìn)行所謂的偽原創(chuàng),你說你偽原創(chuàng)時(shí)插入點(diǎn)自己的觀點(diǎn)與資料也成,結(jié)果你們就是改個(gè)近義詞什么的,于是我就用到了特征向量,通過特征向量的判斷,把你們這些低劣的偽原創(chuàng)抓出來。關(guān)于這個(gè),判斷思想很簡(jiǎn)單,你權(quán)重最高的前N個(gè)關(guān)鍵詞集合極為相似的時(shí)候,判斷為重復(fù)。這里所謂的相似包括但不僅僅局限于權(quán)重最高的前N個(gè)關(guān)鍵詞重合,于是構(gòu)建了特征向量,當(dāng)對(duì)比的兩個(gè)向量夾角與長(zhǎng)度,當(dāng)夾角與長(zhǎng)度的差異度小于某個(gè)特定值的時(shí)候,我將其定義為相似文章。
備注1開始:
一直關(guān)注google反作弊小組官方博客的朋友們,應(yīng)該看過google關(guān)于相似文章判斷算法的那篇博文,在那篇文章中,其主要使用的是余弦定理,就是主要計(jì)算夾角。不過后來Mr.Zhao又看了好幾篇文獻(xiàn),覺得那篇博文應(yīng)該僅僅是被google拋棄后才解密的,現(xiàn)在大體算法的趨勢(shì),應(yīng)該是計(jì)算夾角與長(zhǎng)度,所以選擇現(xiàn)在給大家看的這個(gè)算法。
好的,這里我們注意到了幾個(gè)問題。
1.α被判定為重復(fù)時(shí)的取值范圍是否可變?
2.內(nèi)容中如何提取出關(guān)鍵詞?
3.內(nèi)容中關(guān)鍵詞的權(quán)重值是如何賦予的?
下面我來逐一解答。
注:相關(guān)網(wǎng)站建設(shè)技巧閱讀請(qǐng)移步到建站教程頻道。