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