[點晴CRM客戶管理系統(tǒng)]搜索引擎是如何判斷有價值的文章
有很多人咨詢過筆者(Mr.Zhao),百度如何判斷偽原創(chuàng)和原創(chuàng)?百度喜歡什么樣的文章?什么樣的文章比較例如獲得長尾詞排名?等等諸如此類的問題。面對這些問題,我常常不知如何回答。如果我給一個比較大方向一些的答案,例如要重視用戶體驗、要有意義等等,那么提問者會覺得我在應付他,他們往往抱怨說這些太模糊??墒俏乙矝]法再給出具體的內(nèi)容,畢竟我不是百度,具體算法我又何德何能的為你們指點江山呢? 為此,我開始寫這個“如果是我”系列的文章。在這一系列文章里,我假設如果是我絞盡腦汁的來為網(wǎng)民提供較好的搜索服務,我會怎么做,我會怎么對待文章內(nèi)容、如何對待外鏈、如何對待網(wǎng)站結構等等諸如此類的站點元素。當然,本人技術有限,我只能寫一點我稍微理解的東西。而百度以及其它的商業(yè)搜索引擎,他們有大量比我優(yōu)秀的人才,相信他們的算法以及處理問題的方式會比我完善很多,而我之所以寫這些,無外乎拋磚引玉,希望大家看后,心里有一個大概。畢竟在SEO的道路上走過一段時間后,沒有誰能夠當誰的老師,一些觀點僅供參考。 ************重要的聲明******************************* 在此,我要鄭重聲明,這個系列文章中所有涉及到的思想、算法與程序,均非本人所寫,全部是我從一些公開的資料里搜集而得的。同時,相信大家也能理解,如果這些免費公開的東西都能做到如此程度,那么那些商業(yè)機密就更不用提了。 ****************************************************** 好的,現(xiàn)在開始。 如果是我,我會喜歡什么樣子的文章呢?我會喜歡我的用戶喜歡的文章,如果硬要加判定標準,那無外乎是兩種:1.原創(chuàng)且用戶喜歡。2.非原創(chuàng)且用戶喜歡。在這里,我的態(tài)度很明顯,偽原創(chuàng)就是非原創(chuàng)。那么用戶喜歡什么樣的文章呢?很顯然,一些新觀點、新知識往往是用戶喜歡的,也就是說通常原創(chuàng)文章都是用戶喜歡的,而且即便用戶不喜歡,原創(chuàng)站點作為新鮮內(nèi)容的制造者,也應該受到一定的保護。那么非原創(chuàng)的文章用戶就一定不喜歡嗎?誠然否也。一些站點,其內(nèi)容往往是經(jīng)過搜集整理后聚合而成的,那么這些站點對用戶來說就是有價值的,其相對應的文章理應獲得較好的排名。 由此可見,我需要重視兩類文章即可。一是原創(chuàng)文章,二是有價值的信息聚合站點下的文章。 首先要明確一點,本文探討范圍僅限內(nèi)容頁,而非專題頁、列表頁和首頁。 那么我在甄別這兩類文章之前,我需要先進行信息的采集。本文對于spider程序部分不進行闡述。當spider程序下載下來網(wǎng)頁信息后,在內(nèi)容處理的模塊中,我需要先對內(nèi)容除噪。 內(nèi)容除噪,并非大家經(jīng)常性的誤以為僅僅除去代碼而已。對于我來說,我還要出去頁面部分非正文內(nèi)容的文字。比如導航條、比如底部文字以及各個文章列表。將它們的影響除去后,我將得到一段僅僅包含網(wǎng)頁正文內(nèi)容的文本段落。寫過采集規(guī)則站長朋友應該知道,這個并不難。但搜索引擎畢竟是一款程序,不可能針對每個站寫個類似于的采集規(guī)則的東西,所以我需要建立一套除噪算法。 在此之前,我們先明確我們的目的。 上圖中很明顯內(nèi)容1是用戶最為需要的,內(nèi)容2是用戶可能感興趣的,其余均是無效的噪音。那么針對于此,我們可以發(fā)現(xiàn)如下幾特征: 1.所有的調(diào)用列表全部是在一個信息塊里,這個信息塊絕大部分是由標簽組成,即便有游離于標簽的內(nèi)容,其文字也基本是固定的,且在站內(nèi)頁面中存在大量重復,較為容易判斷。 2.內(nèi)容2一般緊鄰著內(nèi)容1。而且內(nèi)容2中的鏈接錨文本,與內(nèi)容1存在相關性。 3.內(nèi)容1部分,是有文字文本內(nèi)容和標簽混合而成,且在通常情況下,文本文字內(nèi)容在網(wǎng)站網(wǎng)頁集合中具有唯一性。 那么,針對于此,我采用廣為人知的標簽樹方式,將內(nèi)容頁進行分解。 從網(wǎng)頁的標簽布局上來看,網(wǎng)頁是通過若干的信息塊來提供內(nèi)容的,而這些信息塊又是由特定的標簽規(guī)劃出來的,常見的標簽有<div><ul><li><p><table><tr><td>等,我們依照這些標簽,將網(wǎng)頁費解為樹狀結構。 上圖是我手繪的簡單的標簽樹,通過這種方式,我可以非常輕松的識別出各個信息塊。然后我設定一定闕值A為內(nèi)容比重闕值。內(nèi)容比重闕值為信息塊中文本字數(shù)與標簽出現(xiàn)此處的比值。我設定當網(wǎng)頁中信息塊內(nèi)容比重闕值大于A時,才會被我列為有效內(nèi)容塊(此舉是為了杜絕過分的多內(nèi)鏈,因為如果一篇文章布滿內(nèi)鏈,則不利于用戶體驗),然后我再比對內(nèi)容塊中的文本,當其具有唯一性時,此一個或多個內(nèi)容塊的集合,即為我所需要的“內(nèi)容1”。 那么內(nèi)容2我要如何處理呢?在講解處理內(nèi)容2之前,我先講解一下內(nèi)容2的意義。正如我先前所說,如果是一個注重用戶體驗的聚合性網(wǎng)站,那么他的作用是將現(xiàn)有的互聯(lián)網(wǎng)內(nèi)容經(jīng)過精心的分類與關聯(lián),來方便用戶更好、更有效的閱讀。針對這樣的站點,即便其文章不是原創(chuàng)而是從互聯(lián)網(wǎng)上摘抄的,我也會給予其足夠的重視與排名,因為它良好的聚合內(nèi)容往往更能滿足用戶的需求。 那么針對聚合站點,我可以通過“內(nèi)容2”來進行粗略的判斷。簡而言之,如果是一個良好的聚合站點,首先其內(nèi)容頁必須存在內(nèi)容2,同時內(nèi)容2必須占重要部分。 好了,識別內(nèi)容2很簡單,對于內(nèi)容比重闕值低于某個特定值的信息塊,我全部判斷為鏈接模塊。我將內(nèi)容1通過某些方式(具體方式本文后半部分講解),提取出主題B。我將鏈接模塊中的所有標簽的錨文本分別進行分詞,如果所有的錨文本均與主題B相符,則將此鏈接模塊判定為內(nèi)容2。設定鏈接闕值C,鏈接闕值為內(nèi)容2中標簽出現(xiàn)次數(shù)除以所有鏈接模塊所出現(xiàn)的標簽次數(shù)所得的比重,若大于C,則此網(wǎng)站可能為聚合網(wǎng)站,針對內(nèi)容排名計算時會引用聚合站點特定的算法。 ******************拓展閱讀1開始*************************************** 我相信很多SEO從業(yè)者剛接觸這行時,就聽說過一件事,就是內(nèi)容頁面導出鏈接要具有相關性。還有一件事,就是頁面下面要有相關閱讀,來吸引用戶縱深點擊。同時應該還聽人講過,內(nèi)鏈要適中,不可太多等。 但很少有人會說為什么,而越來越多的人因為不明其內(nèi)在道理,而漸漸忽視了這些細節(jié)。當然,以前的一些搜索引擎算法在內(nèi)容上的注重程度不夠,也起到了推波助瀾的作用。但是,如果從陰謀論的角度上來看,我可以假設出這么一個道理。 絕大部分用戶的搜索頁面,第一頁只有10個結果,除去我自家產(chǎn)品,往往僅剩下7個左右,一般用戶最多只會點擊到第3頁,那么我需要的優(yōu)質站點其實不到30個就可以最大限度的滿足用戶體驗。那么經(jīng)過3-5年的布局,逐漸篩選出一些耐得住寂寞和認真做細節(jié)的站,這時候我再將這一部分算法進行調(diào)整,進而篩選出這些優(yōu)質站點,推送給用戶。當然,在做的過程中還有更多的參考因素,比如域名年齡、JS數(shù)量,網(wǎng)站速度等。 ******************拓展閱讀1結束*************************************** ******************拓展閱讀2開始*************************************** 你們說,為什么當站文章中有大量相同時,會快速引起搜索引擎懲罰呢?這里我說的不是摘抄與原創(chuàng)的問題,而是你站內(nèi)自己和自己的文章重復。之所以搜索引擎反應這么快,同時懲罰嚴厲,根本原因就是在你的文章中,他提取不到內(nèi)容1。 ******************拓展閱讀2結束*************************************** 好,經(jīng)過這一系列處理,我已經(jīng)獲得了內(nèi)容1與內(nèi)容2了,下面該進行原創(chuàng)識別的算法了。 現(xiàn)在基本上搜索引擎對于原創(chuàng)的識別,在大面上采用的是關鍵詞匹配結合向量空間模型來進行判斷。Google就是這么做的,在其官方博客有相應的文章介紹。這里,我就做個大白話版本的介紹,爭取做到簡單易懂。 那么,我通過分析內(nèi)容1,得到內(nèi)容1中權重最高的關鍵詞k,那么按照權重大小進行排序,前N個權重最高的關鍵詞的集合我命名為K,則K={k1,k2,……,kn},則每一個關鍵詞都會對應一個其在頁面中獲取到的權重特征值,我將k1對應的權重特征值設定為t1,則前N個權重關鍵詞對應的特征值集合則為T={t1,t2,……,tn},那么我們有了這個特征項,就能計算出其相對應的特征向量W={w1,w2,……,wn}。接著我將K拼成字符串Z,同時MD5(Z)則表示字符串Z的MD5散列值。 那么假定我判定的兩個頁面分別是i與j。 則我計算出兩個公式。 1.當MD5(Zi)=MD5(Zj)時,頁面i與頁面j完全相同,判斷為轉載。 2.設定一個特定值α 當0≤α≤1的時候,我判定頁面相似為重復。 由此,對于原創(chuàng)文章的判斷就結束了。好了,苦逼煩悶的枯燥講解告一段落,下面我用大白話再重新復述一遍。 首先,你的內(nèi)容一模一樣,一個字都不帶改的,那肯定是摘抄的啊,這時候MD5散列值就能迅速的判斷出來。 其次,很多SEO他們懶,進行所謂的偽原創(chuàng),你說你偽原創(chuàng)時插入點自己的觀點與資料也成,結果你們就是改個近義詞什么的,于是我就用到了特征向量,通過特征向量的判斷,把你們這些低劣的偽原創(chuàng)抓出來。關于這個,判斷思想很簡單,你權重最高的前N個關鍵詞集合極為相似的時候,判斷為重復。這里所謂的相似包括但不僅僅局限于權重最高的前N個關鍵詞重合,于是構建了特征向量,當對比的兩個向量夾角與長度,當夾角與長度的差異度小于某個特定值的時候,我將其定義為相似文章。 ********************備注1開始************* 一直關注google反作弊小組官方博客的朋友們,應該看過google關于相似文章判斷算法的那篇博文,在那篇文章中,其主要使用的是余弦定理,就是主要計算夾角。不過后來Mr.Zhao又看了好幾篇文獻,覺得那篇博文應該僅僅是被google拋棄后才解密的,現(xiàn)在大體算法的趨勢,應該是計算夾角與長度,所以選擇現(xiàn)在給大家看的這個算法。 ********************備注1結束************* 好的,這里我們注意到了幾個問題。 1.α被判定為重復時的取值范圍是否可變? 2.內(nèi)容中如何提取出關鍵詞? 3.內(nèi)容中關鍵詞的權重值是如何賦予的? 下面我來逐一解答。 先說α判斷重復時的取值范圍,這個范圍是絕對可變的。隨著SEO行業(yè)的蓬勃發(fā)展,越來越多人想要投機取巧,而這是搜索引擎不能接受的。于是就會隔幾年進行一次算法大更新,而且每一次算法大更新,都會預告會影響百分之多少的搜索結果。那這影響結果的百分數(shù)是如何計算出來的?當然不是一個一個數(shù)的,在內(nèi)容方面(其它方面我會在其它文章中闡述),是通過調(diào)整α判斷相似度時的取值空間變化來計算的,每一個頁面在被我處理是,我所計算出的α值都會存儲在數(shù)據(jù)庫中,這樣我在每次算法調(diào)整時,風險都可做到最大的控制。 那么如何提取關鍵詞?這就是分詞技術了,我待會再講。頁面內(nèi)不同關鍵詞的權重賦值也在待會講。 關于文章相似性,簡而言之,就是以前大家改一改文章,比如“越來越多SEO開始重視起文章的質量?!备臑椤案哔|量的文章被更多的SEO所重視”,這個在以前沒有被識別出來,不是我沒有識別你的技術,而是我放寬范圍,我可以隨時在需要的時候,通過設定參數(shù)的取值范圍,來重新判斷頁面價值。 好,如果這里你有些糊涂,別著急,我接著慢慢的說。上述算法里,我需要知道前N個重要的關鍵詞以及其所對應的權重特征值。那這些數(shù)值我如何獲取呢? 首先,要先分詞。針對于分詞,我先設定一個流程,然后采用正向最大匹配、逆向最大匹配、最少切分等方式中的一種來進行分詞。這個在我會在我的博文《常見的中文分詞技術介紹》中講解,在此不再贅述。通過分詞,我得到了這個頁面內(nèi)容1的關鍵詞集合K。 在識別內(nèi)容1的時候,我就已經(jīng)構建了標簽樹,那么我的內(nèi)容1實際上已經(jīng)被標簽樹拆解為由段落組成的樹狀結構了。 上圖是內(nèi)容1的標簽樹。在這里,我遇到一個問題,那就是針對標簽樹權重賦值的時候,應該是面向整個頁面的標簽樹,還是僅僅面向內(nèi)容1的標簽樹的? 很多朋友可能會認為,既然是針對內(nèi)容1的關鍵詞進行賦值判斷,那只處理內(nèi)容1就好了。其實不然。一款搜索引擎,其處理的數(shù)據(jù)少說也要千萬級別的,所以搜索引擎對于高效率的代碼與算法要求是極高的。 而正常情況下,一個網(wǎng)站的網(wǎng)頁是不可能孤立存在的,在對一個頁面針對某一個關鍵詞進行排序的時候,除了要考慮站外因素外,我需要考慮站內(nèi)權重的繼承,那么在考慮站內(nèi)權重繼承的時候,我必然避不開內(nèi)鏈的計算,同時內(nèi)鏈本身也應該有不同的權重區(qū)分,而內(nèi)鏈權重計算時,我肯定要考慮其所在頁面與其相關性。既然如此,我就應該一次性對整個頁面所有的信息塊進行權重分配,這樣才是高效率,同時也充分體現(xiàn)了內(nèi)容與鏈接相關性的重要性。用一句大家常能在網(wǎng)上看見的話來說,就是相關性決定了鏈接投票的有效性。 好,既然確定下是整個標簽樹進行權重賦值,那么下面開始。 首先,我要確定重要關鍵詞的詞庫。重要關鍵詞的確定通過兩種方法: 1.不同行業(yè)的重點關鍵詞。 2.針對句子結構與詞性的重點關鍵詞。 每一款較為成熟的商業(yè)搜索引擎,針對不同行業(yè),其算法都會有所不同。而行業(yè)的判斷,就是依托于各個行業(yè)的關鍵詞庫進行的。最近百度針對一些特定關鍵詞,在搜索結果中返回網(wǎng)站的備案信息和認證信息,由此可見,詞庫其實早已存在。 那么,句子結構又從何說起呢?中文句子不外乎主謂賓定狀補幾個結構組成,而詞性也僅有名詞、動詞、介詞、形容詞、副詞、擬聲詞、代詞、數(shù)詞。相信很多人剛做SEO的時候,肯定聽說過搜索引擎除噪的時候,會去掉的地得和代詞,其實這種說法大面上對,但也并非完全準確。從根本原理來說,是針對句子結構與詞性而給予處理時的態(tài)度不同。我們可以肯定,主語一定是最重要的部分,往往一句話主語變了,其針對的事物和所要表述的意義也就往往不同。而針對的事物若有變化,極有可能導致這篇文章所涉及的行業(yè)有所變化。故而,主語肯定是我所需要的重點詞。這里為什么我沒有說在主語部分去掉代詞呢?因為往往去掉主語會使得句子失真,所以我要保留主語所有屬性的詞,即便是看起來沒有意義代詞。 那么定語呢?往往定語決定了一個事物的程度或性質,所以定語也很重要。但問題就來了,對于用戶來說,美麗的畫與漂亮的畫是同一個意思,而美麗的畫與難看的畫卻是相反的意思。同時其它句子結構例如補語作為句子的補充,往往承載了地點、時間等信息量,那也很重要。若是如此,那我又要如確定我認為最主要的關鍵詞呢? 這個問題確實很復雜,但其實能夠解決它的辦法既簡單又困難。那就是時間與數(shù)據(jù)的積累。也許有人會覺得我這么說是不負責任,但事實卻是如此。倘若這個世界上沒有SEO、沒有偽原創(chuàng),那么搜索引擎可以高枕無憂,因為沒有偽原創(chuàng)的干擾,搜索引擎可以迅速的識別出轉載內(nèi)容,然后非常輕松的計算排名。但有了偽原創(chuàng)之后,其實每一次內(nèi)容判斷算法的調(diào)整,更多的是對目前一些常見的偽原創(chuàng)做法進行識別。正因為有偽原創(chuàng)的存在,如果是我設計策略,我會設計出兩個詞庫,詞庫A是用于區(qū)分內(nèi)容所從屬的行業(yè),詞庫B則是針對不同行業(yè),然后在設置若干規(guī)則與這兩個子詞庫進行關聯(lián)。 舉例。比如偽原創(chuàng)猖獗的醫(yī)療SEO,通過一些病種詞,可以迅速識別出其內(nèi)容屬于醫(yī)療行業(yè)。那么在選擇的時候,鑒于某些原因,我將嚴厲對待醫(yī)療,則我認為醫(yī)療文章內(nèi)容重要的僅僅是充當主語的名詞,然后在充當主語的名詞中,病種名詞作為最優(yōu)先,進而進行優(yōu)先級排序,在排序中若主語名詞數(shù)大于N,則按照其所處的信息塊距離根節(jié)點最近最有先原則,并且同一名詞僅選擇一次,然后選取前N個重要關鍵詞作為賦值的初始節(jié)點,進行權重賦值。 那么在賦值的時候,我設定賦值系數(shù)e,我可以判斷在這幾個被賦值的節(jié)點上,根據(jù)關鍵詞種類來確定賦值的比重。比如與title中重復的病種名詞,其對應的系數(shù)為e1,與title中不對應的病種名詞系數(shù)為e2,其它名詞系數(shù)為e3。然后我開始遍歷標簽樹。 整個頁面自身權重為Q,按照前N個關鍵詞的順序依次遍歷。那么我的遍歷原則如下: 1.第一次遍歷時,第一個重要節(jié)點權重值為Qe1,其父節(jié)點權重值為Qe1*b,其子節(jié)點權重值為Qe1*c,然后以此原則繼續(xù)遍歷父節(jié)點的父節(jié)點及其父節(jié)點的子節(jié)點和子節(jié)點的子節(jié)點及其子節(jié)點的父節(jié)點。 以下舉例。假定Q為1,e1為3 則一開始如下圖 然后假定a為上一個數(shù)的平方根,b為上一個數(shù)的立方根。則如下圖 接著開始遍歷其它節(jié)點。 當整個網(wǎng)頁標簽樹的所有節(jié)點全部被賦值后,第一次遍歷結束。這時候開始第二次遍歷,注意這時候與e2相乘的就不是Q了,而是第二個重要關鍵詞所在節(jié)點的當前權重值。 這樣經(jīng)過N此遍歷,每一個信息塊都會有自己相對應的權重數(shù)值,然后我單獨提取內(nèi)容1的信息塊,具體上文中有畫圖,在此就不再多畫了。將內(nèi)容1量化。量化后,我就能夠得到上文中我所需要的權重特征值T={t1,t2,……,tn}。由此,這個算法層就首位相應的完善了。量化公式很多,我在此就不舉例了,因為這個舉例毫無意義,我又不是真寫搜索引擎。 *******拓展閱讀3開始************************************ 鏈接模塊的權重,將最后被超鏈接傳到至其所指向的頁面中。這也說明了不同位置的鏈接,其傳導的權重各不相同。內(nèi)鏈的位置決定了內(nèi)鏈的權重繼承。而大家經(jīng)常聽到的,內(nèi)鏈上下文要出現(xiàn)關鍵字,其實就是這個算法所衍生出的現(xiàn)象。 *******拓展閱讀3結束************************************ 至此,這個算法層基本結束了。 ******聲明1開始***************************************** 1.我再次強調(diào),文中算法不是我寫的,是我借鑒別人的,借鑒誰的?我忘了……,好多好多。 2.所有有經(jīng)驗的商業(yè)搜索引擎,其算法肯定是分層的,絕對不會僅僅是一個算法層,所以這個單一的算法層,對排名來說可以說影響很大,但絕對不是完全按照這一個算法層來進行排名的。 3.本文首發(fā)Mr.Zhao的SEO博客,轉載請保留原文出處:http://www.seozhao.com/379.html ******聲明1結束***************************************** 那么大致了解了這一個層的算法之后,對我們的實際操作有什么具體的幫助嗎? 1.我們可以有效知道,如何合理的設置內(nèi)容頁的欄目布局,使得我們在轉載文章時,讓百度知道我們在轉載文章的同時,為了更好的用戶體驗而聚合了各方觀點的文章。 2.我們可以更好的知道,哪些文章會被判定為相似文章。 3.這個是最重要的一點,就是我們能夠更好的對內(nèi)容頁面進行布局。真正的白帽SEO,在對站內(nèi)進行梳理時,其站內(nèi)欄目在頁面上的布局尤為重要,有經(jīng)驗的SEO能夠有效的利用頁面的權重繼承,進而增加長尾排名,這對于門戶網(wǎng)站或是B2C等擁有大量內(nèi)容頁的網(wǎng)站來說,非常重要。當然,在長尾排名方面,對頁面權重傳輸?shù)牧私馀c布局僅僅是基礎,今后我會在后續(xù)文章中,在對欄目層級設置與權重傳遞方面,針對我的觀點進行闡述。 4.明白內(nèi)鏈權重繼承的大致原理。 來源:Mr.Zhao投稿,原文鏈接。 該文章在 2012/11/19 8:55:33 編輯過 |
關鍵字查詢
相關文章
正在查詢... |