全文檢索有哪些技術原理和過程
全文索引用於處理大文字集合,利用它人們可以在海量文字中快速獲取需要的資訊。下面是小編整理的全文索引的內容,歡迎閱讀。
全文索引的介紹
全文索引技術是目前搜尋引擎的關鍵技術。
試想在1M大小的檔案中搜索一個詞,可能需要幾秒,在100M的檔案中可能需要幾十秒,如果在更大的檔案中搜索那麼就需要更大的系統開銷,這樣的開銷是不現實的。
所以在這樣的矛盾下出現了全文索引技術,有時候有人叫倒排文件技術。
全文檢索技術原理
原理是先定義一個詞庫,然後在文章中查詢每個詞條term出現的頻率和位置,把這樣的頻率和位置資訊按照詞庫的順序歸納,這樣就相當於對檔案建立了一個以詞庫為目錄的索引,這樣查詢某個詞的時候就能很快的定位到該詞出現的位置。
問題在處理英文文件的時候顯然這樣的方式是非常好的,因為英文自然的被空格分成若干詞,只要我們有足夠大的詞彙庫就能很好的處理。但是亞洲文字因為沒有空格作為斷詞標誌,所以就很難判斷一個詞,而且人們使用的詞彙在不斷的變化,而維護一個可擴充套件的詞彙庫的成本是很高的,所以問題出現了。
解決出現這樣的問題使“分詞”成為全文索引的關鍵技術。目前有兩種基本的方法:
二元法 它把所有有可能的每兩兩漢字的組合看為一個片語,這樣就沒有維護詞庫的開銷。
詞庫法 它使使用詞庫中的詞作為切分的標準,這樣也出現了詞庫跟不上詞彙發展的問題,除非你維護詞庫。
實際上現在很多著名的搜尋引擎都使用了多種分詞的辦法,比如“正向最大匹配”+“逆向最大匹配”,基於統計學的新詞識別,自動維護詞庫等技術,但是顯然這樣的技術還沒有做到完美。
全文檢索技術儲存過程
目前全文索引技術正走向人工智慧化,也是發展的方向。
MicroSoft SqlServer 2000/2005 中的全文索引是由一系列儲存過程來完成的,這些儲存過程按先後順序羅列如下:
1、啟動資料庫的全文索引服務儲存過程:sp_fulltext_service
2、初始化全文索引儲存過程:sp_fulltext_database
3、建立全文索引目錄儲存過程:sp_fulltext_catalog
4、在全文索引目錄中新增刪除表標記儲存過程:sp_fulltext_table
5、在全文索引目錄的表中新增或刪除列標記儲存過程:sp_fulltext_column
全文檢索的技術
1概述
圖書情報界對於檢索語言的主流觀點:自然語言檢索是發展方向,資訊檢索要走自然語言道路;人工語言不適應網路環境;目前自然語言檢索技術雖有缺點,但人工智慧發展可使其逐步達到完善,滿足檢索的要求。
自然語言檢索技術包括:1關鍵詞索引及以關鍵詞為檢索標識的文獻題錄資料庫;
2全文資料庫;3搜尋引擎及由搜尋引擎自動建立的網路資源資料庫;4自動標引;
5自動分類。在這5個主要方面中,只有關鍵詞索引及資料庫、全文檢索、搜尋引擎已經實現,但這3個方面的實質都是關鍵詞檢索,所以可以說自然語言檢索目前僅在關鍵詞檢索的層次上實現。
目前關鍵詞檢索技術的最主要用途就是用來實現全文檢索,它是全文檢索的核心。並且關鍵詞檢索和全文檢索是密不可分的。
2基本概念
所謂全文檢索,是指直接以全文字資訊作為主要處理物件,並根據資料資料的內容而不是外在特徵來實現的資訊檢索手段。它的基本工作方式是能夠將所有包含檢索詞的文獻檢索出來,不管這個詞出現在文獻的什麼位置,或者說文獻中的任意一個詞都可以作為檢索到該文獻的條件。全文檢索提供存取全文文字指原始記錄的空間,文字中任何字元和字串均可作為檢索的點,全文檢索是以原始記錄中的檢索詞、字間的特定位置為物件的運算,對文獻不作標引,故沒有標引用詞。因此,全文檢索是一種可以不依賴敘詞表而直接使用自由詞的檢索方法。
3實現條件
要實現全文檢索需要2個必要的條件:一是需要將最終資訊本身輸入到計算機裡,這個問題看似簡單,實際上它包含了極大的工作量;二是需要有相應的軟體支援,全文資訊不僅包括書刊的文字資訊,而且包括圖片、聲音、視訊資訊等各種資訊資料,即使只將書刊及各種資料的文字資訊輸入計算機,其資訊量就非常大了。因此,必須有專門的方法、專門的軟體來支援這種“最終資訊”的檢索,這類軟體就是全文檢索軟體。
3.1 全文檢索的實現方式
全文檢索目前主要通過以下方式來實現:①採用自由指定的檢索項如關鍵詞、字串等直接與全文文字的一次資料高速對照,進行檢索;②對文字內容中的每個檢索項進行位置掃描,然後排序,建立以每個檢索項的離散碼為表目的倒排文件;③採用超文字模型建立全文資料庫,實現超文字檢索。
3.2 全文檢索的核心技術
全文檢索的核心技術是將源文件中所有的基本元素的出現資訊記錄到索引庫中。中文全文檢索技術在原理上同西文全文檢索是一致的,但漢字本身的特點使中文系統的實現比西文系統更為複雜。在西文中,文件的基本元素是單詞,可以以單詞建立索引庫,而且單詞與單詞之間有天然的間隔符空格,所以索引檔案的建立相對簡單。在中文系統中,基本元素可以是單個漢字字元,也可以是詞。因此,存在2種基本的索引方法,即“詞索引”和“字索引”。
3.2.1 詞索引
“詞索引 ” 以能表達一定的意義的詞為單位, 通過事先內嵌的詞典對原始資料作索引 , 以詞為單位進行匹配。詞索引適於大規模應用 , 索引庫可以組織得比較小 , 檢索速度也比較快,而且還可以實現同義詞、反義詞的概念檢索,具有較高的查準率。但其難點在於中文自動分詞,由於中文語言的複雜性使得計算機自動分詞工作具有相當的難度,分詞很容易出現歧義,從而導致在檢索一些詞時可以發生大量的漏檢或錯檢,查全率不高。並且在當今社會,新的詞彙層出不窮,對詞表的更新也將是個很大的工作量。
3.2.2 字索引
“字索引”則以字為單位,把源文件中的每一個字的出現位置記錄到索引庫中,索引庫對每個不同的字元都儲存了一個字表,記錄同一個字在文件中的所有出現位置,無須詞典即可對原始資料做索引,匹配的時候,以關鍵詞中的每個漢字為單位向後匹配整個語料樣本。 4 全文索引技術
全文索引技術是目前搜尋引擎的關鍵技術。原理是先定義一個詞庫,然後在文章中查詢每個詞條出現的頻率和位置,把這樣的頻率和位置資訊按照詞庫的順序歸納,這樣就相當於對檔案建立了一個以詞庫為目錄的索引,這樣查詢某個詞的時候就能很快的定位到該詞出現的位置。問題是在處理英文文件的時候顯然這樣的方式是非常好的,因為英文自然的被空格分成若干詞,只要我們有足夠大的詞彙庫就能很好的處理。但是中文字元因為沒有空格作為斷詞標誌,所以就很難判斷一個詞,而且人們使用的詞彙在不斷的變化,而維護一個可擴充套件的詞彙庫的成本是很高的,所以問題出現了。解決出現這樣的問題使“分詞”成為全文索引的關鍵技術。目前有兩種基本的方法:
*二元法:它把所有有可能的每兩兩漢字的組合看為一個片語,這樣就沒有維護詞庫的開銷。 *詞庫法:它使使用詞庫中的詞作為切分的標準,這樣也出現了詞庫跟不上詞彙發展的問題,除非你維護詞庫。
實際上現在很多著名的搜尋引擎都使用了多種分詞的辦法,比如“正向最大匹配”+“逆向最大匹配”,基於統計學的新詞識別,自動維護詞庫等技術,但是顯然這樣的技術還沒有做到完美。
5 分詞演算法
中文全文檢索技術的研發始於1987年左右,主要使用的是中文分詞技術,眾所周知,英文是以詞為單位的,詞和詞之間是靠空格隔開,而中文是以字為單位,句子中所有的字連起來才能描述一個意思,把中文的漢字序列切分成有意義的詞,就是中文分詞,有些人也稱為切詞,其處理過程就是分詞演算法。
現有的分詞演算法可分為三大類:基於字串匹配的分詞方法、基於理解的分詞方法和基於統計的分詞方法。
5.1 基於字串的分詞方法
基於字串匹配的分詞方法這種方法又叫做機械分詞方法,它是按照一定的策略將待分析的漢字串與一個“充分大的”機器詞典中的詞條進行配,若在詞典中找到某個字串,則匹配成功識別出一個詞。按照掃描方向的不同,串匹配分詞方法可以分為正向匹配和逆向匹配;按照不同長度優先匹配的情況,可以分為最大最長匹配和最小最短匹配;按照是否與詞性標註過程相結合,又可以分為單純分詞方法和分詞與標註相結合的一體化方法。常用的幾種機械分詞方法如下:1正向最大匹配法由左到右的方向;2逆向最大匹配法由右到左的方向;3最少切分使每一句中切出的詞數最小。還可以將上述各種方法相互組合,例如,可以將正向最大匹配方法和逆向最大匹配方法結合起來構成雙向匹配法。由於漢語單字成詞的特點,正向最小匹配和逆向最小匹配一般很少使用。一般說來,逆向匹配的切分精度略高於正向匹配,遇到的歧義現象也較少。統計結果表明,單純使用正向最大匹配的錯誤率為1/169,單純使用逆向最大匹配的錯誤率為1/245。但這種精度還遠遠不能滿足實際的需要。實際使用的分
詞系統,都是把機械分詞作為一種初分手段,還需通過利用各種其它的語言資訊來進一步提高切分的準確率。一種方法是改進掃描方式,稱為特徵掃描或標誌切分,優先在待分析字串中識別和切分出一些帶有明顯特徵的詞,以這些詞作為斷點,可將原字串分為較小的串再來進機械分詞,從而減少匹配的錯誤率。另一種方法是將分詞和詞類標註結合起來,利用豐富的詞類資訊對分詞決策提供幫助,並且在標註過程中又反過來對分詞結果進行檢驗、調整,從而極大地提高切分的準確率。對於機械分詞方法,可以建立一個一般的模型。
5.2 基於理解的分詞方法
基於理解的分詞方法這種分詞方法是通過讓計算機模擬人對句子的理解,達到識別詞的效果。其基本思想就是在分詞的同時進行句法、語義分析,利用句法資訊和語義資訊來處理歧義現象。它通常包括三個部分:分詞子系統、句法語義子系統、總控部分。在總控部分的協調下,分詞子系統可以獲得有關詞、句子等的句法和語義資訊來對分詞歧義進行判斷,即它模擬了人對句子的理解過程。這種分詞方法需要使用大量的語言知識和資訊。由於漢語語言知識的籠統、複雜性,難以將各種語言資訊組織成機器可直接讀取的形式,因此目前基於理解的分詞系統還處在試驗階段。
5.3 基於統計的分詞方法
從形式上看,詞是穩定的字的組合,因此在上下文中,相鄰的字同時出現的次數越多,就越有可能構成一個詞。因此字與字相鄰共現的頻率或概率能夠較好的反映成詞的可信度。可以對語料中相鄰共現的各個字的組合的頻度進行統計。雖然有了成熟的分詞演算法,但是中文是一種十分複雜的語言,讓計算機理解中文語言更是困難。在中文分詞過程中,有兩大難題一直沒有完全突破。
第一,歧義識別歧義是指同樣的一句話,可能有兩種或者更多的切分方法。
第二,新詞識別新詞,專業術語稱為未登入詞。也就是那些在字典中都沒有收錄過,但又確實能稱為詞的那些詞。
6 全文檢索技術的應用
在微機工作平臺上,目前已建立了十幾種中英文檢索軟體,其中比較著名的有清華同方的TPI、易寶北信的TRS、北大方正的MIRS、中國百科術語資料庫和海文Quick等。全文檢索軟體的工作過程主要分成2步:第一步是分析待檢索的全文字資訊,對其進行索引;第二步是實際的檢索過程,對使用者提出檢索請求,全文檢索軟體根據第一步得到的索引找到檢索關鍵字出現的位置,並將相應的全文字的有關篇章或段落提交給使用者。分成兩步,而不是在使用者提交檢索請求之後直接對原文字進行查詢匹配的原因主要是考慮到速度的問題。因為通常全文字資訊的資料量都是非常大的,如果每次要對數百萬甚至更多的資料進行查詢匹配,即使是計算機也需要很長的時間。如果是在網路環境下,系統要同時響應大量使用者的檢索請求時,使用者等待的時間就更長了。因此,只能事先對原始全文資料作充分的分析並記錄下必要的、足夠的資訊,才有可能提供全文檢索。進行事先分析就是對原始資料進行索引,其結果是生成記錄了原始全文資料所有有關資訊的索引檔案。
7 全文檢索技術的特點
7.1 全文檢索技術的優點
全文檢索技術具有直接客觀性,它提供存取全文文字的空間,能直接檢查原始文獻或解決問題所需要的文獻資料,不必進行二次檢索,既直接又保證了客觀性。全文檢索得到的是全文文字,而不是文獻的摘要或替代品。全文檢索技術具有詳盡徹底性,可對文中任何字、詞、句進行檢索,還可表示檢索詞間的複雜位置關係,文獻的正文部分或附屬部分都可以檢索和顯示。
全文資料庫的建立,無須專門人員前期進行大量標引工作,只需將已有的檔案資訊資料載入到全文檢索軟體平臺上即可。使用者使用時也無須提供專業化的檢索條件,藉助截詞、鄰接等匹配方法,文字中任何字元或字串都可作為檢索的點,使用者2010年2月孫清玉:有效的資訊檢索技術——全文檢索第2期總148期73可直接查詢文字中的任何部分或特定單元,查詢效率大大提高。
全文檢索的廣泛適用性,體現在能處理結構化和非結構化的各類文字資料,能夠採集各種來源文字,這些來源可能是跨越廣泛地理分佈的,也可以是不同介質、不同格式產生的文字。全文檢索具有對檢索出的文字進行處理的能力,並且以使用者樂於接受的形式提供檢索並加工處理文字,使檢索系統功能得到了延伸。
7.2 全文檢索系統的欠缺
語詞與概念之間存在著多對多的關係,即:一個語詞可以表達多個概念,同時一個概念也可以用多個不同的詞來表達。自然語言的這種情況給基於關鍵詞的資訊檢索造成了一定的困難。基於關鍵詞的全文檢索是以文件中有沒有檢索要求中的關鍵詞來召回檢索結果,而不是以檢索詞所表達的意思來召回結果的。從這個角度來說,全文檢索可能會造成大量的漏檢。
全文檢索系統不適應於學科或專業的分類檢索要求及一族事物的族性檢索要求;越是被論述得多的事物,越難在全文檢索系統中得到滿意的檢索結果。有較多同義詞、準同義詞的檢索物件,由於檢索物件的用詞不定型,以及遇“一詞多義”、“詞義含糊”、不普遍使用的縮略詞、詞的巢狀等情況,都會或多或少影響其檢索效率。