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