日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

倒排索引(Inverted File Index )

發(fā)布時(shí)間:2025/3/21 编程问答 57 豆豆
生活随笔 收集整理的這篇文章主要介紹了 倒排索引(Inverted File Index ) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.


目前主流的索引技術(shù)有三種:倒排文件、后綴數(shù)組和簽名。后綴數(shù)組的方法雖然快,但是其維護(hù)困難,代價(jià)相當(dāng)高,不適合做引擎的索引。簽名是一種很好的索引方式,但倒排文件的速度和性能已經(jīng)超過了簽名。倒排文件是一種在各大搜索引擎中被主要使用的索引的方式,并且它也是搜索引擎中一個(gè)核心的技術(shù)。

(1)順排文件的建立

假設(shè)有網(wǎng)頁P(yáng)1,P2,……,Pn,給每個(gè)網(wǎng)頁文件賦予一個(gè)編號Pid,給每個(gè)關(guān)鍵字賦予一個(gè)編號keyi,假設(shè)key是網(wǎng)頁文件中的一個(gè)關(guān)鍵字,ni表示該關(guān)鍵字在網(wǎng)頁文件中出現(xiàn)的次數(shù),<hit1,hit2,…,hitn>表示該關(guān)鍵字在網(wǎng)頁文件中的位置信息。首先將網(wǎng)頁內(nèi)容切分成一系列關(guān)鍵字:Pi={Key1,key2,…,keyn}。建立以下順排文件:

P1={[n1,Key1(hit1,hit2,…,hitn)],…,[nx,keyi(hit1,hit2,…,hitx)] }

P2={[n1,Key1(hit1,hit2,…,hitn)],…,[nn,keyk(hit1,hit2,…,hitn)] }

…………

Pn={[n1,Key1(hit1,hit2,…,hitn)],…,[ny,keyj(hit1,hit2,…,hity)] }

例如,對以下兩段文字進(jìn)行順排文件操作。

“隨著經(jīng)濟(jì)的發(fā)展,人們對生活的品質(zhì)要求越來越高。特別是在視覺欣賞方面,更是追求精益求精。如何把模糊的圖像變得清晰,把暗淡的色彩變得色彩鮮艷是一個(gè)非常值得研究的課題。并且在數(shù)字電視、掃描儀、醫(yī)療圖像、計(jì)算機(jī)視覺、衛(wèi)星監(jiān)測、航空攝像等方面對圖像的清晰度有著廣泛的需求。目前基于網(wǎng)格和密度的聚類方法已經(jīng)滲透到各個(gè)領(lǐng)域,且得到了令人意想不到的效果。本文是將基于網(wǎng)格和密度的聚類方法運(yùn)用到模糊圖像中,從而對圖像進(jìn)行增色處理。”

“數(shù)字圖像處理又稱為計(jì)算機(jī)圖像處理,它是指將圖像信號轉(zhuǎn)換成數(shù)字信號并利用計(jì)算機(jī)對其進(jìn)行處理的過程。數(shù)字圖像處理最早出現(xiàn)于20世紀(jì)50年代,當(dāng)時(shí)的電子計(jì)算機(jī)已經(jīng)發(fā)展到一定水平,人們開始利用計(jì)算機(jī)來處理圖形和圖像信息。數(shù)字圖像處理作為一門學(xué)科大約形成于20世紀(jì)60年代初期。早期的圖像處理的目的是改善圖像的質(zhì)量,它以人為對象,以改善人的視覺效果為目的。”

假設(shè)第一段文字是一個(gè)網(wǎng)頁P(yáng)1的全部內(nèi)容,段首的起始位置為1。第二段文字是第二個(gè)網(wǎng)頁P(yáng)2的全部內(nèi)容,段首的起始位置為1。

對網(wǎng)頁進(jìn)行自動(dòng)分詞,得到關(guān)鍵字以及關(guān)鍵字在網(wǎng)頁文件中出現(xiàn)的位置信息。順排文件的結(jié)果為:

P1={[1,經(jīng)濟(jì)(3)],[1,發(fā)展(6)],……,[2,視覺(26,93)],……,[5,圖像(46,88,107,177,182)],……,[1,處理(189)]}

P2={[4,數(shù)字(1,29,48,101)],[8,圖像(3,13,21,49,96,103,130,140)],……,[1,視覺(156)],……,[2,目的(135,161)]}

(2)實(shí)現(xiàn)倒排文件的原理

順排文件是以網(wǎng)頁來索引關(guān)鍵字的,即形式為(網(wǎng)頁→關(guān)鍵字),不符合搜索引擎的需要。因此,需進(jìn)行倒排處理,以關(guān)鍵字來索引網(wǎng)頁,即形式為(關(guān)鍵字→網(wǎng)頁):
Keyi→{[Pid1,ni1(hit1,hit2,…,hitni1)],…,[Pidn,nin(hit1,hit2,…,hitnin)]}

對以上順排文件中建立的兩個(gè)實(shí)例網(wǎng)頁P(yáng)1和P2的順排文件進(jìn)行倒排,倒排文件的結(jié)果為:

經(jīng)濟(jì)→{[P1,1(3)]}

發(fā)展→{[P1,1(6)],[P2,1(74)]}

……

視覺→{[P1,2(26,93)],[P2,1(156)]}

……

圖像→{[P1,5(46,88,107,177,182)],[P2,8(3,13,21,49,96,103,130,140)]}

……

綜上所述,倒排文件的實(shí)現(xiàn)過程是:先得到順排文件,然后根據(jù)順排文件得到倒排文件,從而實(shí)現(xiàn)由關(guān)鍵字來索引網(wǎng)頁。

(3)倒排文件的優(yōu)化之一—位圖文件

在實(shí)際中,一般索引項(xiàng)并不存儲實(shí)際的關(guān)鍵字,而存儲它的一個(gè)編號值(kid),這樣可以有效節(jié)約存儲空間。對于文件鏈表(Posting),只存儲網(wǎng)頁文件編號(Pid)和網(wǎng)頁文件編號加上該關(guān)鍵字在文件中出現(xiàn)的位置信息。

其中Pid1,…,Pidn表示包含關(guān)鍵字ki的所有網(wǎng)頁文件集合,考慮到文件鏈表進(jìn)行布爾運(yùn)算時(shí),速度不是很快,以及使用文件鏈表要消耗大量內(nèi)存等問題,一般采用位圖(Bitmap)文件來實(shí)現(xiàn)倒排索引。Bitmap的優(yōu)點(diǎn)是布爾運(yùn)算非常快,直接用對應(yīng)的bit位作運(yùn)算就可以了。想要得到同時(shí)包含某幾個(gè)關(guān)鍵字的網(wǎng)頁,那么直接把它們對應(yīng)的網(wǎng)頁文件位圖向量進(jìn)行與運(yùn)算,就可以知道在哪些文件中同時(shí)包含了這幾個(gè)關(guān)鍵字。在文件數(shù)目不是很多的情況下,只存儲命中信息,實(shí)現(xiàn)了命中信息和非命中信息(比如關(guān)鍵字在文件中的位置,關(guān)鍵字在文件中出現(xiàn)的頻率等)的分離,可以大大提高索引的效率。

把由網(wǎng)頁文件向量Pi=<key1,key2,…,keyn>構(gòu)成的“網(wǎng)頁→關(guān)鍵字”,轉(zhuǎn)化成“關(guān)鍵字→網(wǎng)頁”。轉(zhuǎn)換方法是根據(jù)網(wǎng)頁文件向量構(gòu)成“網(wǎng)頁-關(guān)鍵字”陣列,如圖5-2所示,并用Bitmap作為存儲結(jié)構(gòu),形成倒排矩陣A,如圖5-3所示。

倒排矩陣中的Aij元素取值為0,表示網(wǎng)頁P(yáng)j中沒有關(guān)鍵字ki;倒排矩陣中的Aij元素取值為1,表示網(wǎng)頁P(yáng)j中有關(guān)鍵字ki。以此可以得到包含某關(guān)鍵字的網(wǎng)頁的文件集合,然后根據(jù)文件鏈表得到此關(guān)鍵字在網(wǎng)頁中的出現(xiàn)位置信息。

?

Bitmap文件實(shí)現(xiàn)的倒排矩陣在海量數(shù)據(jù)環(huán)境下是比較稀疏的,必須對它進(jìn)行壓縮,并且保證在解壓的過程中,速度也比較快,這樣可以大大提高索引的性能,也節(jié)省了大量的存儲空間。目前比較成熟的位圖壓縮算法主要有Delta encoding、Variable-length encoding、Gamma codes等。

雖然它們都是比較成熟的算法,但是要么實(shí)現(xiàn)起來比較復(fù)雜;要么壓縮效率很高,但是解壓的過程要消耗較長的時(shí)間,這對于搜索引擎的實(shí)時(shí)響應(yīng)要求很高的系統(tǒng)是不適合的。

2.改善倒排文件性能的方法

倒排文件的時(shí)間代價(jià)主要取決于詞匯表的組織方式,詞匯表文件通常較小且比較固定,對于未登錄詞和數(shù)詞可以按字建索引;倒排文件的空間代價(jià)主要取決于對事件表的壓縮能力,事件表的壓縮能減少I/O操作,也能提高部分時(shí)間性能。詞匯表文件的組織方式通常采用Hash散列表,按字母表順序有序排列,采用Trie樹、B樹等查找樹。事件表的壓縮通常采用Bitmap文件壓縮或差值壓縮(Delta Compression)詞匯表的哈希存儲,根據(jù)給定的關(guān)鍵字,散列成一個(gè)整數(shù),用該整數(shù)作為詞匯的訪問地址。

倒排文件的優(yōu)點(diǎn)是:實(shí)現(xiàn)簡單,響應(yīng)時(shí)間快,支持復(fù)雜查詢,適合商用搜索引擎。缺點(diǎn)是:建立索引要消耗很大的磁盤、內(nèi)存空間;當(dāng)網(wǎng)頁更新后,索引的維護(hù)代價(jià)也比較大。

總結(jié)

以上是生活随笔為你收集整理的倒排索引(Inverted File Index )的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。