北京政法職業(yè)學院信息技術系 李 迎 胡曉鳳 侯佳路
當人們艱難的在信息的海洋里查找自己所想要的內容時,搜索引擎是由此而生一種技術,并且在互聯(lián)網中得到重要的應用。全文檢索技術是現代信息檢索技術的一個重要的分支,現在的搜索引擎主要研究的是全文檢索技術,它是搜索引擎的核心技術,是處理非結構化數據的強大工具,全文檢索技術當前的成果除了對以前信息檢索的功能實現,同時能直接根據信息的內容進行檢索,能實現對多角度信息資源的綜合利用。
在全文檢索系統(tǒng)的設計中主要包括兩大部分的設計第一就是索引的建立第二是檢索索引,此論文是關于第二個問題中檢索到的文檔的相關性打分的一些見解。在全文檢索系統(tǒng)的檢索過程設計中,當檢索者輸入查詢語言后,系統(tǒng)對查詢語句進行語法分析及語言處理,在語法處理過程中主要為了實現辨別單個字和關鍵字,發(fā)現查詢語句不滿足語法規(guī)則的,系統(tǒng)會報錯,詞法分析中發(fā)現不合法的關鍵字,系統(tǒng)會出現錯誤。檢索系統(tǒng)中語言處理的過程同索引建立過程中的語言處理幾乎相同,在搜索索引時,得到符合語法樹的文檔,并根據得到的文檔和查詢語句的相關性,對文檔結果進行排序。對查詢結果的排序是按照與查詢語句的相關性進行的,越相關者越靠前。
那么計算文檔和查詢語句的相關性的做法是什么呢。我們把用戶輸入的查詢語句看成一個短小的文檔,然后對文檔與文檔之間的相關性(relevance)進行打分(scoring),分數高的它的相關性就好,就應該在前面排列,因此關鍵部分的設計就是如何對文檔之間的關系進行打分。
檢索系統(tǒng)的作用是根據用戶提出的查詢需求在索引庫中快速查找所需要的文檔信息,并對文檔與查詢的進行相關度評價,然后排序將要輸出的結果,同時實現某種用戶相關性反饋機制。當用戶在進行信息檢索時,都想得到與自己需要密切相關的檢索結果時,就需要檢索系統(tǒng)解決一個核心問題那就是,當用戶給定期查詢后,對文檔集中的每一個文件與用戶查詢相關程度做出判斷。那如何判斷文件與用戶查詢相關,便是信息檢索模型所要解決的問題。
通過判斷詞之間的關系從而得到文檔相關性的過程的算法經常用的檢索模型主要包括布爾模型、向量空間模型、概率模型,這里只討論向量空間模型。
向量空間模型(VSM:Vector Space Model)是近年來使用較多且效果較好的一種信息檢索模型。在VSM中,將文檔看作是由相互獨立的詞條組(T1,T2…Tn)構成,對于每一詞條Ti,都根據其在文檔中的重要程度賦以一定的權值Wi,并將T1,T2…Tn看成一個n維坐標系中的坐標軸,W1,W2…Wn為對應的坐標值。這樣由(T1,T2…Tn)分解而得的正交詞條向量組就構成了一個文檔向量空間,文檔則映射成為空間中的一個點。對于所有文件和用戶查詢都可映像到此文本向量空間,用詞條向量(T1,W1,T2,W2…Tn,Wn)來表示,從而將文件信息的匹配問題轉化為向量空間中的向量匹配問題。假設用戶查詢?yōu)镼,被檢索文檔為D,兩者的相似程度可用向量之間的夾角來度量,夾角越小,說明相似度越高。
檢索模型提供了度量查詢和文檔之間相似度的辦法。總之這些模型具有共同的理念即當文檔中詞和查詢中詞共有的詞項(term)越多,則認為這篇文檔和此次查詢越相關。語言本身就存在著很多的不確定因素,一個相同的概念可以用多個不同的詞來表達(如“漂亮”和“美麗”可能指的是同一含義)。另外,相同的詞也有多種語義(比如“希望”和“圈”,它們的名詞形式和動詞形式的意思不同。通過上面介紹的一些檢索算法來解決這些語言中的不確定性問題。
檢索模型就是一種算法,這種算法處理對象是查詢Q和文檔集合{D1,D2,…,Dn},處理過程就是計算每篇文檔Di(1≤i≤n)和這個查詢的相似度SC(Q,Di)。[注:SC是Similarity Coefficient(相似度)的縮寫,有時記作RSV(Retrieval Status Value),用來表示檢索狀態(tài)值]。
一篇文檔有很多個詞(Term)組成,例如有中、法、國、律、地、啊等。對于文檔之間的關系,不同的詞重要性不同,有的文檔法、律、地就相對重要一些,國、中,可能相對不重要一些。因此若兩篇文檔都包含法、律,則這兩篇文檔的相關性強一些,然而就算一篇文檔包含的、啊、呢,另一篇文檔不包含的、啊、呢,也不能影響兩篇文檔的相關性。因而在判斷文檔之間關系時,應首先找出哪些詞(Term)對文檔之間的關系最重要,如中、法、率。然后判斷這些詞(Term)之間的關系。
詞的權重是指計算詞在文檔中重要性的過程稱。計算詞的權重(term weight)有兩個參數,第一個是詞(Term),第二個是文檔(Document)。詞的權重(Term weight)表示此詞(Term)在此文檔中的重要程度,越重要的詞(Term)有越大的權重(Term weight),因而在計算文檔之間的相關性中將發(fā)揮更大的作用。
影響一個詞(Term)在一篇文檔中的重要性主要有兩個因素:
Term Frequency(tf):即此Term在此文檔中出現了多少次。tf越大說明越重要。
Document Frequency(df):即有多少文檔包含次Term。df越大說明越不重要。
設計到詞的權重計算公式中:
文檔中一個詞(Term)出現的次數越多,說明這個詞對這個文檔重要性大,如“法律”這個詞,在本文檔中出現的次數很多,說明本文檔主要就是講與該詞相關的內容。但在一篇英文文檔中,this出現的次數多,也不能說這個詞重要,這時第二個因素就開始起作用了,它說明有越多的文檔包含這個詞,說明此詞普通,在區(qū)分此文檔重要性時就低。對于文檔中詞項的權重因素,主要綜合考慮詞頻即tf和逆文檔頻率即idf。
在開源的全文檢索系統(tǒng)luence中談到標準化因子對文檔排序打分的應用。在搜索過程中,搜索出的文檔要按與查詢語句的相關性進行排序,相關性大的打分高,從而排在前面。這里相關性打分使用向量空間模型,在計算相關性時需要計算詞的權重(Term Weight),這在第一個問題中已經闡述,也即某Term相對于某Document的重要性。在計算詞的權重時,主要有兩個影響因素,一個是詞在此文檔中出現的次數,一個是詞的普通程度。顯然該詞在同一篇文檔中出現的次數越多,這個詞在此文檔中越重要。
這種詞的權重計算方法是最普通的,但卻存在以下兩個問題:
1.在不同需求中文檔重要性不同。
有的文檔重要些,有的文檔相對不重要,比如對于做軟件的,在索引書籍的時候,我想讓計算機方面的書更容易搜到,而文學方面的書籍搜索時排名靠后。
2.文檔中不同的域重要性不同。
有的域很重要,例如關鍵字、標題,但附件中的內容相對不那么重要等。因此對于相同的詞,出現在關鍵字中要比出現在附件中打分高。只根據詞在文檔中出現的絕對次數來判斷該詞在這篇文檔中的重要性,是不太合理的。
由上面兩個原因,并參照全文檢索引擎Lucene,在計算詞權重時,乘上一個因子,即標準化因子(Normalization Factor),來減少上面隨時會遇到的兩個問題對文檔排序的影響。
標準化因子(Normalization Factor)是會影響查詢時打分(score)的計算,在搜索引擎系統(tǒng)中有關打分計算的設計,一部分在索引建立過程中,一般是與查詢語句無關的參數如標準化因子,而大部分設計在搜索過程中,標準化因子(Normalization Factor)在索引過程總的計算如下:
它包括三個參數:
Document boost:此值越大,說明此文檔越重要。
Field boost:此域越大,說明此域越重要。
lengthNorm(field)=(1.0/Math.sqrt(numTerms)):一個域中包含的Term總數越多,也即文檔越長,此值越小,文檔越短,此值越大。
從上面的公式可以知道,一個詞(Term)出現在不同的文檔或不同的域中,標準化因子不同。若兩個文檔,每個文檔有兩個域,如果不考慮文檔長短,就有四種排列組合分別為:在重要文檔的重要域中,在非重要文檔的重要域中,在重要文檔的非重要域中,在非重要文檔的非重要域中。每種組合都有不同的標準化因子。公式中第一個因子是不同文檔的重要程度不同,第二個因子是文檔長度的影響,第三個因子是不同的域的重要程度不同。
[1]張進.計算機信息檢索軟件設計原理[M].武漢:武漢大學出版社,1996.
[2]余海燕,張仲義.基于單漢字索引的全文檢索系統(tǒng)的優(yōu)化研究[J].中文信息學報,2001.
[3]楊建林.全文檢索研究[J].情報理論與實踐,2000,1.
[4]李廣建,黃永文.基于WWW的全文檢索系統(tǒng)的設計與實現[J].現代圖書情報技術,2000,2.