專利名稱:一種xml數(shù)據(jù)庫全文檢索的文本相關(guān)度計算方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計算機技術(shù)領(lǐng)域,特別涉及一種XML數(shù)據(jù)庫全文檢索的文本相關(guān)度計算方法和系統(tǒng)。
背景技術(shù):
隨著現(xiàn)代信息產(chǎn)業(yè)的不斷深入發(fā)展,對于信息的集成和共享的需求也變得日益迫切。XML(全稱Extensible Markup Language),是一種專門為internet而設(shè)計的一種標記語言。XML的重點不在于數(shù)據(jù)的形式本身,而在于管理數(shù)據(jù)信息,因此,XML使得不同數(shù)據(jù)庫模式的統(tǒng)一成為可能,為異構(gòu)數(shù)據(jù)庫的集成問題提供了途徑。因此,XML在近幾年得到了發(fā) 展和廣泛的應(yīng)用。XML數(shù)據(jù)庫管理系統(tǒng)(XMLDBMS)也是近年來發(fā)展迅速的一種新型的數(shù)據(jù)庫管理系統(tǒng),它以存儲和檢索符合W3C標準的XML文文件數(shù)據(jù)為目標的數(shù)據(jù)庫管理系統(tǒng),并且可以更新XML文檔。由于它存儲的對象是XML文檔,因此XMLDBMS本質(zhì)上就是一種XML文檔庫。隨著XML相關(guān)技術(shù)的深入研究,XML查詢已經(jīng)具備了堅實的技術(shù)基礎(chǔ)在此基礎(chǔ)上,W3CWorldWideWebConsortium于2001年12月提出了 XML查詢語言規(guī)范工作草案-XQuery語言,迄今為止,XQuery語言一直在不斷的發(fā)展中。XML數(shù)據(jù)的檢索和更新語言是由W3C制定的標準的XQuery和XQuery Update。XQuery系列語言基于序列數(shù)據(jù)模型(XDM),即XQuery中任意資料都是一個序列,序列由若干個有序的項目(item)的組成;一個item是一個原子值或者一個XDM節(jié)點,一個XDM節(jié)點是XML文檔的7種節(jié)點之一。基于這樣的數(shù)據(jù)模型,最自然和高效的XML數(shù)據(jù)存儲方案就是把XML文檔存儲為節(jié)點。XQuery的FLOWR語句類似于SQL的select/from/where/orderby,是遍歷節(jié)點并且返回查詢結(jié)果的方式,F(xiàn)LOWR語句依次處理一個序列中的每個item,這些被處理的item成為context item。XQuery Fulltext查詢表達式以” contains text”開頭并且其返回結(jié)果是一個布爾值,所以它總是作為謂詞表達式來使用。計算中,用戶可以為每一個查詢文本指定權(quán)重(weight),用于相關(guān)度數(shù)值的計算。在XQuery中,相關(guān)度是一個score關(guān)鍵詞定義的浮點數(shù)類型的變量,score只可以出現(xiàn)在FLOWR語句的For和Let子句中。雖然Fulltext查詢表達式可以作為謂詞表達式出現(xiàn)在任何xpath/xquery查詢/更新語句中,但是這些語句中除了 for和let子句外都不可以定義score變量;每個for子句中只允許定義一個score變量,但是允許在其查詢表達式中有任意多個fulltext查詢表達式作為謂詞,但是每一個context item只有一個score值,無論有多少個fulltext查詢表達式;可以使用Let子句定義多個score變量,每一個變量都使用一個特定的查詢表達式來計算相關(guān)度。相關(guān)度變量值可以在FLOWR的where子句中用于過濾context item,也可以用在return子句中作為查詢結(jié)果的一部分。XQuery Fulltext標準對相關(guān)度計算的要求非常寬泛,除了要求score (即相關(guān)度)變量值位于
區(qū)間內(nèi)并且較大的值代表較大的相關(guān)度之外,其余都由不同的系統(tǒng)自定義實現(xiàn)。相關(guān)度計算是全文檢索的重要需求,正確合理地計算相關(guān)度可以讓用戶按照相關(guān)度對查詢結(jié)果排序,以便優(yōu)先處理和利用最相關(guān)的信息。
發(fā)明內(nèi)容
為解決上述問題,本發(fā)明技術(shù)方案提供了一種XML數(shù)據(jù)庫全文檢索的文本相關(guān)度計算方法,包括計算包括XQuery Fulltext查詢語法樹中的葉節(jié)點在內(nèi)的所有內(nèi)節(jié)點的子節(jié)點的相關(guān)度和權(quán)重值;將所述內(nèi)節(jié)點的所有子節(jié)點的相關(guān)度和權(quán)重值分別保存在兩個數(shù)組中; 獲取所述內(nèi)節(jié)點的所有子節(jié)點的相關(guān)度和權(quán)重值;根據(jù)所獲取的所述內(nèi)節(jié)點的所有子節(jié)點的相關(guān)度和權(quán)重值計算所述內(nèi)節(jié)點的相關(guān)度??蛇x地,所述葉節(jié)點的相關(guān)度根據(jù)下述的公式計算得到S=M/N ;其中,M為查詢字符串經(jīng)過分詞后得到的若干個目標查詢單詞在被檢索的文本字符串中出現(xiàn)的總次數(shù),N為將所述被檢索的文本字符串分詞后得到的單詞的總數(shù)。可選地,所述的葉節(jié)點和所述內(nèi)節(jié)點的其他的所有子節(jié)點的權(quán)重值由用戶自定義得到??蛇x地,所述的根據(jù)所述內(nèi)節(jié)點的所有子節(jié)點的相關(guān)度和權(quán)重值計算所述內(nèi)節(jié)點的相關(guān)度Stl具體為,利用下述的公式計算So=Z^-Si * Wl其中,假設(shè)所述內(nèi)節(jié)點具有N個子節(jié)點,所述的每個節(jié)點有自己的相關(guān)度和權(quán)重,分別為sl, s2…sn和wl, w2, ---wn, si、wi分別表示所述內(nèi)節(jié)點的第i個子節(jié)點的相關(guān)度和
權(quán)重值??蛇x地,為保證所述內(nèi)節(jié)點的相關(guān)度Stl位于區(qū)間
之內(nèi),運用下列的公式對所述內(nèi)節(jié)點的相關(guān)度Stl作進一步運算S0=H ^ / (max(wi) * XJl* Si );其中,max(wi)表示所述內(nèi)節(jié)點的所有子節(jié)點的權(quán)重的最大值??蛇x地,若所述內(nèi)節(jié)點的所有子節(jié)點的權(quán)重值都相等或者只有一個子節(jié)點的相關(guān)度值為非零,則則通過求均值計算出所述內(nèi)節(jié)點的相關(guān)度可選地,若所述內(nèi)節(jié)點的所有子節(jié)點的相關(guān)度皆為零或者最大的權(quán)重值為零,則將所述內(nèi)節(jié)點的相關(guān)度Stl設(shè)置為零。本發(fā)明還提供了一種XML數(shù)據(jù)庫全文檢索的文本相關(guān)度計算系統(tǒng),包括子節(jié)點計算單元10,用于計算包括XQuery Fulltext查詢語法樹中的葉節(jié)點在內(nèi)的所有內(nèi)節(jié)點的子節(jié)點的相關(guān)度和權(quán)重值;存儲單20,用于將所述內(nèi)節(jié)點的所有子節(jié)點的相關(guān)度和權(quán)重值分別保存在兩個數(shù)組中;獲取單元30,用于獲取所述內(nèi)節(jié)點的所有子節(jié)點的相關(guān)度和權(quán)重值;內(nèi)節(jié)點計算單元40,根據(jù)所獲取的所述內(nèi)節(jié)點的所有子節(jié)點相關(guān)度和權(quán)重值計算所述內(nèi)節(jié)點的相關(guān)度??蛇x地,所述的子節(jié)點計算單元進一步包括一葉節(jié)點計算單元,所述葉節(jié)點計算單元利用下述的公式計算所述葉節(jié)點的相關(guān)度S S=M/N ;其中,M為查詢字符串經(jīng)過分詞后得到的若干個目標查詢單詞在被檢索的文本字符串中出現(xiàn)的總次數(shù),N為將所述被檢索的文本字符串分詞后得到的單詞的總數(shù)。可選地,所述的葉節(jié)點和所述內(nèi)節(jié)點的其他的所有子節(jié)點的的權(quán)重值W由用戶自定義得到??蛇x地,所述的內(nèi)節(jié)點計算單元40利用下述的公式計算所述內(nèi)節(jié)點的相關(guān)度S。
S0=Zf-I SI *- Wl其中,假設(shè)所述內(nèi)節(jié)點具有N個子節(jié)點,所述的每個節(jié)點有自己的相關(guān)度和權(quán)重,分別為sl, s2…sn和wl, w2, ---wn, si、wi分別表示所述內(nèi)節(jié)點的第i個子節(jié)點的相關(guān)度和
權(quán)重值??蛇x地,還進一步包括一修正單元40a,所述的修正單元利用40a下述的公式計算所述內(nèi)節(jié)點的相關(guān)度Stl,已將所述內(nèi)節(jié)點的相關(guān)度Stl限定于區(qū)間
之內(nèi)
_6] S0= Zf=:( max(wi) *Si);其中,max(wi)表示所述內(nèi)節(jié)點的所有子節(jié)點的權(quán)重的最大值??蛇x地,若所述內(nèi)節(jié)點的所有子節(jié)點的權(quán)重值都相等或者只有一個子節(jié)點的相關(guān)度值為非零,則所述內(nèi)節(jié)點計算單元40將通過求均值計算出所述內(nèi)節(jié)點的相關(guān)度可選地,若所述內(nèi)節(jié)點的所有子節(jié)點的相關(guān)度皆為零或者最大的權(quán)重值為零,則所述內(nèi)節(jié)點計算單元40將所述內(nèi)節(jié)點的相關(guān)度Stl設(shè)置為零。與現(xiàn)有技術(shù)相比,上述技術(shù)方案具有下優(yōu)點本發(fā)明的技術(shù)方案可以有效、合理地計算出文本檢索的相關(guān)度,其所采用的計算方法簡單、高效,計算開銷可以忽略不計,有效節(jié)約了資源,并且用這種方法計算的相關(guān)度具有較強的合理性,能夠反映出用戶的查詢意圖,并且滿足XQuery Fulltext對score變量的約束,方便實用。
圖I是現(xiàn)有技術(shù)中的數(shù)據(jù)庫全文檢索查詢條件的示意圖;圖2是本發(fā)明實施方式的XML數(shù)據(jù)庫全文檢索的文本相關(guān)度計算方法的流程圖;圖3是本發(fā)明實施方式的XML數(shù)據(jù)庫全文檢索的文本相關(guān)度計算系統(tǒng)的組成結(jié)構(gòu)框架示意圖。
具體實施例方式為使本發(fā)明的上述目的、特征和優(yōu)點能夠更為明顯易懂,下面結(jié)合附圖對本發(fā)明的具體實施方式
做詳細的說明。在以下描述中闡述了具體細節(jié)以便于充分理解本發(fā)明。但是本發(fā)明能夠以多種不同于在此描述的其它方式來實施,本領(lǐng)域技術(shù)人員可以在不違背本發(fā)明內(nèi)涵的情況下做類似推廣。因此本發(fā)明不受下面公開的具體實施方式
的限制。
參閱圖1,圖I示出了現(xiàn)有技術(shù)中的數(shù)據(jù)庫全文檢索條件示意圖。本技術(shù)領(lǐng)域的技術(shù)人員知道,全文檢索條件總是遞歸的。圖I中的節(jié)點樹有任意深度,假設(shè)深度是L,根節(jié)點為ftcontains,而內(nèi)節(jié)點是某種類型的ftselection,葉節(jié)點總是ftwords, ftwords也是一種ftselectionll節(jié)點。每層節(jié)點按照層數(shù)和層內(nèi)下標為編號,ftselectionll就是第一層的第一個節(jié)點。圖I中的Wij表示對應(yīng)的FTSelectionij節(jié)點的權(quán)重,這個權(quán)重Wi j也是這個FTSelection節(jié)點的屬性,其余相關(guān)度都會在執(zhí)行查詢節(jié)點時被計算出來,以供上一層的FTSelection或者FTContains節(jié)點計算相關(guān)度時使用。........·在一個XQuery Fulltext查詢語法樹中,葉節(jié)點總是FTWords (FTWords也是一種特殊的FTSelection),內(nèi)節(jié)點總是FTSelection,內(nèi)節(jié)點可以有任意多層,根節(jié)點總是FTContains。FTSelection是若干種具體的查詢節(jié)點的基類,它們是由FTWords或者FTSelection 經(jīng)過 ftand, for, ftnot, ftnotin 運算符組合而成的。例如,對于 containstext ( “abc”for “xyz”)ftand “def”這樣一個條件,其中的“abc”,“xyz” 和“def ” 都是FTffords,并且“abc”與“xyz”經(jīng)由ftor運算符構(gòu)成一個FTSelection查詢節(jié)點,這個查詢節(jié)點又和” def”這個FTWords經(jīng)由ftand運算符構(gòu)成了一個FTSelection查詢節(jié)點,而這個FTSelection又是contains text查詢表達式(即FTContains)的子節(jié)點。為解決現(xiàn)有技術(shù)中的問題,本發(fā)明的發(fā)明人經(jīng)過研究,提出了一種本發(fā)明實施方式的XML數(shù)據(jù)庫全文檢索的文本相關(guān)度計算方法。參閱圖2,圖2是本發(fā)明實施方式的XML數(shù)據(jù)庫全文檢索的文本相關(guān)度計算方法的流程圖。本發(fā)明實施方式的XML數(shù)據(jù)庫全文檢索的文本相關(guān)度計算方法,包括SI :計算包括XQuery Fulltext查詢語法樹中的葉節(jié)點在內(nèi)的所有內(nèi)節(jié)點的子節(jié)點的相關(guān)度和權(quán)重值;其中,在XQuery Fulltext查詢語法樹中,所述葉節(jié)點的相關(guān)度通過下述的公式計算S=M/N ;其中,M為查詢字符串經(jīng)過分詞后得到的若干個目標查詢單詞在被檢索的文本字符串中出現(xiàn)的總次數(shù),N為將所述被檢索的文本字符串分詞后得到的單詞的總數(shù)。所有內(nèi)節(jié)點的子節(jié)點的權(quán)重值默認為I. 0,且用戶可以根據(jù)實際的需要進行定義。S:2 :將所述內(nèi)節(jié)點的所有子節(jié)點的相關(guān)度和權(quán)重值分別保存在兩個數(shù)組中;由于,每個子節(jié)點分別具有自己的相關(guān)度值和權(quán)重值,因此,這兩個數(shù)組必然含有相同數(shù)目的元素。(有兩個數(shù)組,一個數(shù)組中存放所有子節(jié)點的相關(guān)度值,一個數(shù)組組中存放所有子節(jié)點的權(quán)重值,而每個子節(jié)點都有一個相關(guān)度值和一個權(quán)重值,因此,兩個數(shù)組中包含的元素的數(shù)目相同)。S3 :獲取所述內(nèi)節(jié)點的所有子節(jié)點的相關(guān)度和權(quán)重值;S4:根據(jù)所獲取的所述內(nèi)節(jié)點的所有子節(jié)點相關(guān)度和權(quán)重值計算所述內(nèi)節(jié)點的相關(guān)度。其中,在本步驟中,所述的根據(jù)所述內(nèi)節(jié)點的所有子節(jié)點的相關(guān)度和權(quán)重值計算所述內(nèi)節(jié)點的相關(guān)度Stl具體為,利用下述的公式計算So=IJi:si * Wl其中,假設(shè)所述內(nèi)節(jié)點具有N個子節(jié)點,所述的每個節(jié)點有自己的相關(guān)度和權(quán)重,分別為Si, s2…Sn和wl, w2, . . . wn, si、wi分別表示所述內(nèi)節(jié)點的第i個子節(jié)點的相關(guān)度
和權(quán)重值。由于在計算任何一個內(nèi)節(jié)點的相關(guān)度時,首先獲取它的所有子節(jié)點(也是FTSelection對象)的相關(guān)度和權(quán)重值,且計算過程是從XQuery Fulltext查詢語法樹的葉節(jié)點向上計算的,因此,在計算任何一個內(nèi)節(jié)點的相關(guān)度時,內(nèi)節(jié)點的所有子節(jié)點的相關(guān)度和權(quán)重值都已經(jīng)計算好并且分別存在兩個數(shù)組中,且兩個數(shù)組必然含有相同數(shù)目的元素。同時,由于,XQuery Fulltext標準中對相關(guān)度計算要求相關(guān)度值位于
區(qū)間之內(nèi),因此,為了滿足上述的標準,則本發(fā)明中進一步采用下述的公式計算內(nèi)節(jié)點的相關(guān)度,即
S0=' Wi/ (max(wi) *11);其中,max(wi)表示所述內(nèi)節(jié)點的所有子節(jié)點的權(quán)重的最大值。上述的公式對于是一般情況下計算內(nèi)節(jié)點相關(guān)度的方法,但是,對一些奇異情況則無法進行合理的計算,包括(I)所有的權(quán)重值都相等;(2)只有一個子節(jié)點相關(guān)度非0 ;
(3)所有的子節(jié)點相關(guān)度都是0 ; (4)最大的權(quán)重值為0 ;在(I)和(2)兩種情況下,上述的公式計算出的相關(guān)度總是I ;在(3)和(4)兩種情況下,會出現(xiàn)分母為0的錯誤。為了解決上述四種奇異情況,需要在(I)和(2)兩種情況下,簡單地求均值得到相關(guān)度;在(3)和(4)兩種情況下,則直接將內(nèi)節(jié)點的相關(guān)度Stl設(shè)置為O。參閱圖3,本發(fā)明還提供了一種XML數(shù)據(jù)庫全文檢索的文本相關(guān)度計算系統(tǒng),包括子節(jié)點計算單元,用于計算包括XQuery Fulltext查詢語法樹中的葉節(jié)點在內(nèi)的所有內(nèi)節(jié)點的子節(jié)點的相關(guān)度和權(quán)重值;存儲單元,用于將所述內(nèi)節(jié)點的所有子節(jié)點的相關(guān)度和權(quán)重值分別保存在兩個數(shù)組中;獲取單元,用于獲取所述內(nèi)節(jié)點的所有子節(jié)點的相關(guān)度和權(quán)重值;內(nèi)節(jié)點計算單元,根據(jù)所獲取的所述內(nèi)節(jié)點的所有子節(jié)點相關(guān)度和權(quán)重值計算所述內(nèi)節(jié)點的相關(guān)度??蛇x地,所述的子節(jié)點計算單元進一步包括一葉節(jié)點計算單元,所述葉節(jié)點計算單元利用下述的公式計算所述葉節(jié)點的相關(guān)度S S=M/N ;其中,M為查詢字符串經(jīng)過分詞后得到的若干個目標查詢單詞在被檢索的文本字符串中出現(xiàn)的總次數(shù),N為將所述被檢索的文本字符串分詞后得到單詞的總數(shù)??蛇x地,所述的葉節(jié)點和所述內(nèi)節(jié)點的其他的所有子節(jié)點的的權(quán)重值W的默認值為I. 0,并且可以根據(jù)實際的需要由用戶自定義??蛇x地,所述的內(nèi)節(jié)點計算單元利用下述的公式計算所述內(nèi)節(jié)點的相關(guān)度Sci q Si \ri
Oo —釀畫其中,假設(shè)所述內(nèi)節(jié)點具有N個子節(jié)點,所述的每個節(jié)點有自己的相關(guān)度和權(quán)重,分別為sl, s2…sn和wl, w2, ---wn, si、wi分別表示所述內(nèi)節(jié)點的第i個子節(jié)點的相關(guān)度和權(quán)重值??蛇x地,還進一步包括一修正單元,所述的修正單元利用下述的公式計算所述內(nèi)節(jié)點的相關(guān)度S。,已將所述內(nèi)節(jié)點的相關(guān)度Stl限定于區(qū)間
之內(nèi)S0=15I ( max(wi) *其中,max(wi)表示所述內(nèi)節(jié)點的所有子節(jié)點的權(quán)重的最大值??蛇x地,若所述內(nèi)節(jié)點的所有子節(jié)點的權(quán)重值都相等或者只有一個子節(jié)點的相關(guān)度值為非零,則所述內(nèi)節(jié)點計算單元將通過求均值計算出所述內(nèi)節(jié)點的相關(guān)度
可選地,若所述內(nèi)節(jié)點的所有子節(jié)點的相關(guān)度皆為零或者最大的權(quán)重值為零,則所述內(nèi)節(jié)點計算單元將所述內(nèi)節(jié)點的相關(guān)度Stl設(shè)置為零。綜上所述,本發(fā)明技術(shù)方案具有下優(yōu)點本發(fā)明的方法基于這樣一種常識如果一個單詞出現(xiàn)的次數(shù)越多,它對其所處的文本來說,相關(guān)度越大,但是這種出現(xiàn)次數(shù)是相對于被檢索的字符串的單詞數(shù)目的。比如在三個單詞中出現(xiàn)一次應(yīng)該比在三百個單詞中出現(xiàn)兩次的相對出現(xiàn)數(shù)目更大,也就是相關(guān)度更大。同時,當有多個相關(guān)度數(shù)值時,需要使用其權(quán)重計算出最終的相關(guān)度。本發(fā)明的技術(shù)方案可以有效、合理地計算出文本檢索的相關(guān)度,其所采用的計算方法簡單、高效,計算開銷可以忽略不計,有效節(jié)約了資源,并且用這種方法計算的相關(guān)度具有較強的合理性,能夠反映出用戶的查詢意圖,并且滿足XQuery Fulltext對score變量的約束,方便實用。應(yīng)當理解的是這里所描述的方法和系統(tǒng)可以以各種形式的硬件、軟件、固件、專用處理機或者它們的組合實現(xiàn)。尤其是,至少本發(fā)明的一部分包括程序指令的應(yīng)用程序優(yōu)選實現(xiàn)。這些程序指令被確實地包括在一個或者多個程序存儲設(shè)備(包括但不限于硬盤,磁性軟盤,RAM, ROM, CD,ROM等)里,并且可由任何包括適當結(jié)構(gòu)的設(shè)備或者機器,例如一種具有處理器、內(nèi)存和輸入/輸出接口的通用數(shù)字計算機執(zhí)行。還應(yīng)當理解由于附圖中描述的一些系統(tǒng)的組成部件和處理步驟優(yōu)選地以軟件實現(xiàn),所以,系統(tǒng)模塊(或者方法步驟的邏輯流程)之間的連接可能不同,這取決于本發(fā)明的程序設(shè)計方式。根據(jù)這里給出的指導(dǎo),相關(guān)領(lǐng)域的普通技術(shù)人員將能夠設(shè)計出本發(fā)明的這些以及類似的實施方式。以上公開了本發(fā)明的多個方面和實施方式,本領(lǐng)域的技術(shù)人員會明白本發(fā)明的其它方面和實施方式。本發(fā)明中公開的多個方面和實施方式只是用于舉例說明,并非是對本發(fā)明的限定,本發(fā)明的真正保護范圍和精神應(yīng)當以權(quán)利要求書為準。
權(quán)利要求
1.一種XML數(shù)據(jù)庫全文檢索的文本相關(guān)度計算方法,其特征在于,包括 計算包括XQuery Fulltext查詢語法樹中的葉節(jié)點在內(nèi)的所有內(nèi)節(jié)點的子節(jié)點的相關(guān)度和權(quán)重值; 將所述內(nèi)節(jié)點的所有子節(jié)點的相關(guān)度和權(quán)重值分別保存在兩個數(shù)組中; 獲取所述內(nèi)節(jié)點的所有子節(jié)點的相關(guān)度和權(quán)重值; 根據(jù)所獲取的所述內(nèi)節(jié)點的所有子節(jié)點的相關(guān)度和權(quán)重值計算所述內(nèi)節(jié)點的相關(guān)度。
2.如權(quán)利要求I所述的XML數(shù)據(jù)庫全文檢索的文本相關(guān)度計算方法,其特征在于,所述葉節(jié)點的相關(guān)度根據(jù)下述的公式計算得到S=M/N ; 其中,M為查詢字符串經(jīng)過分詞后得到的若干個目標查詢單詞在被檢索的文本字符串中出現(xiàn)的總次數(shù),N為將所述被檢索的文本字符串分詞后得到的單詞的總數(shù)。
3.如權(quán)利要求I所述的XML數(shù)據(jù)庫全文檢索的文本相關(guān)度計算方法,其特征在于,所述的葉節(jié)點和所述內(nèi)節(jié)點的其他的所有子節(jié)點的權(quán)重值由用戶自定義。
4.如權(quán)利要求I所述的XML數(shù)據(jù)庫全文檢索的文本相關(guān)度計算方法,其特征在于,所述的根據(jù)所述內(nèi)節(jié)點的所有子節(jié)點的相關(guān)度和權(quán)重值計算所述內(nèi)節(jié)點的相關(guān)度Stl具體為,利用下述的公式計算q _Z-- si - wi. 其中,假設(shè)所述內(nèi)節(jié)點具有N個子節(jié)點,所述的每個節(jié)點有自己的相關(guān)度和權(quán)重,分別為Si, s2…Sn和wl, w2, ---wn, si、wi分別表示所述內(nèi)節(jié)點的第i個子節(jié)點的相關(guān)度和權(quán)重值。
5.如權(quán)利要求4所述的XML數(shù)據(jù)庫全文檢索的文本相關(guān)度計算方法,其特征在于,為保證所述內(nèi)節(jié)點的相關(guān)度Stl位于區(qū)間
之內(nèi),運用下列的公式對所述內(nèi)節(jié)點的相關(guān)度Stl作進一步運算 S0=M i / (max(wi) * Xll; Si )。
6.如權(quán)利要求I所述的XML數(shù)據(jù)庫全文檢索的文本相關(guān)度計算方法,其特征在于,若所述內(nèi)節(jié)點的所有子節(jié)點的權(quán)重值都相等或者只有一個子節(jié)點的相關(guān)度值為非零,則通過求均值計算出所述內(nèi)節(jié)點的相關(guān)度
7.如權(quán)利要求I所述的XML數(shù)據(jù)庫全文檢索的文本相關(guān)度計算方法,其特征在于,若所述內(nèi)節(jié)點的所有子節(jié)點的相關(guān)度皆為零或者最大的權(quán)重值為零,則將所述內(nèi)節(jié)點的相關(guān)度Stl設(shè)置為零。
8.—種XML數(shù)據(jù)庫全文檢索的文本相關(guān)度計算系統(tǒng),其特征在于,包括 子節(jié)點計算單元,用于計算包括XQuery Fulltext查詢語法樹中的葉節(jié)點在內(nèi)的所有內(nèi)節(jié)點的子節(jié)點的相關(guān)度和權(quán)重值; 存儲單元,用于將所述內(nèi)節(jié)點的所有子節(jié)點的相關(guān)度和權(quán)重值分別保存在兩個數(shù)組中; 獲取單元,用于獲取所述內(nèi)節(jié)點的所有子節(jié)點的相關(guān)度和權(quán)重值; 內(nèi)節(jié)點計算單元,根據(jù)所獲取的所述內(nèi)節(jié)點的所有子節(jié)點相關(guān)度和權(quán)重值計算所述內(nèi)節(jié)點的相關(guān)度。
9.如權(quán)利要求8所述的XML數(shù)據(jù)庫全文檢索的文本相關(guān)度計算系統(tǒng),其特征在于,所述的子節(jié)點計算單元進一步包括一葉節(jié)點計算單元,所述葉節(jié)點計算單元利用下述的公式計算所述葉節(jié)點的相關(guān)度S S=M/N ; 其中,M為查詢字符串經(jīng)過分詞后得到的若干個目標查詢單詞在被檢索的文本字符串中出現(xiàn)的總次數(shù),N為將所述被檢索的文本字符串分詞后得到的單詞的總數(shù)。
10.如權(quán)利要求8所述的XML數(shù)據(jù)庫全文檢索的文本相關(guān)度計算系統(tǒng),其特征在于,所述的葉節(jié)點和所述內(nèi)節(jié)點的其他的所有子節(jié)點的的權(quán)重值W由用戶自定義。
11.如權(quán)利要求8所述的XML數(shù)據(jù)庫全文檢索的文本相關(guān)度計算系統(tǒng),其特征在于,所述的內(nèi)節(jié)點計算單元利用下述的公式計算所述內(nèi)節(jié)點的相關(guān)度Stl
12.如權(quán)利要求8所述的XML數(shù)據(jù)庫全文檢索的文本相關(guān)度計算系統(tǒng),其特征在于,還進一步包括一修正單元,所述的修正單元利用下述的公式計算所述內(nèi)節(jié)點的相關(guān)度Sci,已將所述內(nèi)節(jié)點的相關(guān)度Stl限定于區(qū)間
之內(nèi)
13.如權(quán)利要求8所述的XML數(shù)據(jù)庫全文檢索的文本相關(guān)度計算系統(tǒng),其特征在于,若所述內(nèi)節(jié)點的所有子節(jié)點的權(quán)重值都相等或者只有一個子節(jié)點的相關(guān)度值為非零,則所述內(nèi)節(jié)點計算單元將通過求均值計算出所述內(nèi)節(jié)點的相關(guān)度
14.如權(quán)利要求8所述的XML數(shù)據(jù)庫全文檢索的文本相關(guān)度計算方法,其特征在于,若所述內(nèi)節(jié)點的所有子節(jié)點的相關(guān)度皆為零或者最大的權(quán)重值為零,則所述內(nèi)節(jié)點計算單元將所述內(nèi)節(jié)點的相關(guān)度Stl設(shè)置為零。
全文摘要
本發(fā)明提供一種XML數(shù)據(jù)庫全文檢索的文本相關(guān)度計算方法和系統(tǒng)包括計算包括XQueryFulltext查詢語法樹中的葉節(jié)點在內(nèi)的所有內(nèi)節(jié)點的子節(jié)點的相關(guān)度和權(quán)重值;將所述內(nèi)節(jié)點的所有子節(jié)點的相關(guān)度和權(quán)重值分別保存在兩個數(shù)組中;獲取所述內(nèi)節(jié)點的所有子節(jié)點的相關(guān)度和權(quán)重值;根據(jù)所獲取的所述內(nèi)節(jié)點的所有子節(jié)點的相關(guān)度和權(quán)重值計算所述內(nèi)節(jié)點的相關(guān)度。本發(fā)明的技術(shù)方案可以有效、合理地計算出文本檢索的相關(guān)度,其所采用的計算方法簡單、高效,計算開銷可以忽略不計,有效節(jié)約了資源,并且用這種方法計算的相關(guān)度具有較強的合理性,能夠反映出用戶的查詢意圖,并且滿足XQueryFulltext對score變量的約束。
文檔編號G06F17/30GK102799685SQ20121026501
公開日2012年11月28日 申請日期2012年7月27日 優(yōu)先權(quán)日2012年7月27日
發(fā)明者趙偉, 鄭程光, 孫偉豐, 羅正海, 李泉, 李 浩, 李書淦, 程仁波 申請人:上海方正數(shù)字出版技術(shù)有限公司