專利名稱:一種支持多語言的xml數(shù)據(jù)庫全文檢索方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域,特別涉及一種持多語言的XML數(shù)據(jù)庫全文檢索方法。
背景技術(shù):
XML(全稱 Extensible Markup Language),是一種專門為 internet 而設(shè)計(jì)的一種標(biāo)記語言,且由于其具有有效的表達(dá)各種信息、數(shù)據(jù)和使各種應(yīng)用協(xié)同工作的能力,業(yè)已 成為數(shù)據(jù)發(fā)布和數(shù)據(jù)交換的事實(shí)標(biāo)準(zhǔn),因此,XML在近幾年得到了發(fā)展和廣泛的應(yīng)用。XML的重點(diǎn)不在于數(shù)據(jù)的形式本身,而在于管理數(shù)據(jù)信息,因此,XML使得不同數(shù)據(jù)庫模式的統(tǒng)一成為可能,為異構(gòu)數(shù)據(jù)庫的集成問題提供了途徑。XML數(shù)據(jù)庫管理系統(tǒng)(XML數(shù)據(jù)庫管理系統(tǒng))是近年來快速發(fā)展的一種新型的數(shù)據(jù)庫管理系統(tǒng)(數(shù)據(jù)庫管理系統(tǒng)),它存儲(chǔ)和檢索的數(shù)據(jù)是XML文檔,并且支持更新XML文檔。隨著XML標(biāo)準(zhǔn)被越來越多的行業(yè)采納為數(shù)據(jù)交換標(biāo)準(zhǔn),XML數(shù)據(jù)的管理(包括存儲(chǔ)、檢索、更新等)需求會(huì)持續(xù)快速增長,特別是XML數(shù)據(jù)庫管理系統(tǒng)比關(guān)系數(shù)據(jù)庫管理系統(tǒng)更加適合處理文本類數(shù)據(jù)和XML文檔數(shù)據(jù)。查詢引擎是數(shù)據(jù)庫管理系統(tǒng)(數(shù)據(jù)庫管理系統(tǒng))中的核心子系統(tǒng),由于XML是典型的半結(jié)構(gòu)化數(shù)據(jù),對(duì)XML數(shù)據(jù)的查詢要求不同于傳統(tǒng)數(shù)據(jù)庫,在查詢時(shí)不僅要對(duì)數(shù)據(jù)庫中的數(shù)值進(jìn)行查詢,而且要對(duì)XML文檔的結(jié)構(gòu)和數(shù)據(jù)之間的關(guān)系進(jìn)行查詢。隨著XML相關(guān)技術(shù)的深入研究,XML查詢已經(jīng)具備了堅(jiān)實(shí)的技術(shù)基礎(chǔ)在此基礎(chǔ)上,W3CfforldffideffebConsortium于2001年12月提出了 XML查詢語言規(guī)范工作草案-XQuery語言,迄今為止,XQuery語言一直在不斷的發(fā)展中。XML數(shù)據(jù)的檢索和更新語言是由W3C制定的標(biāo)準(zhǔn)的XQuery和XQuery Update。W3C同時(shí)制定了 XQuery Fulltext標(biāo)準(zhǔn),作為XML數(shù)據(jù)庫管理系統(tǒng)的標(biāo)準(zhǔn)的全文檢索語言。XQuery Fulltext語言定義了匹配選項(xiàng)(match options)功能,讓用戶可以定制全文檢索行為。其中有一項(xiàng)匹配選項(xiàng)是語言選項(xiàng)(language),也就是設(shè)置當(dāng)前的全文檢索條件中的字符串所使用的語言,然后所有的全文檢索行為都假設(shè)檢索條件字符串和文本內(nèi)容字符串使用的是這種語言。XQuery Fulltext標(biāo)準(zhǔn)制定了在XQuery Fulltext查詢中使用任意的stopwords, thesaurus詞匯表的機(jī)制。Stopwords即停用詞,其作用是在全文檢索過程中忽略非常常用的單詞,比如冠詞,助詞,語氣詞,介詞等等,因?yàn)檫@些詞在大多數(shù)文本中都存在,失去了索引的意義和價(jià)值;這些詞被列在一個(gè)stopwords詞匯表中,做分詞和全文檢索的詞語匹配時(shí),就忽略這些單詞,認(rèn)為它們與任何單詞都匹配。Thesaurus的作用是定義詞匯之間的關(guān)系,比如近義詞,詞匯意義的擴(kuò)展或者縮小關(guān)系,常用與不常用關(guān)系等,以便在查找一個(gè)詞的時(shí)候也可以找到含有與之有指定關(guān)系的其他詞語的文本。Stemming即詞根化,其作用是在英語等歐洲語言中做詞根匹配——只要兩個(gè)單詞有相同的詞根,就可以認(rèn)為它們相等,雖然他們?cè)谧置嫔喜⒉幌嗤1热缬⑽闹械膁one和doing在啟用詞根化選項(xiàng)時(shí)是相同的單詞。
但是對(duì)于全文檢索的需求來說,標(biāo)準(zhǔn)的XQuery Fulltext定義的功能還很不完整。要求用戶指定語言的查詢機(jī)制會(huì)限制全文檢索的靈活性,這是因?yàn)樵趪H化的潮流下,特別是internet網(wǎng)絡(luò)上面的文字內(nèi)容中,有大量多語言混合的文本。這種情況在中文文本中更加普遍,目前各種網(wǎng)絡(luò)文字中存在大量中英文混合的內(nèi)容。如果一個(gè)XML數(shù)據(jù)庫管理系統(tǒng)只能檢索限定為某種語言的文本,就無法適應(yīng)這種多語言文本的全文檢索需求,特別是無法適應(yīng)中國用戶的需求。而且,實(shí)現(xiàn)多種語言的全文檢索,在技術(shù)實(shí)現(xiàn)上存在著一定的技難度,阻礙了 XML數(shù)據(jù)庫管理系統(tǒng)的全文檢索技術(shù)的發(fā)展。
發(fā)明內(nèi)容
為解決上述問題,本發(fā)明技術(shù)方案提供的一種支持多語言的XML數(shù)據(jù)庫全文檢索方法,包括分別構(gòu)建stemming詞匯表、thesaurus詞匯表和stopwords詞匯表;分別將所述stemming詞匯表、所述thesaurus詞匯表和所述stopwords詞匯表存 儲(chǔ)至XML數(shù)據(jù)庫管理系統(tǒng)的查詢引擎中;分別設(shè)置所述stemming詞匯表、所述thesaurus詞匯表和所述stopwords詞匯表各自對(duì)應(yīng)的唯一的查詢字符串作為其主鍵標(biāo)識(shí);在全文檢索查詢語句中引用所述stemming詞匯表、所述thesaurus詞匯表和所述stopwords 詞匯表;所述查詢引擎分別以所述查詢字符串為主鍵從所述stemming詞庫中查找所述stemming詞匯表、從所述thesaurus詞庫中查找所述thesaurus詞匯表,從所述所述stopwords詞庫中查找所述stopwords詞匯表,并得到各自存儲(chǔ)的字符串內(nèi)容;所述按照stemming詞匯表的預(yù)定義格式解析從所述stemming詞匯表中查找得到的所述字符串、按照所述thesaurus詞匯表的預(yù)定義格式解析從thesaurus所述詞匯表中查找得到的字符串以及按照所述stopwords詞匯表的預(yù)定義格式解析從stopwords所述詞匯表中查找得到的字符串;所述查詢引擎分別將所述經(jīng)過解析的字符串從相應(yīng)的詞匯表中取出并存儲(chǔ)至相應(yīng)的內(nèi)存數(shù)據(jù)結(jié)構(gòu)中,以快速查找任意單詞的詞根、詞間關(guān)系和停用詞??蛇x地,所述分別構(gòu)建stemming詞匯表、thesaurus詞匯表和stopwords詞匯表具體為將多種語言的詞根存儲(chǔ)至所述stemming詞匯表,多種語言的詞匯間關(guān)系存儲(chǔ)至所述thesaurus詞匯表,將多種語言的停用詞存儲(chǔ)至stopwords詞匯表中??蛇x地,將所述thesaurus詞匯表存儲(chǔ)至所述查詢引擎中具體為在所述查詢引擎中構(gòu)建thesaurus詞庫,所述thesaurus詞庫為一元數(shù)據(jù)表,在所述元數(shù)據(jù)表的每一行存儲(chǔ)每種語言的所述thesaurus詞匯表的全部內(nèi)容??蛇x地,將所述stopwords詞匯表存儲(chǔ)至所述查詢引擎中具體為在所述查詢引擎中構(gòu)建stopwords詞庫,所述stopwords詞庫為一元數(shù)據(jù)表,在所述元數(shù)據(jù)表的每一行存儲(chǔ)每種語言的所述stopwords詞匯表的全部內(nèi)容??蛇x地,在所述stemming詞匯表中存儲(chǔ)多種語言的詞根數(shù)據(jù)或在所述stopwords詞匯表存儲(chǔ)多種語言的停用詞數(shù)據(jù)。可選地,在所述thesaurus詞匯表中指定任意的詞間關(guān)系數(shù)據(jù)。
可選地,所述在thesaurus詞匯表中指定任意的詞間關(guān)系具體為在所述thesaurus詞匯表中直接使用任意詞匯關(guān)系字符串表示兩個(gè)字符串之間的詞間關(guān)系??蛇x地,在所述分別使用唯一的字符串作為主鍵標(biāo)識(shí)所述stemming詞匯表、所述thesaurus詞匯表和所述stopwords詞匯表中,所述字符串為URL字符串。可選地,所述在全文檢索查詢語句中引用所述stemming詞匯表具體為在所述全文檢索查詢語句中,使用“ using stemming at URL”的形式引用指定的URL所標(biāo)識(shí)的所述stemming詞彳し表??蛇x地,所述在全文檢索查詢語句中引用所述thesaurus詞匯表具體為在所述全文檢索查詢語句中,使用“using thesaurus at URL”的形式引用指定的URL所標(biāo)識(shí)的所述thesaurus詞匯表??蛇x地,所述在全文檢索查詢語句中引用所述stopwords詞匯表具體為在所述全文檢索查詢語句中,使用“using stopwords atURL”的形式引用指定的URL所標(biāo)識(shí)的所 述stopwords詞匯表。可選地,在所述的按照stemming詞匯表預(yù)定義的格式解析所述字符串中,所述stemming詞匯表預(yù)定義的格式具體為所述stemming詞匯表的姆行分別存儲(chǔ)兩個(gè)單詞字符串,所述的兩個(gè)單詞字符串中間以ー tab字符分隔,所述的位于所述tab字符分隔的左邊字符串為任意詞匯字符串,所述的位于所述tab字符右邊的字符串為位于所述tab字符左邊的字符串的詞根??蛇x地,在所述的按照thesaurus詞匯表預(yù)定義的格式解析所述字符串中,所述thesaurus詞匯表預(yù)定義的格式具體為所述thesaurus詞匯表的姆行分別存儲(chǔ)三個(gè)單詞字符串,所述的每兩個(gè)單詞字符串中間以ー tab字符分隔,第一和第三的單詞字符串具有第二個(gè)單詞字符串指定的詞間關(guān)系??蛇x地,在所述的按照stopwords詞匯表預(yù)定義的格式解析所述字符串中,所述stopwords詞匯表預(yù)定義的格式具體為所述stopwords詞匯表的姆行分別存儲(chǔ)一個(gè)停用詞單詞字符串。可選地,在所述查詢引擎分別將所述經(jīng)過解析的字符串從相應(yīng)的詞匯表中取出并存儲(chǔ)至相應(yīng)的內(nèi)存數(shù)據(jù)結(jié)構(gòu)中,以快速查找任意單詞的詞根、詞間關(guān)系和停用詞中,查所述詢引擎將經(jīng)解析的從stemming詞匯表中的字符串取出并存儲(chǔ)至內(nèi)存的ー哈希表中,所述查詢引擎將經(jīng)解析的從thesaurus詞匯表中的字符串取出并存儲(chǔ)至內(nèi)存的又一哈希表中,所述查詢引擎將經(jīng)解析的從stopwords詞匯表中的字符串取出并存儲(chǔ)至內(nèi)存的ー數(shù)組或
^ 由
: ロ1o與現(xiàn)有技術(shù)相比,上述技術(shù)方案具有下優(yōu)點(diǎn)本發(fā)明的技術(shù)方案可以讓XML數(shù)據(jù)庫管理系統(tǒng)不再依賴于語言選項(xiàng)設(shè)置,支持在同一個(gè)文本匹配條件中使用多種語言構(gòu)成的查詢條件字符串進(jìn)行全文檢索,且被檢索的XML文檔內(nèi)部亦可同時(shí)含有多種語言文字。與現(xiàn)有技術(shù)中數(shù)據(jù)庫管理系統(tǒng)相比,本發(fā)明的技術(shù)方案對(duì)于以互聯(lián)網(wǎng)為基礎(chǔ)的國際化大潮下大量的多語言文本的全文檢索具有更大的實(shí)用價(jià)值,因?yàn)檫@樣的文本內(nèi)容和全文檢索需求會(huì)不斷快速增長,限定于單ー語言的全文檢索無法滿足這類需求,只有支持多語言全文檢索的XML數(shù)據(jù)庫管理系統(tǒng)才具有實(shí)用價(jià)值。特別是在中文用戶群中該功能更加有用,可以適應(yīng)當(dāng)前中文文本中大量含有英文單詞的現(xiàn)狀和檢索需求。
圖I是本發(fā)明實(shí)施方式的支持多語言的XML數(shù)據(jù)庫全文檢索方法的流程圖。
具體實(shí)施例方式為使本發(fā)明的上述目的、特征和優(yōu)點(diǎn)能夠更為明顯易懂,下面結(jié)合附圖對(duì)本發(fā)明的具體實(shí)施方式
做詳細(xì)的說明。在以下描述中闡述了具體細(xì)節(jié)以便于充分理解本發(fā)明。但是本發(fā)明能夠以多種不同于在此描述的其它方式來實(shí)施,本領(lǐng)域技術(shù)人員可以在不違背本發(fā)明內(nèi)涵的情況下做類似推廣。因此本發(fā)明不受下面公開的具體實(shí)施方式
的限制。本領(lǐng)域的技術(shù)人員知道,標(biāo)準(zhǔn)的XQuery Fulltext使用時(shí)需要設(shè)置語言選項(xiàng),因?yàn)?每一種人類語言有各自的特征,要想同時(shí)支持多種語言的全文檢索存在一定的技術(shù)難度。在XQuery Fulltext的所有匹配選項(xiàng)中,依賴于特定的人類語言的語言學(xué)特征的選項(xiàng)包括停用詞(stopwords),詞根化(stemming)和thesaurus這三種選項(xiàng)?,F(xiàn)有技術(shù)中,按照傳統(tǒng)的方式實(shí)現(xiàn)上述的三種語言匹配選項(xiàng)需要在XML數(shù)據(jù)庫管理系統(tǒng)的全文檢索內(nèi)核中知道所處理的語言的語言學(xué)特征。例如,在英語中哪些詞語常用為停用詞(stopwords),每一個(gè)詞語的詞根是什么,哪些詞語之間有語義間的各種關(guān)聯(lián)等等。XQuery Fulltext標(biāo)準(zhǔn)定義了讓用戶擴(kuò)展stopwords和thesaurus的方法,即在全文檢索查詢中可以用”at URL”的形式引用一個(gè)停用詞表或者thesaurus詞匯表,但是對(duì)stemming沒有類似規(guī)定。為解決現(xiàn)有技術(shù)中的問題,本發(fā)明的發(fā)明人經(jīng)過研究,提出了支持多語言的XML數(shù)據(jù)庫全文檢索方法。參閱圖1,圖I是本發(fā)明實(shí)施方式的支持多語言的XML數(shù)據(jù)庫全文檢索方法的流程圖。本發(fā)明實(shí)施方式的支持多語言的XML數(shù)據(jù)庫全文檢索方法,包括步驟SI :分別構(gòu)建stemming詞匯表、thesaurus詞匯表和stopwords詞匯表;為了支持多種語言的全文檢索,需要在stemming詞匯表中包含他所處理的各種語言的詞匯的詞根信息,在thesaurus詞匯表中包含它所處理的各種語言的詞間關(guān)系信息,在stopwords詞匯表中包含他所處理的各種語言的停用詞。本發(fā)明的技術(shù)方案首先需要構(gòu)建stemming詞庫、stemming詞匯表和stopwords詞匯表,stemming詞匯表存儲(chǔ)有多種語言的作為詞根的單詞的各種變化形式數(shù)據(jù)Ahesaurus詞匯表用于存儲(chǔ)多種語言的詞間關(guān)系數(shù)據(jù),stopwords詞匯表用于存儲(chǔ)多種語言的停用詞數(shù)據(jù)。步驟S2 :分別將所述stemming詞匯表、所述thesaurus詞匯表和所述stopwords詞匯表存儲(chǔ)至XML數(shù)據(jù)庫管理系統(tǒng)的查詢引擎中;其中,將所述stemming詞匯表存儲(chǔ)至所述查詢引擎中具體為在所述查詢引擎中構(gòu)建stemming詞庫,所述stemming詞庫為一元數(shù)據(jù)表,在所述元數(shù)據(jù)表的每一行存儲(chǔ)每種語言的所述stemming詞匯表的全部內(nèi)容。將所述thesaurus詞匯表存儲(chǔ)至所述查詢引擎中具體為在所述查詢引擎中構(gòu)建thesaurus詞庫,所述thesaurus詞庫為一元數(shù)據(jù)表,在所述元數(shù)據(jù)表的每一行存儲(chǔ)每種語言的所述thesaurus詞匯表的全部內(nèi)容。將所述stopwords詞匯表存儲(chǔ)至所述查詢引擎中具體為在所述查詢引擎中構(gòu)建stopwords詞庫,所述stopwords詞庫為一元數(shù)據(jù)表,在所述元數(shù)據(jù)表的姆一行存儲(chǔ)姆種語言的所述stopwords詞匯表的全部內(nèi)容。步驟S3 :分別設(shè)置所述stemming詞匯表、所述thesaurus詞匯表和所述stopwords詞匯表各自對(duì)應(yīng)的唯一的查詢字符串作為其主鍵標(biāo)識(shí);其中,本步驟中,優(yōu)選使用URL字符串作為主鍵標(biāo)識(shí)所述stemming詞匯表、所述thesaurus詞匯表和所述stopwords詞匯表。
步驟S4 :在全文檢索查詢語句中引用所述stemming詞匯表、所述thesaurus詞匯表和所述stopwords詞匯表;其中,在全文檢索查詢語句中引用所述stemming詞匯表、所述thesaurus詞匯表和所述stopwords詞匯表。例如using stemming at URLusing thesaurus at URLusing stopwords at URL步驟S5 :所述查詢引擎分別以所述查詢字符串為主鍵從所述stemming詞庫中查找所述stemming詞匯表、從所述thesaurus詞庫中查找所述thesaurus詞匯表,從所述所述stopwords詞庫中查找所述stopwords詞匯表,并得到各自存儲(chǔ)的字符串內(nèi)容;步驟S6 :所述按照stemming詞匯表的預(yù)定義格式解析從所述stemming詞匯表中查找得到的所述字符串、按照所述thesaurus詞匯表的預(yù)定義格式解析從thesaurus所述詞匯表中查找得到的字符串以及按照所述stopwords詞匯表的預(yù)定義格式解析從stopwords所述詞匯表中查找得到的字符串;其中,優(yōu)選地,在所述按照stemming詞匯表的預(yù)定義格式解析從所述stemming詞匯表中查找得到的所述字符串中,所述stemming詞匯表的每行分別存儲(chǔ)兩個(gè)單詞字符串,所述的兩個(gè)單詞字符串中間以ー tab字符分隔,所述的位于所述tab字符分隔的左邊字符串為任意詞匯字符串,所述的位于所述tab字符右邊的字符串為位于所述tab字符左邊的字符串的詞根。在所述thesaurus詞匯表的預(yù)定義格式解析從thesaurus所述詞匯表中查找得到的字符串中,所述thesaurus詞匯表的預(yù)定義格式為所述thesaurus詞匯表的姆行分別存儲(chǔ)三個(gè)單詞字符串,所述的每兩個(gè)單詞字符串中間以ー tab字符分隔,第一和第三的單詞字符串具有第二個(gè)單詞字符串指定的詞間關(guān)系。例如,下述表I所示的詞間關(guān)系表I
Love ASYN Hate Love SYN Like其中,第一行定義了 love與hate兩個(gè)單詞之間的反義詞關(guān)系,第二行定義了 love與like之間的近義詞關(guān)系。這里的ASYN和SYN都不是XQuery Fulltext標(biāo)準(zhǔn)的thesaurus詞間關(guān)系,是用戶可以根據(jù)自己的需要進(jìn)行指定的詞間關(guān)系。XQuery Fulltext查詢語句中,直接使用這些詞間關(guān)系字符串即可。
在所述stopwords詞匯表的預(yù)定義格式解析從stopwords所述詞匯表中查找得到的字符串中,所述stopwords詞匯表的預(yù)定義格式所述stopwords詞匯表的每行存儲(chǔ)一個(gè)單詞字符串步驟S7 :所述查詢引擎分別將所述經(jīng)過解析的字符串從相應(yīng)的詞匯表中取出并存儲(chǔ)至相應(yīng)的內(nèi)存數(shù)據(jù)結(jié)構(gòu)中,以快速查找任意單詞的詞根、詞間關(guān)系和停用詞。其中,在本步驟中,所述查詢引擎將經(jīng)解析的從stemming詞匯表中的字符串取出并存儲(chǔ)至內(nèi)存的一哈希表中,將經(jīng)解析的從thesaurus詞匯表中的字符串取出并存儲(chǔ)至內(nèi)存的另外的哈希表中,將經(jīng)解析的從stopwords詞匯表中的字符串取出并存儲(chǔ)至內(nèi)存的一數(shù)組。同時(shí),應(yīng)該指出的是,經(jīng)解析的從stopwords詞匯表中的字符串亦可存儲(chǔ)至內(nèi)存的一
^ 由
: 口卞 O這樣,本發(fā)明的技術(shù)方案使得XML數(shù)據(jù)庫管理系統(tǒng)的全文檢索內(nèi)核不需要理解人 類語言的語言學(xué)特征,只是簡單地把任何一個(gè)單詞當(dāng)作一個(gè)字符串,通過各種詞匯表定義的字符串之間的關(guān)系,找到與之有特定關(guān)系(比如詞根關(guān)系,同義詞關(guān)系等)的另外一個(gè)字符串。只要在xquery fulltext查詢中引用正確的stemming詞匯表、thesaurus詞匯表和stopwords詞匯表,即可正確處理這些詞匯表所支持的人類語言。在XQuery Fulltext查詢中不再使用語言選項(xiàng),即可進(jìn)行包含多種語言的全文檢索。例如下面的查詢片段Contains text “study 黑奴的歷史 of America,,all wordsusing stemming at http://www.founderdpt.com/XMLDBMS/fts/stemmingusing thesaurus at http://www.founderdpt.com/XMLDBMS/fts/thesaurusrelationship SYNusing stopwords at http://www.founderdpt.com/XMLDBMS/fts/stopwords只要所使用的stemming詞匯表中含有中文和英文的stemming詞匯表,stopwords停用詞表和thesaurus詞匯表且在上述的詞匯表包含有上述單詞即可(中文不需要詞根信息所以該詞根表只需要包含英文詞根即可)正確地處理。分詞器會(huì)正確地分割出“study”,“黑奴”,“的”,“歷史”,“of”,“America”等單詞,然后把“的”和“of”被當(dāng)作停用詞處理,并且以“study”和“America”這兩個(gè)單詞為詞根的各種變化形式也會(huì)被匹配到;并且指定的thesaurus詞匯表中與這些單詞具有SYN關(guān)系的單詞也會(huì)被匹配到。另外,本發(fā)明的技術(shù)方案可以在thesaurus詞匯表中指定任意的詞間關(guān)系,并且在XQuery Fulltext查詢語句中使用這些詞間關(guān)系字符串。其中,指定任意的詞間關(guān)系的方法具體為在thesaurus詞匯表中包含它所處理的各種語言的詞間關(guān)系信息。綜上所述,本發(fā)明的技術(shù)方案具有如下的優(yōu)點(diǎn)本發(fā)明的技術(shù)方案可以讓XML數(shù)據(jù)庫管理系統(tǒng)不再依賴于語言選項(xiàng)設(shè)置,支持在同一個(gè)文本匹配條件中使用多種語言構(gòu)成的查詢條件字符串進(jìn)行全文檢索,且被檢索的XML文檔內(nèi)部亦可同時(shí)含有多種語言文字。與現(xiàn)有技術(shù)中數(shù)據(jù)庫管理系統(tǒng)相比,本發(fā)明的技術(shù)方案對(duì)于以互聯(lián)網(wǎng)為基礎(chǔ)的國際化大潮下大量的多語言文本的全文檢索具有更大的實(shí)用價(jià)值,因?yàn)檫@樣的文本內(nèi)容和全文檢索需求會(huì)不斷快速增長,限定于單ー語言的全文檢索無法滿足這類需求,只有支持多語言全文檢索的XML數(shù)據(jù)庫管理系統(tǒng)才具有實(shí)用價(jià)值。特別是在中文用戶群中該功能更加有用,可以適應(yīng)當(dāng)前中文文本中大量含有英文單詞的現(xiàn)狀和檢索需求。應(yīng)當(dāng)理解的是這里所描述的方法和系統(tǒng)可以以各種形式的硬件、軟件、固件、專用處理機(jī)或者它們的組合實(shí)現(xiàn)。尤其是,至少本發(fā)明的一部分包括程序指令的應(yīng)用程序優(yōu)選實(shí)現(xiàn)。這些程序指令被確實(shí)地包括在ー個(gè)或者多個(gè)程序存儲(chǔ)設(shè)備(包括但不限于硬盤,磁性軟盤,RAM, ROM,⑶,ROM等)里,并且可由任何包括適當(dāng)結(jié)構(gòu)的設(shè)備或者機(jī)器,例如ー種具有處理器、內(nèi)存和輸入/輸出接ロ的通用數(shù)字計(jì)算機(jī)執(zhí)行。還應(yīng)當(dāng)理解由于附圖中描述的一些系統(tǒng)的組成部件和處理步驟優(yōu)選地以軟件實(shí)現(xiàn),所以,系統(tǒng)模塊(或者方法步驟的邏輯流程)之間的連接可能不同,這取決于本發(fā)明的編程方式。根據(jù)這里給出的指導(dǎo),相關(guān)領(lǐng)域的普通技術(shù)人員將能夠設(shè)計(jì)出本發(fā)明的這些以及類似的實(shí)施方式。以上公開了本發(fā)明的多個(gè)方面和實(shí)施方式,本領(lǐng)域的技術(shù)人員會(huì)明白本發(fā)明的其它方面和實(shí)施方式。本發(fā)明中公開的多個(gè)方面和實(shí)施方式只是用于舉例說明,并非是對(duì)本 發(fā)明的限定,本發(fā)明的真正保護(hù)范圍和精神應(yīng)當(dāng)以權(quán)利要求書為準(zhǔn)。
權(quán)利要求
1.一種支持多語言的XML數(shù)據(jù)庫全文檢索方法,其特征在于,包括以下的步驟 分別構(gòu)建stemming詞匯表、thesaurus詞匯表和stopwords詞匯表; 分別將所述stemming詞匯表、所述thesaurus詞匯表和所述stopwords詞匯表存儲(chǔ)至XML數(shù)據(jù)庫管理系統(tǒng)的查詢引擎中; 分別設(shè)置所述stemming詞匯表、所述thesaurus詞匯表和所述stopwords詞匯表各自對(duì)應(yīng)的唯一的查詢字符串作為其主鍵標(biāo)識(shí); 在全文檢索查詢語句中引用所述stemming詞匯表、所述thesaurus詞匯表和所述stopwords 詞匯表; 所述查詢引擎分別以所述查詢字符串為主鍵從所述stemming詞庫中查找所述 stemming詞匯表、從所述thesaurus詞庫中查找所述thesaurus詞匯表,從所述所述stopwords詞庫中查找所述stopwords詞匯表,并得到各自存儲(chǔ)的字符串內(nèi)容; 所述按照stemming詞匯表的預(yù)定義格式解析從所述stemming詞匯表中查找得到的所述字符串、按照所述thesaurus詞匯表的預(yù)定義格式解析從thesaurus所述詞匯表中查找得到的字符串以及按照所述stopwords詞匯表的預(yù)定義格式解析從stopwords所述詞匯表中查找得到的字符串; 所述查詢引擎分別將所述經(jīng)過解析的字符串從相應(yīng)的詞匯表中取出并存儲(chǔ)至相應(yīng)的內(nèi)存數(shù)據(jù)結(jié)構(gòu)中,以快速查找任意單詞的詞根、詞間關(guān)系和停用詞。
2.如權(quán)利要求I所述的支持多語言的XML數(shù)據(jù)庫全文檢索方法,其特征在于,所述分別構(gòu)建stemming詞匯表、thesaurus詞匯表和stopwords詞匯表具體為將多種語言的詞根存儲(chǔ)至所述stemming詞匯表,多種語言的詞匯間關(guān)系存儲(chǔ)至所述thesaurus詞匯表,將多種語言的停用詞存儲(chǔ)至stopwords詞匯表中。
3.如權(quán)利要求I所述的支持多語言的XML數(shù)據(jù)庫全文檢索方法,其特征在于,將所述thesaurus詞匯表存儲(chǔ)至所述查詢引擎中具體為在所述查詢引擎中構(gòu)建thesaurus詞庫,所述thesaurus詞庫為一元數(shù)據(jù)表,在所述元數(shù)據(jù)表的每一行存儲(chǔ)每種語言的所述thesaurus詞匯表的全部內(nèi)容。
4.如權(quán)利I所述的支持多語言的XML數(shù)據(jù)庫全文檢索方法,其特征在于,將所述stopwords詞匯表存儲(chǔ)至所述查詢引擎中具體為在所述查詢引擎中構(gòu)建stopwords詞庫,所述stopwords詞庫為一元數(shù)據(jù)表,在所述元數(shù)據(jù)表的每一行存儲(chǔ)每種語言的所述stopwords詞匯表的全部內(nèi)容。
5.如權(quán)利要求I所述的支持多語言的XML數(shù)據(jù)庫全文檢索方法,其特征在于,在所述stemming詞匯表中存儲(chǔ)多種語言的詞根數(shù)據(jù)或在所述stopwords詞匯表存儲(chǔ)多種語言的停用詞數(shù)據(jù)。
6.如權(quán)利要求I所述的支持多語言的XML數(shù)據(jù)庫全文檢索方法,其特征在于,在所述thesaurus詞匯表中指定任意的詞間關(guān)系數(shù)據(jù)。
7.如權(quán)利要求6所述的支持多語言的XML數(shù)據(jù)庫全文檢索方法,其特征在于,所述在thesaurus詞匯表中指定任意的詞間關(guān)系具體為在所述thesaurus詞匯表中直接使用任意詞匯關(guān)系字符串表示兩個(gè)字符串之間的詞間關(guān)系。
8.如權(quán)利要求I所述的支持多語言的XML數(shù)據(jù)庫全文檢索方法,其特征在于,在所述分別使用唯一的字符串作為主鍵標(biāo)識(shí)所述stemming詞匯表、所述thesaurus詞匯表和所述stopwords詞匯表中,所述字符串為URL字符串。
9.如權(quán)利要求I所述的支持多語言的XML數(shù)據(jù)庫全文檢索方法,其特征在于,所述在全文檢索查詢語句中引用所述stemming詞匯表具體為在所述全文檢索查詢語句中,使用“using stemming at URL”的形式引用指定的URL所標(biāo)識(shí)的所述stemming詞匯表。
10.如權(quán)利要求I所述的支持多語言的XML數(shù)據(jù)庫全文檢索方法,其特征在于,所述在全文檢索查詢語句中引用所述thesaurus詞匯表具體為在所述全文檢索查詢語句中,使用“using thesaurus at URL”的形式引用指定的URL所標(biāo)識(shí)的所述thesaurus詞匯表。
11.如權(quán)利要求I所述的支持多語言的XML數(shù)據(jù)庫全文檢索方法,其特征在于,所述在全文檢索查詢語句中引用所述stopwords詞匯表具體為在所述全文檢索查詢語句中,使 用“using stopwords at URL”的形式引用指定的URL所標(biāo)識(shí)的所述stopwords詞匯表。
12.如權(quán)利要求I所述的支持多語言的XML數(shù)據(jù)庫全文檢索方法,其特征在于,在所述的按照stemming詞匯表預(yù)定義的格式解析所述字符串中,所述stemming詞匯表預(yù)定義的格式具體為所述stemming詞匯表的每行分別存儲(chǔ)兩個(gè)單詞字符串,所述的兩個(gè)單詞字符串中間以一 tab字符分隔,所述的位于所述tab字符分隔的左邊字符串為任意詞匯字符串,所述的位于所述tab字符右邊的字符串為位于所述tab字符左邊的字符串的詞根。
13.如權(quán)利要求I所述的支持多語言的XML數(shù)據(jù)庫全文檢索方法,其特征在于,在所述的按照thesaurus詞匯表預(yù)定義的格式解析所述字符串中,所述thesaurus詞匯表預(yù)定義的格式具體為所述thesaurus詞匯表的每行分別存儲(chǔ)三個(gè)單詞字符串,所述的每兩個(gè)單詞字符串中間以一 tab字符分隔,第一和第三的單詞字符串具有第二個(gè)單詞字符串指定的詞間關(guān)系。
14.如權(quán)利要求I所述的支持多語言的XML數(shù)據(jù)庫全文檢索方法,其特征在于,在所述的按照stopwords詞匯表預(yù)定義的格式解析所述字符串中,所述stopwords詞匯表預(yù)定義的格式具體為所述stopwords詞匯表的每行分別存儲(chǔ)一個(gè)停用詞單詞字符串。
15.如權(quán)利要求I所述的支持多語言的XML數(shù)據(jù)庫全文檢索方法,其特征在于,在所述查詢引擎分別將所述經(jīng)過解析的字符串從相應(yīng)的詞匯表中取出并存儲(chǔ)至相應(yīng)的內(nèi)存數(shù)據(jù)結(jié)構(gòu)中,以快速查找任意單詞的詞根、詞間關(guān)系和停用詞中,查所述詢引擎將經(jīng)解析的從stemming詞匯表中的字符串取出并存儲(chǔ)至內(nèi)存的一哈希表中,所述查詢引擎將經(jīng)解析的從thesaurus詞匯表中的字符串取出并存儲(chǔ)至內(nèi)存的又一哈希表中,所述查詢引擎將經(jīng)解析的從stopwords詞匯表中的字符串取出并存儲(chǔ)至內(nèi)存的一數(shù)組或集合中。
全文摘要
本發(fā)明提供了一種支持多語言的XML數(shù)據(jù)庫全文檢索方法。本發(fā)明的技術(shù)方案可以讓XML數(shù)據(jù)庫管理系統(tǒng)不再依賴于語言選項(xiàng)設(shè)置,支持在同一個(gè)文本匹配條件中使用多種語言構(gòu)成的查詢條件字符串進(jìn)行全文檢索,且被檢索的XML文檔內(nèi)部亦可同時(shí)含有多種語言文字。本發(fā)明的技術(shù)方案對(duì)于以互聯(lián)網(wǎng)為基礎(chǔ)的國際化大潮下大量的多語言文本的全文檢索具有更大的實(shí)用價(jià)值,因?yàn)檫@樣的文本內(nèi)容和全文檢索需求會(huì)不斷快速增長,限定于單一語言的全文檢索無法滿足這類需求,只有支持多語言全文檢索的XML數(shù)據(jù)庫管理系統(tǒng)才具有實(shí)用價(jià)值。特別是在中文用戶群中該功能更加有用,可以適應(yīng)當(dāng)前中文文本中大量含有英文單詞的現(xiàn)狀和檢索需求。
文檔編號(hào)G06F17/30GK102760166SQ20121019393
公開日2012年10月31日 申請(qǐng)日期2012年6月12日 優(yōu)先權(quán)日2012年6月12日
發(fā)明者孫偉豐, 李書淦, 李泉, 李 浩, 程仁波, 羅正海, 趙偉, 鄭程光 申請(qǐng)人:上海方正數(shù)字出版技術(shù)有限公司