專利名稱:文獻(xiàn)檢索的方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明一般涉及一種文獻(xiàn)檢索裝置、方法和其中包含文獻(xiàn)檢索程序的存儲介質(zhì)文獻(xiàn)檢索技術(shù)用來從文獻(xiàn)數(shù)據(jù)庫中檢索包括有查詢字符串的文獻(xiàn)。這種文獻(xiàn)檢索技術(shù)之一是一種可能相關(guān)的檢索方案,即利用這種檢索方案檢索的文獻(xiàn)包括有與查詢字符串相似的字符串。
例如,在待審查的日本專利申請No.11-85776號公報中披露了可能相關(guān)的檢索技術(shù)。這種技術(shù)對構(gòu)成查詢字符串的一部分的部分字符串根據(jù)其出現(xiàn)的頻率而計算它們的排序分?jǐn)?shù),然后通過利用所得到的排序分?jǐn)?shù)尋找文獻(xiàn)的查詢字符串。
在1997年3月出版的自然語言聯(lián)合會第3年度會議記錄匯編的第361-364頁所記錄的“全文獻(xiàn)檢索系統(tǒng)‘檢索快遞’的發(fā)展和評估”中發(fā)現(xiàn)了所述可能相關(guān)的檢索技術(shù)的另一例子。這種技術(shù)根據(jù)部分字符串的出現(xiàn)為基礎(chǔ)而得到部分字符串在文獻(xiàn)中出現(xiàn)的所有的位置,從而得到一個查詢字符串在一篇文獻(xiàn)中出現(xiàn)的頻率,然后對于所述的文獻(xiàn)而計算查詢字符串的排序分?jǐn)?shù)。
但是,上述待審查的專利申請所披露的技術(shù)僅在單篇文獻(xiàn)中檢索查詢字符串,而不能從多篇文獻(xiàn)中檢索出包含有一個查詢字符串的一篇文獻(xiàn)。
此外,查詢字符串越長,在檢索中考慮的部分字符串的數(shù)目就越大。另外,查詢字符串越長,用來計算排序分?jǐn)?shù)的文獻(xiàn)段的數(shù)目就越大。這樣就增加了檢索的時間。例如,一個查詢字符串為“ABCDEF”(為易于解釋的目的,每個大寫字母代表一個日語字符),將每包括2個字符的部分字符串作為一個程序單位,這樣就可得到5個部分字符串,即“AB”、“BC”、“CD”、“DE”和“EF”。通常情況下,在查詢字符串由m個字符組成而一個程序單位由n個字符組成時,就可得到(m-n+1)個部分字符串。因為需要在至少抽取的部分字符串之一出現(xiàn)的每個位置處計算排序分?jǐn)?shù),因此,隨著部分字符串?dāng)?shù)目的增加,需要進(jìn)行計算的位置的數(shù)目也增加。
文獻(xiàn)中的部分字符串的排序分?jǐn)?shù)是以部分字符串在文獻(xiàn)中出現(xiàn)的頻率為基礎(chǔ)來計算的。文獻(xiàn)中出現(xiàn)的一些部分字符串或許對查詢字符串沒有關(guān)系,但這些事件被認(rèn)為引起排序分?jǐn)?shù)不應(yīng)有的增加,這樣就降低了檢索的準(zhǔn)確性。例如,在一篇給定的文獻(xiàn)中查詢字符串“ABCDEF”也許只出現(xiàn)一次,而另一個具有完全不同意義的字符串“WXYZEF”在這篇文獻(xiàn)中也許出現(xiàn)了許多次。在這種情況下,部分字符串“EF”出現(xiàn)的次數(shù)為“ABCDEF”事件的數(shù)目與“WXYZEF”事件的數(shù)目二者之和。因此,盡管查詢字符串出現(xiàn)率低,但部分字符串“EF”卻具有不合理的高排序分?jǐn)?shù),這樣就導(dǎo)致了查詢字符串的不合理的排序分?jǐn)?shù)。
另一個問題在于如果查詢字符串的長度小于一個程序單位,則就不能進(jìn)行檢索。這是因為查詢字符串不能被分解為具有程序單位長度的部分字符串。例如,如果查詢字符串為“B”,而兩個字符構(gòu)成一個程序單位,因為查詢字符串比程序單位短,所以不能進(jìn)行這種方法的檢索。
在1977年3月出版的自然語言聯(lián)合會第3年度會議記錄匯編的第361-364頁所記錄的“全文獻(xiàn)檢索系統(tǒng)‘檢索快遞’的發(fā)展和評估”所披露的技術(shù)中存在的問題與上述待審查的專利申請披露的技術(shù)中存在的問題相同。即,在一篇文獻(xiàn)中所統(tǒng)計的一個查詢字符串事件數(shù)隨著查詢字符串的長度的增加而增大,這樣就導(dǎo)致了文獻(xiàn)檢索時間的加長。一個查詢字符串事件數(shù)越大,檢索文獻(xiàn)所用的時間增加的越顯著。
因此,對檢索方案的一個要求為可以以較高速度較容易地檢索一篇文獻(xiàn)。
對檢索方案的另一個要求為減少選擇文獻(xiàn)和計算排序分?jǐn)?shù)的計算負(fù)荷,從而達(dá)到高速的處理。
對檢索方案的另一個要求為不受其他與查詢字符串無關(guān)的字符串的影響,從而提高檢索的準(zhǔn)確性。
對檢索方案的另一個要求為減少得到一個查詢字符串事件的位置的計算負(fù)荷,從而達(dá)到高速的文獻(xiàn)檢索。
對檢索方案的另一個要求為減小計算檢索的數(shù)目,這樣可提高檢索速度。
對檢索方案的另一個要求為即使在查詢字符串的長度小于程序單位的情況下也可檢索文獻(xiàn)。
對檢索方案的另一個要求為減少計算排序分?jǐn)?shù)的計算負(fù)荷,從而達(dá)到高速的檢索。
本發(fā)明的一個總的目的是提供一種可基本排除由現(xiàn)有技術(shù)的局限及缺點所引起的一個或多個問題的文獻(xiàn)檢索方案。
本發(fā)明的特點和優(yōu)點將在下面的內(nèi)容中進(jìn)行陳述,并通過下面的描述和附圖將會使其部分地明確化,或根據(jù)描述中所提供的技術(shù)而通過對本發(fā)明的實踐可理解本發(fā)明,通過以完整、清晰、簡潔和準(zhǔn)確的術(shù)語所特別指出的進(jìn)行文獻(xiàn)檢索所用的方法和裝置,可實現(xiàn)并可得到本發(fā)明的目的及其他特點和優(yōu)點,這樣也可使本領(lǐng)域的普通技術(shù)人員來實踐本發(fā)明。
為達(dá)到根據(jù)此處所體現(xiàn)和廣泛描述的本發(fā)明的上述和其他優(yōu)點和目的,本發(fā)明提供了一種用來進(jìn)行文獻(xiàn)檢索的方法,該方法包括如下步驟將查詢字符串分解為部分字符串;從多篇已記錄的文獻(xiàn)中選擇一篇或多篇文獻(xiàn),這樣所選擇的一篇或多篇文獻(xiàn)中的每一篇文獻(xiàn)均包含所有的部分字符串;計算一篇或多篇文獻(xiàn)中的每篇文獻(xiàn)中的部分字符串的相應(yīng)的分?jǐn)?shù),對一篇或多篇文獻(xiàn)中的每篇文獻(xiàn)來說,還應(yīng)計算來自部分字符串的相應(yīng)分?jǐn)?shù)的查詢字符串的分?jǐn)?shù)。
在上述的方法中,在計算分?jǐn)?shù)之前選擇包括有與查詢字符串相似的部分字符串的一篇或多篇文獻(xiàn)。因為存在這個分級過程,可進(jìn)行高速文獻(xiàn)檢索而從多篇記錄的文獻(xiàn)中檢索出一篇文獻(xiàn)。
根據(jù)本發(fā)明的一個方面,上述方法中將查詢字符串分解為通常不重疊且覆蓋查詢字符串的整個長度的部分字符串。
在上述的方法中,可減少選擇一篇或多篇文獻(xiàn)和計算分?jǐn)?shù)的計算負(fù)荷,這樣就可達(dá)到高速的文獻(xiàn)檢索。
根據(jù)本發(fā)明的另一個方面,上述首先描述的方法為部分字符串的相應(yīng)的分?jǐn)?shù)的計算步驟包括如下步驟,即,得到指示包括有給定部分字符串之一的已記錄文獻(xiàn)多少的第一計數(shù);得到指示相應(yīng)的部分字符串之一在給定的一篇或多篇文獻(xiàn)中出現(xiàn)的次數(shù)多少的第二計數(shù);得到最小的第二計數(shù);得到來自于第一計數(shù)和最小的第二計數(shù)和所給定的一篇或多篇文獻(xiàn)中的給定的部分字符串之一的分?jǐn)?shù),這樣,隨著第一計數(shù)的減少及第二個最小數(shù)字的增加,所給定的部分字符串之一的分?jǐn)?shù)就增加。
在上述的方法中,在計算分?jǐn)?shù)時,可減小不相關(guān)的部分字符串出現(xiàn)的影響,這樣就提高了檢索的準(zhǔn)確性。
根據(jù)本發(fā)明的另一方面,上面首先描述的方法為部分字符串的相應(yīng)分?jǐn)?shù)的計算步驟包括如下步驟,即,得到指示包括有給定部分字符串之一的已記錄文獻(xiàn)多少的第一計數(shù);得到指示一個相應(yīng)的查詢字符串在給定的一篇或多篇文獻(xiàn)之一中出現(xiàn)的次數(shù)多少的第二計數(shù);得到來自于第一計數(shù)和第二計數(shù)的所給定的一篇或多篇文獻(xiàn)之一中的給定的一個部分字符串的分?jǐn)?shù),這樣,隨著第一計數(shù)的減少及第二計數(shù)的增加,所給定的部分字符串之一的分?jǐn)?shù)就增加。
在上述的方法中,在計算分?jǐn)?shù)時,在一篇文獻(xiàn)中可消除不相關(guān)的部分字符串出現(xiàn)的影響,從而可提高檢索的準(zhǔn)確性。
根據(jù)本發(fā)明的另一個方面,上面所述的方法中的得到第二計數(shù)的步驟還包括為第二計數(shù)設(shè)置一個上限這一步驟。
在上述的方法中,可減少檢索查詢字符串的位置的計算負(fù)荷,這樣有助于達(dá)到高速的文獻(xiàn)檢索。
根據(jù)本發(fā)明的另一方面,上面首先描述的方法為通過選擇一篇或多篇文獻(xiàn)的步驟來選擇一篇或多篇文獻(xiàn),所選擇的一篇或多篇文獻(xiàn)中的每篇文獻(xiàn)均包括查詢字符串,部分字符串的相應(yīng)的分?jǐn)?shù)的計算步驟如下,即,得到用來指示包含查詢字符串的已記錄文獻(xiàn)多少的第一計數(shù);得到用來指示給定的部分字符串之一在給定的一篇或多篇文獻(xiàn)中出現(xiàn)的次數(shù)多少的第二計數(shù);得到來自于第一計數(shù)和第二計數(shù)的所給定的一篇或多篇文獻(xiàn)之一中的給定的字符串之一的分?jǐn)?shù),這樣,隨著第一計數(shù)的減少及第二計數(shù)的增加,所給定的部分字符串之一的分?jǐn)?shù)就增加。
在上述的方法中,可消除跨不同文獻(xiàn)的不相關(guān)的部分字符串的出現(xiàn)的影響,這樣有助于提高文獻(xiàn)檢索的準(zhǔn)確性。
根據(jù)本發(fā)明的另一方面,上面首先描述的方法為通過選擇一篇或多篇文獻(xiàn)的步驟來選擇一篇或多篇文獻(xiàn),所選擇的一篇或多篇文獻(xiàn)中的每篇文獻(xiàn)均包括查詢字符串,部分字符串的相應(yīng)的分?jǐn)?shù)的計算步驟如下,即,得到用來指示包含查詢字符串的已記錄文獻(xiàn)多少的第一計數(shù);計算來自第一計數(shù)的界限;得到用來指示一個查詢字符串在給定的一篇或多篇文獻(xiàn)之一中出現(xiàn)的次數(shù)多少的第二計數(shù);同時將第二計數(shù)的上端限制在其界限內(nèi);得到來自于第一計數(shù)和第二計數(shù)的所給定的一篇或多篇文獻(xiàn)之一中的給定的部分字符串之一的分?jǐn)?shù),這樣,隨著第一計數(shù)的減少及第二計數(shù)的增加,所給定的部分字符串之一的分?jǐn)?shù)就增加。
在上面描述的方法中,可消除不相關(guān)的部分字符串產(chǎn)生的影響,并可減小檢索查詢字符串的位置的計算負(fù)荷,這樣就達(dá)到準(zhǔn)確且高速的文獻(xiàn)檢索。
根據(jù)本發(fā)明的另一個方面,一種進(jìn)行文獻(xiàn)檢索的方法包括如下步驟提供相應(yīng)的文獻(xiàn)檢索目錄,每個檢索目錄中均列舉出在相應(yīng)的文獻(xiàn)中發(fā)現(xiàn)的部分字符串及部分字符串在相應(yīng)文獻(xiàn)中的相應(yīng)位置;選擇起始字符串與查詢字符串相一致的部分字符串;從文獻(xiàn)中選擇一篇或多篇文獻(xiàn),這樣一篇或多篇文獻(xiàn)中的每篇文獻(xiàn)均包含至少一個所選擇的字符串;對于一篇或多篇文獻(xiàn)中的每篇文獻(xiàn)均計算其所選擇字符串的相應(yīng)的分?jǐn)?shù);對于一篇或多篇文獻(xiàn)中的每篇文獻(xiàn),從每篇文獻(xiàn)的所選擇的部分字符串的相應(yīng)的分?jǐn)?shù)來計算查詢字符串的分?jǐn)?shù)。
在上面所述的方法中,即使在查詢字符串的長度小于部分字符串的長度的情況下也可進(jìn)行適當(dāng)?shù)奈墨I(xiàn)檢索。
圖1所示為根據(jù)本發(fā)明的第一個實施例的一種文獻(xiàn)檢索裝置的方框圖;圖2A至圖2C顯示了已記錄文獻(xiàn);圖3所示為圖1中執(zhí)行文獻(xiàn)檢索的裝置的系統(tǒng)構(gòu)造的方框圖;圖4所示為對多篇文獻(xiàn)計算排序分?jǐn)?shù)的流程圖,其中的流程是由根據(jù)本發(fā)明的第一個實施例的文獻(xiàn)檢索裝置來執(zhí)行的;圖5所示為計算排序分?jǐn)?shù)的流程圖,該步驟是在圖4中的步驟S3處執(zhí)行的;圖6所示為根據(jù)本發(fā)明的第二個實施例的計算排序分?jǐn)?shù)的流程圖;圖7所示為根據(jù)本發(fā)明的第三個實施例的計算排序分?jǐn)?shù)的流程圖;圖8所示為根據(jù)本發(fā)明的第四個實施例而得到具有上限的查詢字符串出現(xiàn)的次數(shù)的流程圖;圖9所示為根據(jù)本發(fā)明的第五個實施例而計算多篇文獻(xiàn)的排序分?jǐn)?shù)的流程圖;圖10所示為根據(jù)本發(fā)明的第六個實施例而計算多篇文獻(xiàn)的排序分?jǐn)?shù)的流程圖;圖11A至圖11C所示為顯示文獻(xiàn)的例子的說明圖,并顯示了一個相應(yīng)的目錄單位的例子;圖12所示為根據(jù)本發(fā)明的第七個實施例而計算多篇文獻(xiàn)的排序分?jǐn)?shù)的流程圖;圖13所示為根據(jù)本發(fā)明的第八個實施例的文獻(xiàn)檢索裝置的方框圖;圖14所示為選擇部分字符串的流程圖,所選擇的部分字符串不重疊且覆蓋查詢字符串的整個長度。
在下面的內(nèi)容中,將參考附圖而對本發(fā)明的實施例進(jìn)行描述。
圖1所示為根據(jù)本發(fā)明的第一個實施例的文獻(xiàn)檢索裝置1的方框圖。所述文獻(xiàn)檢索裝置1包括文本分解單元2、目錄單元3、文獻(xiàn)選擇單元4和一個分?jǐn)?shù)計算單元5。
文本分解單元2將文本分解為部分字符串,此處所述的文本可為一篇已記錄的文獻(xiàn)或一個查詢字符串。目錄單元3用來儲存通過將已記錄的文獻(xiàn)分解而得到的有關(guān)部分字符串的信息。文獻(xiàn)選擇單元4利用通過將查詢字符串分解而得到的部分字符串來選擇一篇文獻(xiàn),所選擇的文獻(xiàn)的排序分?jǐn)?shù)將被計算出。分?jǐn)?shù)計算單元5利用通過將查詢字符串分解而得到的部分字符串來計算由文獻(xiàn)選擇單元4所選擇的文獻(xiàn)的排序分?jǐn)?shù)。文本分解單元2執(zhí)行分解步驟,文獻(xiàn)選擇單元4執(zhí)行文獻(xiàn)選擇的步驟。此外,分?jǐn)?shù)計算單元5執(zhí)行分?jǐn)?shù)計算的步驟。每一步的詳細(xì)內(nèi)容將在后面的內(nèi)容中進(jìn)行描述。
當(dāng)一篇已記錄的文獻(xiàn)被提供時,文本分解單元2就將所述文獻(xiàn)分解為部分字符串。部分字符串出現(xiàn)的信息就儲存到目錄單元3中。
在下面的內(nèi)容中,將詳細(xì)描述由文獻(xiàn)檢索裝置1執(zhí)行的一個過程。
圖2A和圖2B為記錄文獻(xiàn)的顯示圖。圖2A和圖2B均顯示了一篇已記錄文獻(xiàn)。在每篇已記錄的文獻(xiàn)中,左邊顯示的數(shù)字指示了從文獻(xiàn)的開始處至相應(yīng)部分字符串的位置處所統(tǒng)計的字符的數(shù)目。在圖2A所示的一篇文獻(xiàn)中,字符串“ABCD”從文獻(xiàn)開始的第11個字符開始,“EF”在從開始的第20個字符處和第60個字符處被發(fā)現(xiàn)。此外,字符串“ABCDEF”出現(xiàn)在從開始的第31個字符處。當(dāng)將包含兩個字符的字符串作為一個程序單位時,就將所有的包含兩個字符的字符串從一篇文獻(xiàn)中取出來,被取出的字符串連同其出現(xiàn)的位置(從文獻(xiàn)的開始進(jìn)行字符計數(shù))一起記錄到目錄單元3中。
圖2C顯示了目錄單元3的內(nèi)容。例如,圖2A所示的文獻(xiàn)具有的字符串“AB”出現(xiàn)在從開始的第11個字符處和第31個字符處,文獻(xiàn)具有的字符串“BC”始于從開始的第12個字符處和第32個字符處,這樣這些字符串在文獻(xiàn)中的出現(xiàn)的情況就被記錄到圖2C所示的目錄單元3中。目錄單元3不僅記錄字符串出現(xiàn)的位置,而且還記錄文獻(xiàn)標(biāo)識符,所述文獻(xiàn)標(biāo)識符用來識別與已記錄出現(xiàn)的文獻(xiàn)相關(guān)的文獻(xiàn)。此外,也記錄文獻(xiàn)出現(xiàn)的次數(shù)。如圖2C所示,字符串“AB”被記錄為“(1,2,(11,31))”,這就指出字符串“AB”在圖2A所示的具有文獻(xiàn)標(biāo)識符1的文獻(xiàn)中出現(xiàn)了兩次(出現(xiàn)的次數(shù)=2),字符串出現(xiàn)在從開始的第11個字符處和第31個字符處。
當(dāng)為文獻(xiàn)檢索的目的而提供一個查詢字符串時,文本分解單元2就將查詢字符串分解為部分字符串。文獻(xiàn)選擇單元4選擇一篇或多篇文獻(xiàn)而計算其排序分?jǐn)?shù),根據(jù)部分字符串而進(jìn)行選擇。分?jǐn)?shù)計算單元5利用部分字符串而計算出所選擇的每篇文獻(xiàn)的排序分?jǐn)?shù),從而提供文獻(xiàn)檢索的結(jié)果。
文獻(xiàn)選擇單元4通過鑒別包含查詢字符串的所有部分字符串的文獻(xiàn)而選擇出一篇或多篇文獻(xiàn)。另一種可選擇的方式為,可選擇包括有查詢字符串本身的文獻(xiàn)或滿足一定的適當(dāng)選擇條件的文獻(xiàn)。
分?jǐn)?shù)計算單元5相對于每篇被選擇的文獻(xiàn)而計算查詢字符串的排序分?jǐn)?shù)。查詢字符串的排序分?jǐn)?shù)是根據(jù)部分字符串的排序分?jǐn)?shù)而得到的。此處,部分字符串的排序分?jǐn)?shù)可利用現(xiàn)有技術(shù)中已知的方法如tf法、tf.idf法等在數(shù)據(jù)檢索中所用的典型的方法來計算。例如,可參考1992年P(guān)renticeHall出版的W.B.Frakes Ed的“信息檢索數(shù)據(jù)結(jié)構(gòu)和算法”,特別是其中的文獻(xiàn)部分第14部分。為了從部分字符串的排序分?jǐn)?shù)中得到查詢字符串的排序分?jǐn)?shù),人們可得到部分字符串的一個總和、一個平均值、一個最大值等。
參考圖2C中所示的目錄單元3,下面將對排序分?jǐn)?shù)的計算進(jìn)行描述。
當(dāng)提供查詢字符串“ABCDEF”時。文本分解單元2就從中抽取出部分字符串“AB”、“BC”、“CD”、“DE”和“EF”。然后,文獻(xiàn)選擇單元4就從已記錄的多篇文獻(xiàn)中選擇出包含有所有部分字符串的一篇或多篇文獻(xiàn)。在這個例子中,只有圖2A中所示的文獻(xiàn)滿足要求的條件。在現(xiàn)有技術(shù)中,選擇包括至少一個所選擇部分字符串的文件?,F(xiàn)有技術(shù)中的方案也會選擇這個例子中的圖2B中的文獻(xiàn),而本發(fā)明卻不選擇圖2B中的文獻(xiàn)。
在選擇出一篇或多篇文獻(xiàn)之后,分?jǐn)?shù)計算單元5利用部分字符串而計算每篇所選擇文獻(xiàn)的排序分?jǐn)?shù)。在下面的內(nèi)容中,部分字符串的排序分?jǐn)?shù)的計算參考下面的公式
SCORE(n)=tf(n)*(1+Log2(N/df(n)))..............(1)其中SCORE(n)為部分字符串n的排序分?jǐn)?shù),tf(n)為部分字符串n在相關(guān)的文獻(xiàn)中出現(xiàn)的次數(shù)。此外,N指示的是已記錄的文獻(xiàn)的數(shù)目(在這個例子中為2),df(n)指示的是包含有部分字符串n的記錄文獻(xiàn)的數(shù)目。在下面的內(nèi)容中,df(n)指示的是文獻(xiàn)出現(xiàn)的次數(shù)。在這個實施例中,文獻(xiàn)的排序分?jǐn)?shù)為文獻(xiàn)中所包含的部分字符串的排序分?jǐn)?shù)的總和。對于圖2A中的文獻(xiàn)來說,部分字符串“AB”的排序分?jǐn)?shù)SCORE(AB)是通過在等式(1)中利用2代替tf(AB)且用2代替df(AB)來得到的。在這種情況下,SCORE(AB)為2。根據(jù)同樣的理由可得SCORE(BC)=4,SCORE(CD)=4,SCORE(DE)=1,SCORE(EF)=3。
因此,可得到查詢字符串“ABCDEF”的排序分?jǐn)?shù)SCORE(ABCDEF)為SCORE(ABCDEF)=SCORE(AB)+SCORE(BC)+SCORE(CD)+SCORE(DE)+SCORE(EF)=14這就是圖2A中的文獻(xiàn)中的查詢字符串“ABCDEF”的排序分?jǐn)?shù)。
圖3所示為執(zhí)行文獻(xiàn)檢索的裝置1的系統(tǒng)構(gòu)造方框圖。
文獻(xiàn)檢索裝置1包括一個CPU 11、一個ROM 12、一個RAM 13、一條總線14、一個硬驅(qū)動器15、一個CD-ROM驅(qū)動器16、一個輸出裝置17、一個輸入裝置18和一個連接控制裝置20。CPU 11用來進(jìn)行不同的操作和對不同的元件進(jìn)行中心控制。ROM 12是一只存儲BIOS程序及類似程序的只讀存儲器。RAM 13用來存儲數(shù)據(jù)并為CPU 11提供一個工作區(qū)域??偩€14在CPU11、ROM 12和RAM13之間進(jìn)行連接??偩€14也通過中間線和/或控制線(未顯示)而連接到硬驅(qū)動器15、CD-ROM驅(qū)動器16、輸出裝置17如CRT顯示器、LCD顯示器或一個打印機、輸入裝置18如鍵盤和鼠標(biāo)及與網(wǎng)絡(luò)21相連的連接控制裝置20上。
使文獻(xiàn)檢索裝置1執(zhí)行根據(jù)本發(fā)明的工作過程的程序記錄在作為本發(fā)明的存儲媒介的CD-ROM 19中。CD-ROM 19插入到CD-ROM驅(qū)動器16中,上述程序就存儲到硬驅(qū)動器15中。程序存儲到硬驅(qū)動器15中后,文獻(xiàn)檢索裝置1就準(zhǔn)備執(zhí)行根據(jù)本發(fā)明的不同的工作過程。換句話說,圖1中所示的不同的單元體現(xiàn)為由CPU 11執(zhí)行程序的執(zhí)行過程。目錄單元3為建立在硬驅(qū)動器15中的數(shù)據(jù)庫。
本發(fā)明的存儲媒介并不僅限于CD-ROM,可為任何類型的存儲媒介,如CD-RW、CD-R、DVD、FD或MO。程序可從網(wǎng)絡(luò)19中下載。如可通過連接控制裝置而從網(wǎng)絡(luò)中下載,并可安裝到硬驅(qū)動器15中。在這種情況下,用來儲存在網(wǎng)絡(luò)19的傳輸側(cè)的程序的存儲裝置就作為本發(fā)明的存儲媒介。所述程序在預(yù)先確定的操作系統(tǒng)上運行。
圖4所示為計算多篇文獻(xiàn)的排序分?jǐn)?shù)的流程圖,該過程是由根據(jù)本發(fā)明的第一個實施例的文獻(xiàn)檢索裝置1來執(zhí)行的。圖4中的流程圖利用了C語言的符號。
在步驟S1中,陣列目錄m和文獻(xiàn)識別符DocId均設(shè)為1。
在步驟S2中,對包含所有部分字符串及具有的最小文獻(xiàn)ID不小于DocId的文獻(xiàn)進(jìn)行檢索。如果發(fā)現(xiàn)了這樣一篇文獻(xiàn),文獻(xiàn)識別符DocId就設(shè)置為已得到的文獻(xiàn)ID,然后該過程就進(jìn)入步驟S3。否則,就結(jié)束該過程。
在步驟S3中,計算具有文獻(xiàn)識別符的文獻(xiàn)的排序分?jǐn)?shù)。所得到的分?jǐn)?shù)存入到具有文獻(xiàn)識別符的C語言結(jié)構(gòu)中,并且將所得到的分?jǐn)?shù)作為其組成部分。
在步驟S4中,陣列目錄m和文獻(xiàn)識別符均增加1。然后,該過程就轉(zhuǎn)回到步驟S2。
圖5所示為在圖4中的步驟S3中執(zhí)行計算排序分?jǐn)?shù)的流程圖。
在步驟S11中,將用來指示一個部分字符串的參數(shù)n設(shè)置為1,而將分?jǐn)?shù)設(shè)置為0。
在步驟S12,利用字符串STR[n]而計算等式(1),并將得到結(jié)果添加到分?jǐn)?shù)中。
在步驟S13,對n是否等于一個整數(shù)進(jìn)行檢測。此處所述的整數(shù)為查詢字符串中的所有部分字符串的數(shù)量。如果n等于上述的整數(shù),該過程就結(jié)束。否則,該過程就進(jìn)入步驟S14。
在步驟S14,將n增加1。然后,該過程就轉(zhuǎn)回至步驟S12。
在下面的內(nèi)容中,將描述本發(fā)明的第二個實施例。
在第二個實施例中,與第一個實施例中相同的單元利用同樣的參考數(shù)字來指示,這樣就省略了對它們的描述。
第二個實施例的文獻(xiàn)檢索裝置1與第一個實施例中的不同點僅在于分?jǐn)?shù)計算單元5的運行不同。在第一個實施例中,分?jǐn)?shù)計算單元5根據(jù)部分字符串在文獻(xiàn)中出現(xiàn)的次數(shù)而相對于所選擇的文獻(xiàn)來計算部分字符串的排序分?jǐn)?shù)。在文獻(xiàn)的內(nèi)容中出現(xiàn)的部分字符串可能與查詢字符串沒有語義上的關(guān)聯(lián),這種不相關(guān)的部分字符串的出現(xiàn)就會影響所得到的排序分?jǐn)?shù),從而降低了檢索的準(zhǔn)確性。
在圖2A所示的例子中,在第20個字符處和第60個字符處出現(xiàn)的部分字符串“EF”就可能與查詢字符串無關(guān)。這是因為字符串“EF”在文獻(xiàn)中出現(xiàn)了3次,但是,分?jǐn)?shù)SCORE(EF)僅計算為3。從與查詢字符串“ABCDEF”相關(guān)的角度來說,這個分?jǐn)?shù)就可能太高了。
在第二個實施例中,文獻(xiàn)檢索裝置1從相應(yīng)的部分字符串在文獻(xiàn)中多次出現(xiàn)的次數(shù)中選擇一個最小的出現(xiàn)次數(shù),并利用所選擇的最小的出現(xiàn)次數(shù)來代替計算排序分?jǐn)?shù)過程中的部分字符串的出現(xiàn)次數(shù)。在圖2A所示的例子中,最小的出現(xiàn)次數(shù)為1,這就是部分字符串“DE”的出現(xiàn)次數(shù),這樣,為了計算排序分?jǐn)?shù)的目的,就利用最小的出現(xiàn)次數(shù)1來代替其他的部分字符串“AB”、“BC”、“CD”和“EF”。因此,就得到SCORE(AB)=1、SCORE(BC)=2、SCORE(CD)=2、SCORE(DE)=1、SCORE(EF)=1,這樣得到查詢字符串“ABCDEF”的排序分?jǐn)?shù)SCORE(ABCDEF)為7。
圖6所示為根據(jù)本發(fā)明的第二個實施例來計算排序分?jǐn)?shù)的流程圖。除了計算排序分?jǐn)?shù)的步驟之外,該流程圖中的其他步驟與圖4所示的第一個實施例的步驟相同。
在圖6中的步驟S11中,用來指示部分字符串的參數(shù)n設(shè)置為1,用來表示所得到的出現(xiàn)的最小的次數(shù)的參數(shù)mintf設(shè)置為無窮大。
在步驟S12中,參數(shù)mintf設(shè)置為mintf和字符串str[n]的發(fā)生次數(shù)二者中的最小值。
在步驟S13中,對n是否等于一個整數(shù)進(jìn)行檢測。如前面所述,所述的整數(shù)為查詢字符串中的所有部分字符串的數(shù)目。如果n不等于所述的整數(shù),該過程就進(jìn)入步驟S14,在步驟14處,將n增加1,然后將該過程轉(zhuǎn)回步驟S12。如果n等于所述的整數(shù),這就意味著mintf等于最小的出現(xiàn)次數(shù),這樣,該過程就繼續(xù)進(jìn)入下一個步驟。
在步驟S15處,將n設(shè)定為1,將分?jǐn)?shù)設(shè)定為0。
在步驟S16處,將等式(1)中的tf(n)利用mintf來代替,利用字符串str[n]來計算等式(1),并將得到的結(jié)果添加到分?jǐn)?shù)中。
在步驟S17中,檢測n是否等于一個整數(shù)。如果n等于所述的整數(shù),則該過程結(jié)束。否則,該過程進(jìn)入下一步S18。
在步驟S18中,將n增加1,然后將該過程轉(zhuǎn)回到步驟S16。
根據(jù)本發(fā)明的第二個實施例,在文本的內(nèi)容與查詢字符串無關(guān)的情況發(fā)生時,消除了來自于查詢字符串的排序分?jǐn)?shù)的不相關(guān)的部分字符串的出現(xiàn)的影響。這樣就提高了檢索的準(zhǔn)確性。
在下面的內(nèi)容中,將對本發(fā)明的第三個實施例進(jìn)行描述。
在第三個實施例中,與第二個實施例中相同的單元利用同樣的參考數(shù)字來指示,這樣就省略了對它們的描述。
第三個實施例的文獻(xiàn)檢索裝置1與第二個實施例中的不同點在于在消除不相關(guān)的部分字符串出現(xiàn)的影響方面,第三個實施例使用了與第二個實施例不同的方案。
為了消除不相關(guān)的部分字符串的出現(xiàn)的影響,對于所選擇的文獻(xiàn)得到查詢字符串出現(xiàn)的次數(shù),然后,為了得到排序分?jǐn)?shù)的目的,利用查詢字符串出現(xiàn)的次數(shù)代替部分字符串出現(xiàn)的次數(shù)。查詢字符串出現(xiàn)的次數(shù)通過檢測查詢字符串在所選擇的文獻(xiàn)中出現(xiàn)的所有位置而得到。
為得到查詢字符串出現(xiàn)的位置,可利用傳統(tǒng)的方法,即與部分字符串的位置相對照的方法。例如,可利用在CHuichi kikuchi的“用于日本文本數(shù)據(jù)庫的一種快速的全文檢索方法”中所披露的一種技術(shù),該文章在1992年的電子、信息和通信工程師的會刊的卷號為Vol.j75-D-I、第9篇第836-846頁。
對于圖2A所給的文獻(xiàn)的例子,從圖2C的目錄可斷定查詢字符串“ABCDEF”從始端開始只出現(xiàn)在了第31個字符的位置處出現(xiàn)了一次。根據(jù)這個發(fā)現(xiàn),將部分字符串“AB”、“BC”、“CD”、“DE”和“EF”的出現(xiàn)次數(shù)設(shè)為1,這也是查詢字符串出現(xiàn)的次數(shù)。該過程所得到的排序分?jǐn)?shù)與第二個實施例中相同。也就是說,得到的排序分?jǐn)?shù)SCORE(ABCDEF)為7。
圖7所示為根據(jù)本發(fā)明的第三個實施例計算排序分?jǐn)?shù)的流程圖。除了計算排序分?jǐn)?shù)的步驟外,該過程中的其他步驟與圖4中所示的第一個實施例中的步驟相同。
在圖7所示的步驟S11中得到查詢字符串出現(xiàn)的次數(shù)。將得到的出現(xiàn)的次數(shù)設(shè)定為wordtf。
在步驟S12,將用來指示部分字符串的參數(shù)n設(shè)置為1,將分?jǐn)?shù)設(shè)置為0。
在步驟S13,利用字符串str[n]且將wordtf代替tf(n)來計算等式(1),并將計算出的結(jié)果添加到分?jǐn)?shù)上。
在步驟S14中,對n是否等于一個整數(shù)進(jìn)行檢測。如果n等于上述的整數(shù),則該過程就結(jié)束。否則,該過程轉(zhuǎn)向步驟S15。
在步驟S15中,將n增加1。然后,將該過程轉(zhuǎn)向步驟S13。
根據(jù)本發(fā)明的第三個實施例,在文本的內(nèi)容與查詢字符串無關(guān)的情況發(fā)生時,消除了來自于查詢字符串的排序分?jǐn)?shù)的不相關(guān)的部分字符串的出現(xiàn)的影響。這樣就提高了檢索的準(zhǔn)確性。
在下面的內(nèi)容中,將對本發(fā)明的第四個實施例進(jìn)行描述。
在第四個實施例中,與第三個實施例中相同的單元利用同樣的參考數(shù)字來指示,這樣就省略了對它們的描述。
第四個實施例中的文獻(xiàn)檢索裝置1與第三個實施例中的文獻(xiàn)檢索裝置的不同在以下的方面。在第三個實施例中,分?jǐn)?shù)計算單元5通過檢測查詢字符串在文獻(xiàn)中出現(xiàn)的位置而得到查詢字符串在所選擇的文獻(xiàn)中出現(xiàn)的次數(shù)。
但是,當(dāng)查詢字符串較長且多次出現(xiàn)時,得到所有出現(xiàn)位置的計算負(fù)荷非常大,這樣檢索一篇文獻(xiàn)就要用去較長的一段檢索時間。
在本發(fā)明的第四個實施例中,為查詢字符串的出現(xiàn)次數(shù)設(shè)置了一個上限。如果查詢字符串在一篇文獻(xiàn)中的出現(xiàn)次數(shù)低于所述上限,所述的次數(shù)就作為查詢字符串出現(xiàn)的次數(shù)。如果查詢字符串在一篇文獻(xiàn)中的出現(xiàn)次數(shù)高于所述的上限,就將所述的上限替代出現(xiàn)的次數(shù)。在這種情況下,就不需要利用各種方法來檢測查詢字符串出現(xiàn)的所有位置,當(dāng)次數(shù)到達(dá)上限時如果停止計數(shù),也可滿足要求。
圖8所示為根據(jù)本發(fā)明的第四個實施例得到具有上限的查詢字符串出現(xiàn)的次數(shù)的流程圖。
在第三個實施例中,查詢字符串出現(xiàn)的次數(shù)是僅通過圖7中所示的在步驟S11中查詢字符串出現(xiàn)的所有次數(shù)來計算的。在第四個實施例中,查詢字符串出現(xiàn)的次數(shù)是通過下面的過程得到的。
在步驟S21中,將wordtf設(shè)置為0。
在步驟S22中,尋找查詢字符串的一次新的出現(xiàn)。如果找到了查詢字符串的一次新的出現(xiàn),則該過程進(jìn)入步驟S23。否則,該過程結(jié)束。
在步驟S23中,將出現(xiàn)的次數(shù)wordtf增加1。
在步驟S24中,對wordtf是否等于L進(jìn)行檢測,此處,L確定了出現(xiàn)次數(shù)的上限。如果二者相等,則該過程結(jié)束。否則,該過程轉(zhuǎn)回到步驟S22。
根據(jù)本發(fā)明的第四個實施例,與第三個實施例中的情況相比,該實施例中減小了檢測查詢字符串所有出現(xiàn)位置的計算負(fù)荷,這樣就能進(jìn)行較快的文獻(xiàn)檢索。
在下面的內(nèi)容中,將對本發(fā)明的第五個實施例進(jìn)行描述。
在第五個實施例中,與第三個實施例中相同的單元利用同樣的參考數(shù)字來指示,這樣就省略了對它們的描述。
第五個實施例中的文獻(xiàn)檢索裝置1與第三個實施例中的不同點在以下幾個方面。在第三個實施例中,分?jǐn)?shù)計算單元5得到查詢字符串在所選擇的一篇文獻(xiàn)中的出現(xiàn)的次數(shù),并利用所得到的出現(xiàn)的次數(shù)來代替部分字符串出現(xiàn)的次數(shù)而得到排序分?jǐn)?shù)。在這種方式中,當(dāng)部分字符串出現(xiàn)在查詢字符串的內(nèi)容之外時,可消除來自于查詢字符串的排序分?jǐn)?shù)的不相關(guān)部分字符串的出現(xiàn)的影響。
在第三個實施例中,查詢字符串的排序分?jǐn)?shù)是從部分字符串的排序分?jǐn)?shù)中派生出的,部分字符串的排序分?jǐn)?shù)按順序是以包含有部分字符串的已記錄的文獻(xiàn)的數(shù)目為基礎(chǔ)產(chǎn)生的。因此,不相關(guān)文獻(xiàn)的出現(xiàn)可影響排序分?jǐn)?shù),其中的不相關(guān)的文獻(xiàn)包括有特殊的部分字符串而不包括查詢字符串。換句話說,在第三個實施例中不能完全消除不相關(guān)的部分字符串出現(xiàn)的影響。
在圖2A所示的文獻(xiàn)的例子中,SCORE(AB)等于1,這是因為包括有字符串“AB”的文獻(xiàn)的數(shù)目為兩篇,其中字符串“AB”在圖2A所示的文獻(xiàn)中出現(xiàn)的次數(shù)設(shè)置為查詢字符串出現(xiàn)的次數(shù)。但是,圖2B中的文獻(xiàn)是不相關(guān)的,這是因為這篇文獻(xiàn)沒有包括查詢字符串“ABCDEF”。因此,在這種情況下,不相關(guān)文獻(xiàn)的出現(xiàn),即另一種類型的不相關(guān)字符串的出現(xiàn)就會影響查詢字符串的排序分?jǐn)?shù)。
考慮到這種情況,為了達(dá)到計算給定部分字符串的排序分?jǐn)?shù)的目的,本發(fā)明的第五個實施例利用具有查詢字符串的文獻(xiàn)的數(shù)目來作為包含有給定部分字符串的文獻(xiàn)的數(shù)目。在圖2A和圖2B所示的文獻(xiàn)的例子中,包含有字符串“AB”的已記錄文獻(xiàn)的數(shù)目設(shè)置為1,這就是包含有查詢字符串“ABCDEF”的文獻(xiàn)的數(shù)目。因此,SCORE(AB)變?yōu)?。以同樣的理由可得到“SCORE(BC)=2、SCORE(CD)=2、SCORE(DE)=2、SCORE(EF)=2。這樣得到SCORE(ABCDEF)=10。
圖9所示為根據(jù)本發(fā)明的第五個實施例而得到多篇文獻(xiàn)的排序分?jǐn)?shù)的流程圖。
在圖9中的步驟S101中得到包括有查詢字符串的文獻(xiàn)的數(shù)量。將所得到的文獻(xiàn)的數(shù)量設(shè)置為一個常數(shù)為worddf。
在步驟S102中,將陣列目錄m和文獻(xiàn)標(biāo)識符DocId均設(shè)置為1。
在步驟S103中,對包括有查詢字符串及最小的文獻(xiàn)ID不小于DocId的文獻(xiàn)進(jìn)行檢索。如果能找到這樣一篇文獻(xiàn),則將文獻(xiàn)標(biāo)識符DocId設(shè)置為所得到的文獻(xiàn)ID,并將該過程進(jìn)入到步驟S104。否則,結(jié)束該過程。
在步驟S104中,計算具有文獻(xiàn)標(biāo)識符DocId的文獻(xiàn)的排序分?jǐn)?shù)。此處,利用等式(1)來計算排序分?jǐn)?shù),并在步驟S104處用worddf代替df(str[n])。將所得到的分?jǐn)?shù)存儲到具有文獻(xiàn)標(biāo)識符的C語言結(jié)構(gòu)中,并將該分?jǐn)?shù)作為其組成部分。
在步驟S105中,將陣列m和文獻(xiàn)標(biāo)識符DocId均增加1。然后,將該過程就轉(zhuǎn)回到步驟S103。
根據(jù)本發(fā)明的第五個實施例,當(dāng)部分字符串在所選擇的文獻(xiàn)的內(nèi)容之外出現(xiàn)時或在其他已記錄的文獻(xiàn)的內(nèi)容之外出現(xiàn)時,相對于一篇所選擇的文獻(xiàn)來說,基本消除了來自于查詢字符串的排序分?jǐn)?shù)的不相關(guān)的部分字符串的出現(xiàn)的影響。這樣就提高了檢索的準(zhǔn)確性。
在這個實施例中,每個部分字符串的排序分?jǐn)?shù)均等于通過利用具有查詢字符串的文獻(xiàn)的數(shù)目和查詢字符串出現(xiàn)的次數(shù)而得到的排序分?jǐn)?shù)。因為這個原因,就不需要計算部分字符串的所有排序分?jǐn)?shù)及為了得到查詢字符串的目的而將它們組合在一起。另一種替代方方式為,查詢字符串的排序分?jǐn)?shù)直接從具有查詢字符串的文獻(xiàn)的數(shù)目和查詢字符串出現(xiàn)的次數(shù)中得出。這樣就可減少計算負(fù)荷,從而可達(dá)到高速度的可能相關(guān)的文獻(xiàn)檢索。
在下面的內(nèi)容中,將對本發(fā)明的第六個實施例進(jìn)行描述。
在第六個實施例中,與第四個實施例中相同的單元利用同樣的參考數(shù)字來指示,這樣就省略了對它們的描述。
第六個實施例中的文獻(xiàn)檢索裝置1與第四個實施例中的不同點在以下幾個方面。在第四個實施例中,為了達(dá)到提高文獻(xiàn)檢索速度的目的而為查詢字符串出現(xiàn)的次數(shù)設(shè)置了一個上限。
但是,設(shè)置一個上限會降低檢索的準(zhǔn)確性,因為這是設(shè)置這樣一個上限將會產(chǎn)生一個與沒有上限的情況下不同的排序分?jǐn)?shù)。由于設(shè)置一個上限而使排序分?jǐn)?shù)變化的程度將依據(jù)包含有查詢字符串的文獻(xiàn)的數(shù)目而定。當(dāng)利用等式(1)來計算排序分?jǐn)?shù)時,包含有查詢字符串的文獻(xiàn)的數(shù)目越小,則由設(shè)置一個上限而引起的排序分?jǐn)?shù)的差別就越大??紤]到這一點,為達(dá)到減小設(shè)置一個上限的影響的目的,所述上限最好根據(jù)具有查詢字符串的文獻(xiàn)的數(shù)目而進(jìn)行動態(tài)變化。例如,在具有查詢字符串的文獻(xiàn)的數(shù)目為X(X1)的情況下,所用上限Lx按下式計算Lx=L1(1+log2(N/x))/(1+log2N)..........................(2)此處,L1為具有查詢字符串的文獻(xiàn)的數(shù)目為1的情況下所用的上限。根據(jù)等式(2),其中所用的具有查詢字符串的文獻(xiàn)的數(shù)目越小,則所述的上限越大。也就是說,其中的具有查詢字符串的文獻(xiàn)的數(shù)目越小,則由設(shè)置上限所引起的排序分?jǐn)?shù)的差別越小。換句話說,由于修正了引入的上限,則減小了檢索的準(zhǔn)確性。應(yīng)注意到等式(2)只是一個例子,只要隨著具有查詢字符串的文獻(xiàn)的數(shù)目的增加而使上限增加,則可使用任何形式的公式。
圖10所示為根據(jù)本發(fā)明的第六個實施例而計算多篇文獻(xiàn)的排序分?jǐn)?shù)的流程圖。
在圖10中的步驟S111中可得到包含有查詢字符串的文獻(xiàn)的數(shù)目。將所得到的文獻(xiàn)數(shù)設(shè)置為一個參數(shù)worddf。
在步驟S112中,在等式(2)中通過用worddf代替X而得到上限Lx。
在步驟S113中,將陣列目錄m和文獻(xiàn)標(biāo)識符DocId均設(shè)置為1。
在步驟S114中,對包含有查詢字符串和具有的最小的文獻(xiàn)ID不小于DocId的文獻(xiàn)進(jìn)行檢索。如果能找到這樣一篇文獻(xiàn),就將文獻(xiàn)標(biāo)識符DocId設(shè)置為所得到的文獻(xiàn)ID,且該過程進(jìn)入步驟S115。否則,該過程結(jié)束。
在步驟S115,計算具有文獻(xiàn)標(biāo)識符DocId的文獻(xiàn)的排序分?jǐn)?shù)。此處,在步驟S115處執(zhí)行圖7中的步驟S11至S15,步驟S13中的等式中的df(str[n])利用worddf來取代,等式中具有的wordtf利用上限Lx來限制。
在步驟S116,將陣列目錄m和文獻(xiàn)標(biāo)識符DocId均增加1。然后將該過程轉(zhuǎn)回至步驟S103。
在下面的內(nèi)容中,將對本發(fā)明的第七個實施例進(jìn)行描述。
在第七個實施例中,與第一個實施例中相同的單元利用同樣的參考數(shù)字來指示,這樣就省略了對它們的描述。
第七個實施例中的文獻(xiàn)檢索裝置1與第一個實施例中的不同點在于以下幾個方面。在第一個實施例中,當(dāng)查詢字符串的長度小于作為一個程序單位的部分字符串的長度(如字符的數(shù)量)時,文本分解單元2就不能將查詢字符串分解為部分字符串,這樣就會產(chǎn)生檢索失敗的情況。例如,當(dāng)一個查詢字符串為“A”而一個程序單位包括兩個字符時,因為查詢字符串比程序單位短,則不能進(jìn)行檢索。
當(dāng)查詢字符串的長度短于一個程序單位時,在本發(fā)明的第七個實施例中將用到下面的過程。
(1)文本分解單元2將所有的部分字符串從目錄單元3中取出,這樣,這些部分字符串以同樣的字符開始,查詢字符串也是這樣進(jìn)行。
(2)文獻(xiàn)選擇單元4區(qū)分出包含有通過文本分解單元2取出的至少一個部分字符串的一篇或多篇文獻(xiàn)。
(3)分?jǐn)?shù)計算單元5通過利用由文本分解單元2取出的部分字符串而計算出由文獻(xiàn)選擇單元4選擇出的文獻(xiàn)的排序分?jǐn)?shù)。
圖11A至圖11C顯示了文獻(xiàn)的例子和相應(yīng)的目錄單元的一個例子。參考圖11A至11C,下面將對上面的過程進(jìn)行更加詳細(xì)的描述。
在一個程序單位由兩個字符構(gòu)成時,目錄單元3具有的內(nèi)容如圖11C所示,圖11C所示的內(nèi)容與圖11A中的文獻(xiàn)和圖11B中的文獻(xiàn)有關(guān)。此處,如圖11C所示的目錄單元3中的數(shù)據(jù)格式與圖2C中所示的目錄單元3中的數(shù)據(jù)格式相同。在下面的內(nèi)容中,參考以“Y”作為給定的查詢字符串的例子而對該檢索過程進(jìn)行描述。
文本分解單元2取出3個部分字符串“YI”、“YK”和“YB”作為在起始端與查詢字符串具有同樣字符的部分字符串。文獻(xiàn)選擇單元4選擇圖11A和圖11B中的文獻(xiàn),因為這些文獻(xiàn)包括至少一個所取出的部分字符串。然后,分?jǐn)?shù)計算單元5通過利用由文本分解單元2取出的部分字符串來計算所選擇文獻(xiàn)的排序分?jǐn)?shù)。
在計算排序分?jǐn)?shù)時,分?jǐn)?shù)計算單元5得到相對于所選擇文獻(xiàn)的查詢字符串的排序分?jǐn)?shù),所述查詢字符串的排序分?jǐn)?shù)來自于在所選擇的文獻(xiàn)之內(nèi)的部分字符串的排序分?jǐn)?shù)。例如,通過計算部分字符串的排序分?jǐn)?shù)的總和就可達(dá)到上述目的。在依據(jù)等式(1)計算部分字符串的排序分?jǐn)?shù)時,可得到SCORE(YI)=0、SCORE(YK)=2、SCORE(YB)=2,這樣可得到SCORE(Y)=4。
圖12所示為根據(jù)本發(fā)明的第七個實施例計算多篇文獻(xiàn)的排序分?jǐn)?shù)的流程圖。
在步驟S121,將陣列目錄m和文獻(xiàn)檢索標(biāo)識符DocId均設(shè)置為1。
在步驟S122,對包括有至少一個部分字符串具有的最小的文獻(xiàn)ID不小于DocId的文獻(xiàn)進(jìn)行檢索。此處,部分字符串被定義為以與查詢字符串相同的字符開始的字符串。如果檢索到這樣的一篇文獻(xiàn),就將文獻(xiàn)標(biāo)識符設(shè)定為所得到的文獻(xiàn)ID,該過程將進(jìn)入到步驟S123。否則,該過程就結(jié)束。
在步驟S123中,計算具有文獻(xiàn)標(biāo)識符DocId的文獻(xiàn)的排序分?jǐn)?shù)。將所得到的分?jǐn)?shù)儲存到具有文獻(xiàn)標(biāo)識符的C語言結(jié)構(gòu)中,并將分?jǐn)?shù)作為其組成部分。
在步驟S124中將陣列目錄m和文獻(xiàn)標(biāo)識符DocId均增加1。然后,將該過程轉(zhuǎn)回到步驟S122。
通過依據(jù)上述的過程,即使查詢字符串的長度小于一個程序單位,但仍能檢索一篇文獻(xiàn)。
在排序分?jǐn)?shù)的計算過程中,反映具有查詢字符串的文獻(xiàn)的數(shù)目的文獻(xiàn)數(shù)可以以與本發(fā)明的第三個實施例中的方式相同的方式進(jìn)行應(yīng)用。在圖11A和圖11B所示的例子中,有兩篇文獻(xiàn)包含有字符串“Y”。因此,對于圖11A中的文獻(xiàn)來說,可得到SCORE(YI)=0、SCORE(YK)=1、SCORE(YB)=1,因此可得到SCORE(Y)=2。這種計算過程可提高檢索的準(zhǔn)確性,這是因為為達(dá)到計算排序分?jǐn)?shù)的目的,該計算過程利用了具有查詢字符串的數(shù)目。
此外,為了計算排序分?jǐn)?shù)的目的,分?jǐn)?shù)計算單元5可利用查詢字符串在文獻(xiàn)中出現(xiàn)的次數(shù)。在圖11A中所示的文獻(xiàn)中,查詢字符串“Y”出現(xiàn)了兩次,而以在圖11C中顯示的“YI”、“YK”和“YB”的出現(xiàn)次數(shù)來計算。因為包含有“Y”的文獻(xiàn)數(shù)為2,所以SCORE(Y)計算為2。在這個過程中,利用等式(1)計算的出現(xiàn)的次數(shù)的數(shù)目小于在前面的過程中出現(xiàn)的次數(shù)的數(shù)目,這樣就可進(jìn)行快速的文獻(xiàn)檢索。
在下面的內(nèi)容中將對本發(fā)明的第八個實施例進(jìn)行描述。
圖13所示為根據(jù)本發(fā)明的第八個實施例的文獻(xiàn)檢索裝置1A的方框圖。
文本分解單元2將文本分解為部分字符串,其中的文本可為一篇已記錄的文獻(xiàn)或為一個查詢字符串。目錄單元3用來儲存通過分解一篇已記錄的文獻(xiàn)而得到的部分字符串的有關(guān)信息。部分字符串選擇單元6用來選擇為文獻(xiàn)檢索的目的而應(yīng)用的部分字符串,上述的被選擇的字符串是從經(jīng)分解查詢字符串而得到的部分字符串中選擇出來的。文獻(xiàn)選擇單元4利用通過部分字符串選擇單元6選擇出的部分字符串而選擇一篇文獻(xiàn)來計算其排序分?jǐn)?shù)。分?jǐn)?shù)計算單元5利用通過部分字符串選擇單元6選擇的部分字符串來計算經(jīng)文獻(xiàn)選擇單元4選擇的文獻(xiàn)的排序分?jǐn)?shù)。文本分解單元2執(zhí)行分解步驟,文獻(xiàn)選擇單元4執(zhí)行文獻(xiàn)選擇步驟。此外,分?jǐn)?shù)計算單元5執(zhí)行分?jǐn)?shù)計算步驟,而部分字符串選擇單元6執(zhí)行部分字符串選擇步驟。
文獻(xiàn)的記錄與第一個實施例中相同。
當(dāng)為文獻(xiàn)檢索的目的而提供一個查詢字符串時,文本分解單元2就將該查詢字符串分解為部分字符串。部分字符串選擇單元6從經(jīng)分解字符串而得到的所有部分字符串中選擇部分字符,這樣,被選擇的字符串就被用于文獻(xiàn)檢索。文獻(xiàn)選擇單元4就選擇一篇或多篇文獻(xiàn)來計算其排序分?jǐn)?shù),這種選擇是根據(jù)所選擇的字符串來進(jìn)行的。分?jǐn)?shù)計算單元5通過利用所選擇的部分字符串來計算所選擇文獻(xiàn)的每篇文獻(xiàn)的排序分?jǐn)?shù),這樣就提供了進(jìn)行文獻(xiàn)檢索的結(jié)果。
文本分解單元2、文獻(xiàn)選擇單元4和分?jǐn)?shù)計算單元5的作用與在第一個實施例中的作用相同。部分字符串選擇單元6應(yīng)能盡可能少地選擇部分字符串,但選擇的部分字符串應(yīng)能足夠覆蓋查詢字符串的整個長度,上述部分字符串是從經(jīng)文本分解單元2分解查詢字符串而得到的所有部分字符串中選擇出的。為了使選擇的字符串正好覆蓋查詢字符串的整個長度,部分字符串選擇單元6從查詢字符串的始端一個接一個地選擇部分字符串,這樣所選擇的部分字符串就不會相互重疊。如果所選擇的部分字符串不相互重疊而不能覆蓋查詢字符串的整個長度,則添加選擇與查詢字符串的末端部分相應(yīng)的一個部分字符串。
例如,在提供一個查詢字符串“ABCDEF”時,文本分解單元2從中取出5個部分字符串“AB”、“BC”、“CD”、“DE”和“EF”。在這種情況下部分字符串選擇單元6選擇5個中的3個字符串“AB”、“CD”和“EF”而摒棄另外的兩個字符串“BC”和“DE”。另一方面,當(dāng)提供的查詢字符串為“BCDEF”時,則首先選擇兩個部分字符串“BC”和“DE”。在不重疊的情況下不會選擇更多的字符串,但是所選擇的兩個部分字符串不能覆蓋查詢字符串的整個長度(如不能覆蓋查詢字符串的最后的字符)。在這種情況下,就添加選擇另一個部分字符串“EF”。這樣,就從查詢字符串“BCDEF”中選擇出三個部分字符串“BC”、“DE”和“EF”。
所選擇的部分字符串總是少于所有的部分字符串。當(dāng)一個查詢字符串包含有m個字符時,所選擇的部分字符串的數(shù)量等于不小于m/n的最小的整數(shù)。也就是說,如果n為2而m為3,則不小于3/2的最小整數(shù)為2。如果n為2而m為4,則不小于4/2的最小整數(shù)為2。如果n為2而m為5,則不小于5/2的最小整數(shù)為3。所選擇的部分字符串的數(shù)目小于(m-n+1),(m-n+1)即為待審查的日本專利No.11-85776中所用的部分字符串的數(shù)目。在這種方式中,本發(fā)明的第八個實施例可減少選擇文獻(xiàn)和計算排序分?jǐn)?shù)的計算負(fù)荷,這樣就可進(jìn)行快速檢索文獻(xiàn)。
圖14所示為選擇不重疊且能覆蓋一個查詢字符串的整個長度的部分字符串的流程圖。
在步驟S201中,將參數(shù)s設(shè)置為1。參數(shù)s用來指示一個部分字符串的起始位置。
在步驟S202中計算s加上sublen,并將所得到的和放入?yún)?shù)e中。此處,sublen為部分字符串的長度,即一個程序單位的長度。參數(shù)e用來指示與在位置s處開始的部分字符串的末端位置相鄰的下一個位置。
在步驟S203中,對e是否大于(len+1)進(jìn)行檢測,其中的len為查詢字符串的長度。如果上式不能成立,則該程序進(jìn)入下一個步驟S204。
在步驟S204中,選擇具有起始位置s的一個部分字符串來作為用于檢索目的的部分字符串之一。
在步驟S205中,對e是否等于(len+1)進(jìn)行檢測,如果上式能夠成立,則該程序結(jié)束。
在步驟S206中將起始位置s設(shè)為e。然后,將該程序轉(zhuǎn)回至步驟S202。
如果在步驟S203的檢測中發(fā)現(xiàn)e大于(len+1),則該程序進(jìn)入步驟S207。
在步驟S207中選擇具有起始位置(len-sublen+1)的一個部分字符串來作為用于檢索目的的部分字符串之一。然后,該程序結(jié)束。
應(yīng)注意到,本發(fā)明的第八個實施例可按著與第一個實施例相同的方式進(jìn)行變更而提供前面所描述的第二至第七個實施例。
還應(yīng)注意到,雖然所描述的第一至第八個實施例利用了本發(fā)明的特征的特殊的組合,但也可制造其他不同的組合而為相應(yīng)的實施例提供不同的變化。
此外,本發(fā)明并不僅限于上述的實施例,但對本發(fā)明所作的不同的變化和變更應(yīng)不脫離本發(fā)明的范圍。
本申請是以1999年12月20日在日本專利申請的日本優(yōu)先申請?zhí)枮镹o.11-360369的申請為基礎(chǔ)的,上述申請的全部內(nèi)容在此作為參考使用。
權(quán)利要求
1.一種進(jìn)行文獻(xiàn)檢索的方法,包括如下步驟將一個查詢字符串分解為部分字符串;從已記錄的文獻(xiàn)中選擇一篇或多篇文獻(xiàn),所選擇的一篇或多篇文獻(xiàn)均包含有所有的部分字符串;計算對于一篇或多篇文獻(xiàn)中每篇文獻(xiàn)的部分字符串的相應(yīng)的分?jǐn)?shù);和計算對于一篇或多篇文獻(xiàn)中每篇文獻(xiàn)的各個部分字符串的相應(yīng)分?jǐn)?shù)中查詢的字符串的分?jǐn)?shù)。
2.如權(quán)利要求1所述的方法,其特征在于所述的分解步驟將查詢字符串分解為相互鄰近重疊的部分字符串。
3.如權(quán)利要求1所述的方法,其特征在于所述的分解步驟將查詢字符串分解為部分字符串,所述的部分字符串通常不重疊且能覆蓋查詢字符串的整個長度。
4.如權(quán)利要求1所述的方法,其特征在于所述計算部分字符串的相應(yīng)的分?jǐn)?shù)的步驟包括得到用來指示已記錄文獻(xiàn)的數(shù)量的第一計數(shù),所述的已記錄的文獻(xiàn)包含有給定的部分字符串之一;得到用來指示給定的部分字符串之一在給定的一篇或多篇文獻(xiàn)之一中出現(xiàn)的次數(shù)的第二計數(shù);根據(jù)第一計數(shù)和第二計數(shù),得到對于一篇或多篇文獻(xiàn)的給定那篇文獻(xiàn)的各個部分字符串的給定那個部分字符串的分?jǐn)?shù),所述各個部分字符串中的那個給定的部分字符串的分?jǐn)?shù)隨著第一計數(shù)的減小和第二計數(shù)的增加而增加。
5.根據(jù)權(quán)利要求1所述的方法,其特征在于所述計算部分字符串的相應(yīng)的分?jǐn)?shù)的步驟包括得到用來指示已記錄文獻(xiàn)的數(shù)量的第一計數(shù),所述的已記錄的文獻(xiàn)包含有給定的部分字符串之一;得到用來指示相應(yīng)的部分字符串之一在給定的一篇或多篇文獻(xiàn)之一中出現(xiàn)的次數(shù)的第二計數(shù);得到一個最小的第二計數(shù);根據(jù)第一個計數(shù)和第二個計數(shù)的最小值,得到對于一篇或多篇文獻(xiàn)的給定那篇文獻(xiàn)的各個部分字符串的給定一篇的分?jǐn)?shù),所述各個部分字符串中的給定的那篇的分?jǐn)?shù)隨著第一計數(shù)的減小和第二計數(shù)的最小值的增加而增加。
6.根據(jù)權(quán)利要求1所述的方法,其特征在于所述計算部分字符串的相應(yīng)的分?jǐn)?shù)的步驟如下得到用來指示已記錄文獻(xiàn)的數(shù)量的第一計數(shù),所述的已記錄的文獻(xiàn)包含有給定的部分字符串之一;得到用來指示查詢字符串在給定的一篇或多篇文獻(xiàn)之一中出現(xiàn)的次數(shù)的第二計數(shù);對于來自于第一計數(shù)和第二計數(shù)的一篇或多篇文獻(xiàn)之一來說,得到給定部分字符串之一的一個分?jǐn)?shù),所述給定部分字符串之一的分?jǐn)?shù)隨著第一計數(shù)的減小和第二計數(shù)的增加而增加。
7.根據(jù)權(quán)利要求6所述的方法,其特征在于所述得到第二計數(shù)的步驟還包括一個為第二計數(shù)設(shè)置一個上限的步驟。
8.根據(jù)權(quán)利要求1所述的方法,其特征在于利用選擇一篇或多篇文獻(xiàn)的步驟選擇的一篇或多篇文獻(xiàn)均包括查詢字符串,所述計算部分字符串的相應(yīng)分?jǐn)?shù)的步驟如下得到用來指示已記錄文獻(xiàn)的數(shù)量的第一計數(shù),所述的已記錄的文獻(xiàn)包含有查詢字符串;得到用來指示給定的部分字符串之一在給定的一篇或多篇文獻(xiàn)之一中出現(xiàn)的次數(shù)的第二計數(shù);對于來自于第一計數(shù)和第二計數(shù)的一篇或多篇文獻(xiàn)之一來說,得到給定部分字符串之一的一個分?jǐn)?shù),所述給定部分字符串之一的分?jǐn)?shù)隨著第一計數(shù)的減小和第二計數(shù)的增加而增加。
9.根據(jù)權(quán)利要求1所述的方法,其特征在于利用選擇一篇或多篇文獻(xiàn)的步驟選擇的一篇或多篇文獻(xiàn)均包括查詢字符串,所述計算部分字符串的相應(yīng)分?jǐn)?shù)的步驟如下得到用來指示已記錄文獻(xiàn)的數(shù)量的第一計數(shù),所述的已記錄的文獻(xiàn)包含有查詢字符串;從第一計數(shù)中計算出一個界限;得到用來指示查詢字符串在給定的一篇或多篇文獻(xiàn)之一中出現(xiàn)的次數(shù)的第二計數(shù),同時將第二計數(shù)的上端限定至所述的界限;對于來自于第一計數(shù)和第二計數(shù)的一篇或多篇文獻(xiàn)之一來說,得到給定部分字符串之一的一個分?jǐn)?shù),所述給定部分字符串之一的分?jǐn)?shù)隨著第一計數(shù)的減小和第二計數(shù)的增加而增加。
10.一種進(jìn)行文獻(xiàn)檢索的方法,包括如下步驟為文獻(xiàn)提供相應(yīng)的目錄,在每個相應(yīng)的目錄中列舉出在相應(yīng)的文獻(xiàn)中發(fā)現(xiàn)的部分字符串及所述的部分字符串在相應(yīng)文獻(xiàn)中的相應(yīng)的位置。選擇出部分字符串,所述的部分字符串以與查詢字符串相一致的一個字符串開始;從文獻(xiàn)中選擇一篇或多篇文獻(xiàn),所選擇的一篇或多篇文獻(xiàn)均包含有至少所選擇的部分字符串之一;計算對于一篇或多篇文獻(xiàn)中的每篇文獻(xiàn)的選定的各個部分字符串的相應(yīng)的分?jǐn)?shù);根據(jù)對于一篇或多篇文獻(xiàn)中的每篇文獻(xiàn)選擇的各個字符串的相應(yīng)分?jǐn)?shù),計算一個查詢字符串的分?jǐn)?shù)。
11.根據(jù)權(quán)利要求10所述的方法,其特征在于所述計算所選擇的部分字符串的相應(yīng)的分?jǐn)?shù)的步驟包括以下幾個步驟得到用來指示已記錄文獻(xiàn)的數(shù)量的第一計數(shù),所述的已記錄的文獻(xiàn)包含有給定的所選擇的部分字符串之一;得到用來指示給定的所選擇的部分字符串之一在給定的一篇或多篇文獻(xiàn)之一中出現(xiàn)的次數(shù)的第二計數(shù);對于來自于第一計數(shù)和第二計數(shù)的一篇或多篇文獻(xiàn)之一來說,得到給定部分字符串之一的一個分?jǐn)?shù),所述給定部分字符串之一的分?jǐn)?shù)隨著第一計數(shù)的減小和第二計數(shù)的增加而增加。
12.根據(jù)權(quán)利要求10所述的方法,其特征在于所述計算所選擇的部分字符串的相應(yīng)的分?jǐn)?shù)的步驟包括以下幾個步驟得到用來指示已記錄文獻(xiàn)的數(shù)量的第一計數(shù),所述的已記錄的文獻(xiàn)包含有所選擇的給定的部分字符串之一;得到用來指示查詢字符串在給定的一篇或多篇文獻(xiàn)之一中出現(xiàn)的次數(shù)的第二計數(shù);根據(jù)第一計數(shù)和第二計數(shù)得到對于一篇或多篇文獻(xiàn)的給定的那篇的各個選定的部分字符串的給定的那個部分字符串的分?jǐn)?shù),所述各個選定的部分字符串中的那個給定的部分字符串的分?jǐn)?shù)隨著第一個計數(shù)的減小和第二計數(shù)的增加而增加。
13.一種用于文獻(xiàn)檢索的裝置,該裝置包括一個分解單元,所述分解單元將一個查詢字符串分解為部分字符串;一個文獻(xiàn)選擇單元,所述文獻(xiàn)選擇單元從多篇文獻(xiàn)中選擇一篇或多篇文獻(xiàn),所選擇的一篇或多篇文獻(xiàn)中均包含有所有的部分字符串;一個分?jǐn)?shù)計算單元,所述分?jǐn)?shù)計算單元用來計算一篇或多篇文獻(xiàn)中的每篇文獻(xiàn)中的部分字符串的相應(yīng)的分?jǐn)?shù),此外,該計算單元還用來計算查詢字符串的分?jǐn)?shù),所述查詢字符串的分?jǐn)?shù)來自于一篇或多篇文獻(xiàn)中的每篇文獻(xiàn)中部分字符串的相應(yīng)的分?jǐn)?shù)。
14.根據(jù)權(quán)利要求13所述的裝置,其特征在于所述分解單元將查詢字符串分解為相互鄰近重疊的部分字符串。
15.根據(jù)權(quán)利要求14所述的裝置,該裝置還包括一個用來選擇部分字符串的部分字符串選擇單元,所述所選擇的字符串通常不重疊且覆蓋查詢字符串的整個長度,被選擇的部分字符串然后被用來計算所選擇的部分字符串的相應(yīng)的分?jǐn)?shù)。
16.根據(jù)權(quán)利要求13所述的裝置,其特征在于所述分?jǐn)?shù)計算單元包括用來得到第一計數(shù)的裝置,所述第一計數(shù)用來指示包括有一個給定的字部分符串之一的已記錄文獻(xiàn)的數(shù)目;用來得到第二計數(shù)的裝置,所述第二計數(shù)用來指示給定的部分字符串之一在給定的一篇或多篇文獻(xiàn)之一中出現(xiàn)的次數(shù);用于從第一計數(shù)和第二個計數(shù)得到用于一篇或多篇文獻(xiàn)中的給定的那篇的各個字符串中的給定的部分字符串的分?jǐn)?shù)的裝置,所述各個部分字符串中的給定的那個部分字符串的分?jǐn)?shù)隨著第一計數(shù)的減少和第二個計數(shù)的增加而增加。
17.根據(jù)權(quán)利要求13所述的裝置,其特征在于所述分?jǐn)?shù)計算單元包括用來得到第一計數(shù)的裝置,所述第一計數(shù)用來指示包括有一個給定的部分字符串之一的已記錄文獻(xiàn)的數(shù)目;用來得到第二計數(shù)的裝置,所述第二計數(shù)均用來指示相應(yīng)的部分字符串之一在給定的一篇或多篇文獻(xiàn)之一中出現(xiàn)的次數(shù);用來得到第二計數(shù)的最小值的裝置;用于從第一計數(shù)和第二計數(shù)的最小值,得到用于一篇或多篇文獻(xiàn)的給定的一篇的各個部分字符串的給定那個部分字符串的分?jǐn)?shù)的裝置,所述各個部分字符串中的給定那個部分字符串的分?jǐn)?shù)隨著第一計數(shù)的減小和第二計數(shù)的最小值的增加而增加。
18.根據(jù)權(quán)利要求13所述的裝置,其特征在于所述分?jǐn)?shù)計算單元包括用來得到第一計數(shù)的裝置,所述第一計數(shù)用來指示包括有給定的部分字符串之一的已記錄文獻(xiàn)的數(shù)目;用來得第二計數(shù)的裝置到所述第二計數(shù)用來指示查詢字符串在給定的一篇或多篇文獻(xiàn)之一中出現(xiàn)的次數(shù);用來得到根據(jù)第一和第二個計數(shù),給定的一篇或多篇文獻(xiàn)之一中的給定的部分字符串之一的分?jǐn)?shù)的裝置,這樣,所給定的部分字符串之一的分?jǐn)?shù)隨著第一計數(shù)的減小和第二計數(shù)的增加而增加。
19.根據(jù)權(quán)利要求18所述的裝置,其特征在于所述得到第二計數(shù)的裝置還包括用來對第二計數(shù)設(shè)置上限的裝置。
20.根據(jù)權(quán)利要求13所述的裝置,其特征在于所述文獻(xiàn)選擇單元選擇一篇或多篇文獻(xiàn),所選擇的一篇或多篇文獻(xiàn)均包括查詢字符串,所述的分?jǐn)?shù)計算單元包括用來得到第一計數(shù)的裝置,所述第一計數(shù)用來指示包括有查詢字符串的已記錄文獻(xiàn)的數(shù)目;用來得到第二計數(shù)的裝置,所述第二計數(shù)用來指示給定的部分符串之一在給定的一篇或多篇文獻(xiàn)之一中出現(xiàn)的次數(shù);用來得到給定的一篇或多篇文獻(xiàn)之一中的給定的部分字符串之一的分?jǐn)?shù)的裝置,所述的一篇或多篇文獻(xiàn)來自于第一計數(shù)和第一計數(shù),這樣,所給定的部分字符串之一的分?jǐn)?shù)隨著第一計數(shù)的減小和第二計數(shù)的增加而增加。
21.根據(jù)權(quán)利要求13所述的裝置,其特征在于所述文獻(xiàn)選擇單元選擇一篇或多篇文獻(xiàn),所選擇的一篇或多篇文獻(xiàn)均包含有查詢字符串,所述的分?jǐn)?shù)計算單元包括用來得到第一計數(shù)的裝置,所述第一計數(shù)用來指示包括有查詢字符串的已記錄文獻(xiàn)的數(shù)目;用來計算來自于第一計數(shù)的界限的裝置;用來得到第二計數(shù)的裝置,所述第二計數(shù)用來指示查詢字符串在給定的一篇或多篇文獻(xiàn)之一中出現(xiàn)的次數(shù),同時將第二計數(shù)的上端限定至所述的界限;用來得到給定的一篇或多篇文獻(xiàn)之一中的給定的部分字符串之一的分?jǐn)?shù)的裝置,所述的一篇或多篇文獻(xiàn)來自于第一計數(shù)和第一計數(shù),這樣,所給定的部分字符串之一的分?jǐn)?shù)隨著第一計數(shù)的減小和第二計數(shù)的增加而增加。
22.一種進(jìn)行文獻(xiàn)檢索所用的裝置,該裝置包括一個文本分解單元,該單元為文獻(xiàn)提供相應(yīng)的目錄,所述的每個相應(yīng)的目錄均列舉出在相應(yīng)的文獻(xiàn)中發(fā)現(xiàn)的部分字符串及發(fā)現(xiàn)的部分字符串在相應(yīng)的文獻(xiàn)中的相應(yīng)的位置,所述文本分解單元選擇起始字符串與查詢字符串一致的部分字符串;一個文獻(xiàn)選擇單元,所述文獻(xiàn)選擇單元從文獻(xiàn)中選擇出一篇或多篇文獻(xiàn),這樣所選出的一篇或多篇文獻(xiàn)均包含有至少所選擇的部分字符串之一;一個分?jǐn)?shù)計算單元,所述分?jǐn)?shù)計算單元用來計算一篇或多篇文獻(xiàn)中的每篇文獻(xiàn)中所選擇的部分字符串的相應(yīng)的分?jǐn)?shù),該單元還包括用來計算來自于一篇或多篇文獻(xiàn)中的每一篇文獻(xiàn)的所選擇的部分字符串的相應(yīng)的分?jǐn)?shù)的查詢字符串的分?jǐn)?shù)。
23.根據(jù)權(quán)利要求22所述的裝置,其特征在于所述分?jǐn)?shù)計算單元包括用來得到第一計數(shù)的裝置,所述第一計數(shù)用來指示包括有一個給定的部分符串之一的已記錄文獻(xiàn)的數(shù)目;用來得到第二計數(shù)的裝置,所述第二計數(shù)用來指示給定的部分字符串之一在給定的一篇或多篇文獻(xiàn)之一中出現(xiàn)的次數(shù);用來得到給定的一篇或多篇文獻(xiàn)之一中的給定的部分字符串之一的分?jǐn)?shù)的裝置,所述的一篇或多篇文獻(xiàn)來自于第一計數(shù)和第一計數(shù),這樣,所給定的部分字符串一的分?jǐn)?shù)隨著第一計數(shù)的減小和第二計數(shù)的增加而增加。
24.根據(jù)權(quán)利要求22所述的裝置,其特征在于所述分?jǐn)?shù)計算單元包括用來得到第一計數(shù)的裝置,所述第一計數(shù)用來指示包括有所選擇的部分字符串之一的已記錄文獻(xiàn)的數(shù)目;用來得到第二計數(shù)的裝置,所述第二計數(shù)用來指示查詢字符串在給定的一篇或多篇文獻(xiàn)之一中出現(xiàn)的次數(shù);用來得到給定的一篇或多篇文獻(xiàn)之一中的給定的部分字符串之一的分?jǐn)?shù)的裝置,所述的一篇或多篇文獻(xiàn)來自于第一計數(shù)和第一計數(shù),這樣,所給定的部分字符串之一的分?jǐn)?shù)隨著第一計數(shù)的減小和第二計數(shù)的增加而增加。
25.一種具有具體的程序而可由計算機認(rèn)讀的記錄媒體,所述程序可使計算機進(jìn)行文獻(xiàn)檢索,所述程序包括一個將查詢字符串分解為部分字符串的分解編碼單元;一個文獻(xiàn)選擇編碼單元,該單元從多篇已記錄的文獻(xiàn)中選擇出一篇或多篇文獻(xiàn),這樣所選擇的一篇或多篇文獻(xiàn)中均包含有所有的部分字符串;一個分?jǐn)?shù)計算編碼單元,該單元用來計算一篇或多篇文獻(xiàn)中的每一篇中的部分字符串的相應(yīng)的分?jǐn)?shù),該單元還可用來計算來自于一篇或多篇文獻(xiàn)中每一篇中的部分字符串的相應(yīng)的分?jǐn)?shù)的查詢字符串的分?jǐn)?shù)。
26.根據(jù)權(quán)利要求25所述的可由計算機認(rèn)讀的記錄媒介,其特征在于所述分解編碼單元將查詢字符串分解為相互鄰近重疊的部分字符串。
27.根據(jù)權(quán)利要求26所述的可由計算機認(rèn)讀的記錄媒介,其特征在于所述的程序還包括一個部分字符串選擇編碼單元,該單元用來選擇通常不重疊且覆蓋查詢字符串的整個長度的部分字符串,被選擇的部分字符串然后被用來計算被選擇的部分字符串的相應(yīng)的分?jǐn)?shù)。
28.根據(jù)權(quán)利要求25所述的可由計算機認(rèn)讀的記錄媒介,其特征在于所述的分?jǐn)?shù)計算編碼單元包括用來得到第一計數(shù)的編碼裝置,所述第一計數(shù)用來指示包括有所選擇的部分字符串之一的已記錄文獻(xiàn)的數(shù)目;用來得到第二計數(shù)的編碼裝置,所述第二計數(shù)用來指示給定的部分字符串之一在給定的一篇或多篇文獻(xiàn)之一中出現(xiàn)的次數(shù);用來得到給定的一篇或多篇文獻(xiàn)之一中的給定的部分字符串之一的分?jǐn)?shù)的編碼裝置,所述的一篇或多篇文獻(xiàn)來自于第一計數(shù)和第一計數(shù),這樣,所給定的部分字符串之一的分?jǐn)?shù)隨著第一計數(shù)的減小和第二計數(shù)的增加而增加。
29.根據(jù)權(quán)利要求25所述的可由計算機認(rèn)讀的記錄媒介,其特征在于所述的分?jǐn)?shù)計算機編碼單元包括用來得到第一計數(shù)的編碼裝置,所述第一計數(shù)用來指示包括有部分符串之一的已記錄文獻(xiàn)的數(shù)目;用來得到第二計數(shù)的編碼裝置,所述第二計數(shù)中的每個數(shù)字均用來指示相應(yīng)的部分字符串之一在給定的一篇或多篇文獻(xiàn)之一中出現(xiàn)的次數(shù);用來得到所述第二計數(shù)的最小值的編碼裝置;用于根據(jù)第一計數(shù)和第二計數(shù)的最小值得到用于一篇或多篇文獻(xiàn)的給定的那篇的各個部分字符串的給定那個字符串的分?jǐn)?shù)的編碼裝置,所述各個部分字符串的給定的那個的分?jǐn)?shù)隨著第一計數(shù)的減小和第二計數(shù)的最小值的增加而增加。
30.根據(jù)權(quán)利要求25所述的可由計算機認(rèn)讀的記錄媒介,其特征在于所述的分?jǐn)?shù)計算編碼單元包括用來得到第一計數(shù)的編碼裝置,所述第一計數(shù)用來指示包括有給定的部分符串之一的已記錄文獻(xiàn)的數(shù)目;用來得到第二計數(shù)的編碼裝置,所述第二計數(shù)用來指示查詢字符串在給定的一篇或多篇文獻(xiàn)之一中出現(xiàn)的次數(shù);用來得到給定的一篇或多篇文獻(xiàn)之一中的給定的部分字符串之一的分?jǐn)?shù)的編碼裝置,所述的一篇或多篇文獻(xiàn)來自于第一計數(shù)和第一計數(shù),這樣,所給定的部分字符串之一的分?jǐn)?shù)隨著第一計數(shù)的減小和第二計數(shù)的增加而增加。
31.根據(jù)權(quán)利要求30所述的可由計算機認(rèn)讀的記錄媒介,其特征在于所述的用來得到第二計數(shù)的編碼單元還包括為第二計數(shù)設(shè)置一個上限的編碼裝置。
32.根據(jù)權(quán)利要求25所述的裝置,其特征在于所述的文獻(xiàn)選擇編碼單元用來選擇一篇或多篇文獻(xiàn),所選擇的一篇或多篇文獻(xiàn)中的每一篇文獻(xiàn)中均包含有查詢字符串,所述的分?jǐn)?shù)計算單元包括用來得到第一計數(shù)的編碼裝置,所述第一計數(shù)用來指示包括有給定的部分字符串之一的已記錄文獻(xiàn)的數(shù)目;用來得到第二計數(shù)的編碼裝置,所述第二計數(shù)用來指示給定的部分字符串之一在給定的一篇或多篇文獻(xiàn)之一中出現(xiàn)的次數(shù);用來得到給定的一篇或多篇文獻(xiàn)之一中的給定的部分字符串之一的分?jǐn)?shù)的編碼裝置,所述的一篇或多篇文獻(xiàn)來自于第一計數(shù)和第一計數(shù),這樣,所給定的部分字符串之一的分?jǐn)?shù)隨著第一計數(shù)的減小和第二計數(shù)的增加而增加。
33.根據(jù)權(quán)利要求25所述的可由計算機認(rèn)讀的記錄媒介,其特征在于所述的文獻(xiàn)選擇編碼單元用來選擇一篇或多篇文獻(xiàn),所選擇的一篇或多篇文獻(xiàn)中的每一篇文獻(xiàn)中均包含有查詢字符串,所述的分?jǐn)?shù)計算單元包括用來得到第一計數(shù)的編碼裝置,所述第一計數(shù)用來指示包括有查詢字符串的已記錄文獻(xiàn)的數(shù)目;用來計算來自于第一計數(shù)的界限的編碼裝置;用來得到第二計數(shù)的編碼裝置,所述第二計數(shù)用來指示查詢字符串在給定的一篇或多篇文獻(xiàn)之一中出現(xiàn)的次數(shù),同時將第二計數(shù)的上端限定在所述的界限;用來得到給定的一篇或多篇文獻(xiàn)之一中的給定的部分字符串之一的分?jǐn)?shù)的編碼裝置,所述的一篇或多篇文獻(xiàn)來自于第一計數(shù)和第一計數(shù),這樣,所給定的部分字符串之一的分?jǐn)?shù)隨著第一計數(shù)的減小和第二計數(shù)的增加而增加。
34.一種具有具體程序的可由計算機認(rèn)讀的記錄媒介,所述程序可使計算機進(jìn)行文獻(xiàn)檢索,所述程序包括一個文本分解編碼單元,該單元為文獻(xiàn)提供相應(yīng)的索引,所述的每個相應(yīng)的索引均列舉出在相應(yīng)的文獻(xiàn)中發(fā)現(xiàn)的部分字符串及發(fā)現(xiàn)的部分字符串在相應(yīng)的文獻(xiàn)中的相應(yīng)的位置,所述文本分解單元選擇起始字符串與查詢字符串一致的部分字符串;一個文獻(xiàn)選擇編碼單元,所述文獻(xiàn)選擇單元從文獻(xiàn)中選擇出一篇或多篇文獻(xiàn),這樣所選出的一篇或多篇文獻(xiàn)均包含有至少一個所選擇的部分字符串;一個分?jǐn)?shù)計算編碼單元,所述分?jǐn)?shù)計算單元用來計算一篇或多篇文獻(xiàn)中的每篇文獻(xiàn)中所選擇的部分字符串的相應(yīng)的分?jǐn)?shù),該單元還包括用來計算來自于一篇或多篇文獻(xiàn)中的每一篇文獻(xiàn)的所選擇的部分字符串的相應(yīng)的分?jǐn)?shù)的查詢字符串的分?jǐn)?shù)。
35.根據(jù)權(quán)利要求34所述的可由計算機認(rèn)讀的記錄媒介,其特征在于所述分?jǐn)?shù)計算編碼單元包括用來得到第一計數(shù)的編碼裝置,所述第一計數(shù)用來指示包括有一個給定的部分字符串之一的已記錄文獻(xiàn)的數(shù)目;用來得到第二計數(shù)的編碼裝置,所述第二計數(shù)用來指示給定的所選擇的部分字符串之一在給定的一篇或多篇文獻(xiàn)之一中出現(xiàn)的次數(shù);用于根據(jù)第一計數(shù)和第二計數(shù)得到用于一篇或多篇文獻(xiàn)的給定一篇的各個部分字符串的給定那個字符串的分?jǐn)?shù)的編碼裝置,以便使各個部分字符串的給定那個部分那個字符串的分?jǐn)?shù)隨著第一計數(shù)的減小和第二計數(shù)的增加而增加。
36.根據(jù)權(quán)利要求34所述的可由計算機認(rèn)讀的記錄媒介,其特征在于所述分?jǐn)?shù)計算編碼單元包括用來得到第一計數(shù)的編碼裝置,所述第一計數(shù)用來指示包括有一個給定的所選擇的部分字符串之一的已記錄文獻(xiàn)的數(shù)目;用來得到第二計數(shù)的編碼裝置,所述第二計數(shù)用來指示查詢字符串在給定的一篇或多篇文獻(xiàn)之一中出現(xiàn)的次數(shù);用來得到給定的一篇或多篇文獻(xiàn)之一中的給定的部分字符串之一的分?jǐn)?shù)的編碼裝置,所述的一篇或多篇文獻(xiàn)來自于第一計數(shù)和第一計數(shù),這樣,所給定的部分字符串一的分?jǐn)?shù)隨著第一計數(shù)的減小和第二計數(shù)的增加而增加。
全文摘要
一種進(jìn)行文獻(xiàn)檢索的方法包括如下步驟:將一個查詢字符串分解為部分字符串;從大量已記錄的文獻(xiàn)中選擇一篇或多篇文獻(xiàn),這樣所選擇的一篇或多篇文獻(xiàn)中的每一篇文獻(xiàn)均包含有所有的部分字符串;計算一篇或多篇文獻(xiàn)中的每一篇文獻(xiàn)中的部分字符串的相應(yīng)的分?jǐn)?shù);計算來自于一篇或多篇文獻(xiàn)中的每一篇文獻(xiàn)中的部分字符串的相應(yīng)的分?jǐn)?shù)的查詢字符串的相應(yīng)的分?jǐn)?shù)。
文檔編號G06F17/30GK1277398SQ00122538
公開日2000年12月20日 申請日期2000年6月9日 優(yōu)先權(quán)日1999年6月9日
發(fā)明者小川泰嗣 申請人:株式會社理光