導航:首頁 > 網站優化 > 倒排索引對seo的影響

倒排索引對seo的影響

發布時間:2020-09-07 00:43:45

1、什麼是倒排索引

倒排索引表中的每一項都包括一個屬性值和具有該屬性值的各記錄的地址。由於不是由記錄來確定屬性值,而是由屬性值來確定記錄的位置,因而稱為倒排索引(inverted index)。帶有倒排索引的文件我們稱為倒排索引文件,簡稱倒排文件。建立全文索引中有兩項非常重要,一個是如何對文本進行分詞,一是建立索引的數據結構。分詞的方法基本上是二元分詞法、最大匹配法和統計方法。索引的數據結構基本上採用倒排索引的結構。
分詞的好壞關繫到查詢的准確程度和生成的索引的大小。在中文分詞發展中,早期經常使用分詞方式是二元分詞法,該方法的基本原理是將包含中文的句子進行二元分割,不考慮單詞含義,只對二元單詞進行索引。因此該方法所分出的單詞數量較多,從而產生的索引數量巨大,查詢中會將無用的數據檢索出來,好處是演算法簡單不會漏掉檢索的數據。之後又發展出最大匹配分詞方法,該方法又分為正向最大分詞和逆向最大分詞。其原理和查字典類似,對常用單詞生成一個詞典,分析句子的過程中最大的匹配字典中的單詞,從而將句子拆分為有意義的單詞鏈。最大匹配法中正向分詞方法對偏正式詞語的分辨容易產生錯誤,比如「首飾和服裝」會將「和服」作為單詞分出。達夢資料庫採用的是改進的逆向最大分詞方法,該分詞方法較正向正確率有所提高。最為復雜的是通過統計方式進行分詞的方法。該方法採用隱式馬爾科夫鏈,也就是後一個單詞出現的概率依靠於前一個單詞出現的概率,最後統計所有單詞出現的概率的最大為分詞的依據。這個方法對新名詞和地名的識別要遠遠高於最大匹配法,准確度隨著取樣文本的數量的增大而提高。
二元分詞方法和統計方法是不依賴於詞典的,而最大匹配法分詞方法是依賴於詞典的,詞典的內容決定分詞結構的好壞。
全文檢索的索引被稱為倒排索引,之所以成為倒排索引,是因為將每一個單詞作為索引項,根據該索引項查找包含該單詞的文本。因此,索引都是單詞和唯一記錄文本的標示是一對多的關系。將索引單詞排序,根據排序後的單詞定位包含該單詞的文本。
步驟1)讀取一整條句子到變數str中,轉到步驟2

步驟2)從句子的尾端讀取1個字到變數word中,轉到步驟3

步驟3)在字典查找word中保存的單詞。如果存在則保存word,轉到步驟4,否則轉到步驟5)

步驟4)如果是字典中最大單詞或者超過最大單詞數(認定為新詞),從句尾去掉該單詞,返回步驟2

步驟5)讀取前一個字到word中,構成新單詞,轉到步驟3)

詞庫的內存數據結構和詞庫中單詞的匹配演算法

內存中單詞採用層次結構保存

假設字典中有如下的單詞:中國 中華民國 國家 人民 民主

在內存中按照如下方式按層排列,其中每一個方塊代表一個字,箭頭所指向為該單詞的前一個字

2、倒排索引不包文檔裡面的關鍵字他還會去查嗎

首先,要提取倒排索引內詞典文件中的關鍵詞;
對提取出來的關鍵詞進行編碼。本章採取hash編碼的方式。既然要用hash編碼,那麼最重要的就是要解決hash沖突的問題,下文會詳細介紹。
有一點必須提醒讀者的是,倒排索引包含詞典和倒排記錄表兩個部分,詞典一般有詞項(或稱為關鍵詞)和詞項頻率(即這個詞項或關鍵詞出現的次數),倒排記錄表則記錄著上述詞項(或關鍵詞)所出現的位置,或出現的文檔及網頁ID等相關信息。
24.1、正排索引與倒排索引
咱們先來看什麼是倒排索引,以及倒排索引與正排索引之間的區別:
我們知道,搜索引擎的關鍵步驟就是建立倒排索引,所謂倒排索引一般表示為一個關鍵詞,然後是它的頻度(出現的次數),位置(出現在哪一篇文章或網頁中,及有關的日期,作者等信息),它相當於為互聯網上幾千億頁網頁做了一個索引,好比一本書的目錄、標簽一般。讀者想看哪一個主題相關的章節,直接根據目錄即可找到相關的頁面。不必再從書的第一頁到最後一頁,一頁一頁的查找。

接下來,闡述下正排索引與倒排索引的區別:

一般索引(正排索引)
正排表是以文檔的ID為關鍵字,表中記錄文檔中每個字的位置信息,查找時掃描表中每個文檔中字的信息直到找出所有包含查詢關鍵字的文檔。正排表結構如圖1所示,這種組織方法在建立索引的時候結構比較簡單,建立比較方便且易於維護;因為索引是基於文檔建立的,若是有新的文檔假如,直接為該文檔建立一個新的索引塊,掛接在原來索引文件的後面。若是有文檔刪除,則直接找到該文檔號文檔對因的索引信息,將其直接刪除。但是在查詢的時候需對所有的文檔進行掃描以確保沒有遺漏,這樣就使得檢索時間大大延長,檢索效率低下。
盡管正排表的工作原理非常的簡單,但是由於其檢索效率太低,除非在特定情況下,否則實用性價值不大。

倒排索引
倒排表以字或詞為關鍵字進行索引,表中關鍵字所對應的記錄表項記錄了出現這個字或詞的所有文檔,一個表項就是一個字表段,它記錄該文檔的ID和字元在該文檔中出現的位置情況。由於每個字或詞對應的文檔數量在動態變化,所以倒排表的建立和維護都較為復雜,但是在查詢的時候由於可以一次得到查詢關鍵字所對應的所有文檔,所以效率高於正排表。在全文檢索中,檢索的快速響應是一個最為關鍵的性能,而索引建立由於在後台進行,盡管效率相對低一些,但不會影響整個搜索引擎的效率。
倒排表的結構圖如圖2:

倒排表的索引信息保存的是字或詞後繼數組模型、互關聯後繼數組模型條在文檔內的位置,在同一篇文檔內相鄰的字或詞條的前後關系沒有被保存到索引文件內。

24.2、倒排索引中提取關鍵詞
倒排索引是搜索引擎之基石。建成了倒排索引後,用戶要查找某個query,如在搜索框輸入某個關鍵詞:「結構之法」後,搜索引擎不會再次使用爬蟲又一個一個去抓取每一個網頁,從上到下掃描網頁,看這個網頁有沒有出現這個關鍵詞,而是會在它預先生成的倒排索引文件中查找和匹配包含這個關鍵詞「結構之法」的所有網頁。找到了之後,再按相關性度排序,最終把排序後的結果顯示給用戶。

如下,即是一個倒排索引文件(不全),我們把它取名為big_index,文件中每一較短的,不包含有「#####」符號的便是某個關鍵詞,及這個關鍵詞的出現次數。現在要從這個大索引文件中提取出這些關鍵詞,--Firelf--,-11,-Winter-,.,007,007:天降殺機,02Chan..如何做到呢?一行一行的掃描整個索引文件么?
何意?之前已經說過:倒排索引包含詞典和倒排記錄表兩個部分,詞典一般有詞項(或稱為關鍵詞)和詞項頻率(即這個詞項或關鍵詞出現的次數),倒排記錄表則記錄著上述詞項(或關鍵詞)所出現的位置,或出現的文檔及網頁ID等相關信息。
最簡單的講,就是要提取詞典中的詞項(關鍵詞):--Firelf--,-11,-Winter-,.,007,007:天降殺機,02Chan...。
--Firelf--(關鍵詞) 8(出現次數)

我們可以試著這么解決:通過查找#####便可判斷某一行出現的詞是不是關鍵詞,但如果這樣做的話,便要掃描整個索引文件的每一行,代價實在巨大。如何提高速度呢?對了,關鍵詞後面的那個出現次數為我們問題的解決起到了很好的作用,如下注釋所示:
// 本身沒有##### 的行 判定為關鍵詞行,後跟這個關鍵詞的行數N(即詞項頻率)
// 接下來,截取關鍵詞--Firelf--,然後讀取後面關鍵詞的行數N
// 再跳過N行(濾過和避免掃描中間的倒排記錄表信息)
// 讀取下一個關鍵詞..

有朋友指出,上述方法雖然減少了掃描的行數,但並沒有減少I0開銷。讀者是否有更好地辦法?歡迎隨時交流。

24.2、為提取出來的關鍵詞編碼
愛思考的朋友可能會問,上述從倒排索引文件中提取出那些關鍵詞(詞項)的操作是為了什麼呢?其實如我個人微博上12月12日所述的Hash詞典編碼:
詞典文件的編碼:1、詞典怎麼生成(存儲和構造詞典);2、如何運用hash對輸入的漢字進行編碼;3、如何更好的解決沖突,即不重復以及追加功能。具體例子為:事先構造好詞典文件後,輸入一個詞,要求找到這個詞的編碼,然後將其編碼輸出。且要有不斷能添加詞的功能,不得重復。
步驟應該是如下:1、讀索引文件;2、提取索引中的詞出來;3、詞典怎麼生成,存儲和構造詞典;4、詞典文件的編碼:不重復與追加功能。編碼比如,輸入中國,他的編碼可以為10001,然後輸入銀行,他的編碼可以為10002。只要實現不斷添加詞功能,以及不重復即可,詞典類的大文件,hash最重要的是怎樣避免沖突。

也就是說,現在我要對上述提取出來後的關鍵詞進行編碼,採取何種方式編碼呢?暫時用hash函數編碼。編碼之後的效果將是每一個關鍵詞都有一個特定的編碼,如下圖所示(與上文big_index文件比較一下便知):
--Firelf-- 對應編碼為:135942
-11 對應編碼為:106101

3、什麼是倒排索引(inverted index)

這種索引表中的每一項都包括一個屬性值和具有該屬性值的各記錄的地址。由於不是由記錄來確定屬性值,而是由屬性值來確定記錄的位置,因而稱為倒排索引(inverted index)。帶有倒排索引的文件我們稱為倒排索引文件,簡稱倒排文件

4、比倒排索引更優化的搜索演算法有哪些

倒排索引表中的每一項都包括一個屬性值和具有該屬性值的各記錄的地址。由於不是由記錄來確定屬性值,而是由屬性值來確定記錄的位置,因而稱為倒排索引(inverted index)。帶有倒排索引的文件我們稱為倒排索引文件,簡稱倒排文件。建立全文索引中...

5、seo到底該如何做呢?

第一,頁面標題。這個我想無需多言,只要有常識的都知道頁面標題是頁面優化不會忽視的一個關鍵點。對於如何寫好一個頁面標題,這里也不多做講述。一般來說,一個標題不能放超過三個關鍵詞,越重要的放在越前面。切記堆砌關鍵詞,並注意標題通順。

第二,頁面描述。頁面描述(description)的主要作用並非體現在提高網頁相關性上,而是直接影響搜索引擎排名結果的點擊率上。做過競價的朋友的知道,寫頁面描述實際上就是相當於競價中寫的「創意」。所以,我對頁面描述的撰寫完全參照「創意」的寫法。

第三,關鍵詞密度以及完整出現。關鍵詞密度曾經一度是黑帽seo作弊的對象,雖然當今的搜索引擎大幅降低關鍵詞密度的權重,但是一個合理的關鍵詞密度仍是頁面優化必須做的一個關鍵點。(題外話:真實的關鍵詞密度是文章經過中文分詞後,得到詞項的集合,假設關鍵詞就是一個詞項,該關鍵詞出現的次數除以所有詞項的個數可得。)而關鍵詞完整出現則直接顯示其相關性,不可或缺。

第四,加粗或下劃線。為關鍵詞加粗或下劃線是為了幫助搜索引擎進行中文分詞的時候更容易判斷出該關鍵詞應為一個詞項,避免被分詞。

第五,主題偏移度。這就好比中學作文所說的「主題要集中」,就是盡量避免出現「題外話」。因為搜索引擎從倒排索引中找到網頁,仍需要得到倒排索引文檔與正排索引文檔的詞項向量,計算其餘弦相似度。

第六,導入錨文本。包括站內和站外的導入錨文本。錨文字的寫法可以是該頁面的目標關鍵詞,也可以是擴展的語義相關詞。它與頁面標題是最能體現頁面相關性的兩個方面,非常重要!

基本上,頁面優化能做好這六方面,足矣!根本不需要再花太多時間在頁面優化其他方面。如果有時間倒不如多花在提高頁面的「內容質量」和「頁面排版」上!

6、倒排索引的更新策略

更新策略有四種 :完全重建、再合並策略、原地更新策略以及混合策略。 完全重建策略:當新增文檔到達一定數量,將新增文檔和原先的老文檔整合,然後利用靜態索引創建方法對所有文檔重建索引,新索引建立完成後老索引會被遺棄。此法代價高,但是主流商業搜索引擎一般是採用此方式來維護索引的更新(這句話是書中原話) 再合並策略:當新增文檔進入系統,解析文檔,之後更新內存中維護的臨時索引,文檔中出現的每個單詞,在其倒排表列表末尾追加倒排表列表項;一旦臨時索引將指定內存消耗光,即進行一次索引合並,這里需要倒排文件里的倒排列表存放順序已經按照索引單詞字典順序由低到高排序,這樣直接順序掃描合並即可。其缺點是:因為要生成新的倒排索引文件,所以對老索引中的很多單詞,盡管其在倒排列表並未發生任何變化,也需要將其從老索引中取出來並寫入新索引中,這樣對磁碟消耗是沒必要的。 原地更新策略:試圖改進再合並策略,在原地合並倒排表,這需要提前分配一定的空間給未來插入,如果提前分配的空間不夠了需要遷移。實際顯示,其索引更新的效率比再合並策略要低。 混合策略:出發點是能夠結合不同索引更新策略的長處,將不同索引更新策略混合,以形成更高效的方法。

7、跪求「倒排索引表的改進策略」

關於這個問題,比較簡單,怎麼會這么簡單呢?因為。。。。。。。

嘿嘿!!!

正確答案:人=吃飯+睡覺+上班+玩, 

豬=吃飯+睡覺, 

代入:人=豬+上班+玩, 

即:人-玩=豬+上班. 

結論:不懂玩的人=會上班的豬

男人=吃飯+ 睡覺+賺錢 

豬=吃飯+ 睡覺 

代入:男人=豬+賺錢 

即:豬=男人-賺錢 

所以男人不賺錢等於豬。 

女人=吃飯+ 睡覺+花錢。 

豬 =吃飯+ 睡覺。 

代入:女人=豬+花錢 

即:女人-花錢=豬。 

結論:女人不花錢的都是豬。

綜上: 

男人為了讓女人不變成豬而賺錢! 

女人為了讓男人不變成豬而花錢!

結論: 

男人+女人 

=(豬+賺錢)+(豬+花錢) 

=兩頭豬!!!!

結果:問這個問題的人是頭豬!

8、SEO搜索引擎正排索引和倒排索引的區別

正排索引:一個文件(網站/網頁)對應許多關鍵詞
倒排索引:一個關鍵詞對應許多文件(網站/網頁)
我們搜索關鍵詞之後的結果就是倒排索引的體現,你搜一個關鍵詞,出現很多文件可選擇瀏覽

9、seo什麼都不會,我能學到什麼程度?

SEO(Search Engine Optimization)漢譯為搜索引擎優化。搜索引擎優化是一種利用搜索引擎的搜索規則來提高目前網站在有關搜索引擎內的自然排名的方式。SEO的目的理解是:為網站提供生態式的自我營銷解決方案,讓網站在行業內占據領先地位,從而獲得品牌收益;SEO包含站外SEO和站內SEO兩方面;SEO是指為了從搜索引擎中獲得更多的免費流量,從網站結構、內容建設方案、用戶互動傳播、頁面等角度進行合理規劃,使網站更適合搜索引擎的索引原則的行為;使網站更適合搜索引擎的索引原則又被稱為對搜索引擎優化,對搜索引擎優化不僅能夠提高SEO的效果,還會使搜索引擎中顯示的網站相關信息對用戶來說更具有吸引力。

10、在分布式環境中,建立倒排索引需要考慮哪些問題

倒排索引表中的每一項都包括一個屬性值和具有該屬性值的各記錄的地址。由於不是由記錄來確定屬性值,而是由屬性值來確定記錄的位置,因而稱為倒排索引(inverted index)。帶有倒排索引的文件我們稱為倒排索引文件,簡稱倒排文件。建立全文索引中有兩項非常重要,一個是如何對文本進行分詞,一是建立索引的數據結構。分詞的方法基本上是二元分詞法、最大匹配法和統計方法。索引的數據結構基本上採用倒排索引的結構。

與倒排索引對seo的影響相關的知識