專利名稱:文檔管理方法和裝置以及文檔搜索方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及用于有效地管理登錄的文檔以搜索保存在存儲器中的大量文檔中與檢索關(guān)鍵字匹配的文檔的文檔管理方法,用于搜索文檔的文檔搜索方法,以及有效管理文檔的文檔管理系統(tǒng)。
背景技術(shù):
已知一種索引生成方法,用于在保存文檔數(shù)據(jù)到存儲器中時生成索引,以便當(dāng)從大量保存在數(shù)據(jù)庫中的一組文檔數(shù)據(jù)中搜索與搜索關(guān)鍵字匹配的文檔數(shù)據(jù)時加速檢索。一種用于以文檔數(shù)據(jù)中的連續(xù)N個字符為單位編制N字符索引的方法是已知的。這被稱作N-Gram索引系統(tǒng)。N表示大于1的整數(shù),對于日文文獻(xiàn)來說,常規(guī)的是以N=2(雙Gram)為單位來剪輯Gram。對于英文文獻(xiàn)來說,通常是以N=3以上為單位來剪輯Gram。在例如N=2的情況下,字符串例如“XMLデ一タベ一ス”被剪輯成”XM”,”ML”,”Lデ”,”デ一”,”一タ”,”タベ”,”ベ一”,”一ス”。在檢索文檔數(shù)據(jù)組時,使用從檢索關(guān)鍵字剪輯的Gram作為索引進(jìn)行搜索。
該N-Gram索引系統(tǒng)不需要依賴于語言的詞典,并且便于多語種應(yīng)用。其對于沒有任何詞匯分隔符(例如空格)的日語和漢語來說特別有用。如果利用與偏移量(文檔數(shù)據(jù)中Gram出現(xiàn)的位置)合并的Gram進(jìn)行檢索,則可以減少搜索損耗。
雖然具有這種優(yōu)點(diǎn),但是N-Gram索引系統(tǒng)具有相對于Gram的大小(N的大小)而折衷的問題。換句話說,如果N的大小增加,就要精揀對應(yīng)于作為索引的Gram的文檔數(shù)據(jù)的候選,從而提高檢索速度。Gram信息區(qū)(存儲器中用于存儲有關(guān)Gram的信息的區(qū)域)呈指數(shù)增長。相反,如果N的大小減少,就要增加對應(yīng)于Gram的文檔數(shù)據(jù)的候選數(shù)目。因此,用于調(diào)配位置的次數(shù)增加,從而增加搜索時間。此外,如果N的大小增加,索引的類型數(shù)目(Gram類)也增加。當(dāng)從例如N=2的日文文獻(xiàn)中提取索引時,出現(xiàn)多于3M字節(jié)的Gram類。因此,當(dāng)N增加大于2時,很明顯索引數(shù)據(jù)的大小會進(jìn)一步增加。
針對有關(guān)N的大小的折衷問題,日本專利公開No.2000-57151提供了一種為了增加搜索速度并抑制索引數(shù)據(jù)大小的增長到最小而增加N的大小的方法。換句話說,通過對應(yīng)于檢索項(xiàng)的子串的索引,提取使位置關(guān)系作為檢索項(xiàng)子串的文本數(shù)據(jù)的位置信息,并且將與該文本數(shù)據(jù)子串對應(yīng)的索引的大小與預(yù)定的參考索引大小進(jìn)行比較。當(dāng)該索引的大小大于參考索引的大小時,確定是否與該索引對應(yīng)的子串最可能被搜索。當(dāng)其最可能被搜索時,通過添加字符串到所述子串中獲得擴(kuò)展字符串,并生成對應(yīng)于該擴(kuò)展字符串的索引。
根據(jù)日本專利公開No.2000-57151,如果N的大小增加,則當(dāng)給出較長的搜索關(guān)鍵字時,Gram類的數(shù)目可以減少。然而,要精確地設(shè)置用于確定是否最有可能搜索對應(yīng)于該索引的字符串以及有效的增加N的大小是困難的。因此,存在縮短登錄和檢索文檔的時間的限制。
發(fā)明內(nèi)容
本發(fā)明的目的是提供一種能夠?qū)崿F(xiàn)縮短登錄和搜索文檔的時間、同時使用N-Gram索引系統(tǒng)的文檔管理方法,使用N-Gram索引系統(tǒng)的文檔檢索方法,及其文檔管理系統(tǒng)。
本發(fā)明的一個方面提供了一種用于管理存儲在存儲單元的文檔數(shù)據(jù)區(qū)中的文檔數(shù)據(jù)的文檔管理方法,包括從文檔數(shù)據(jù)移動給定字符數(shù)量的字符串并剪輯該字符串以產(chǎn)生管理Gram;確定該管理Gram是小于閾值的較低發(fā)生頻率的第一Gram和不小于該閾值的較高發(fā)生頻率的第二Gram中的一個;與通過計算第一Gram的字符串獲得的Gram值相關(guān),將第一登記(post)數(shù)據(jù)存儲在存儲單元的第一登記區(qū)中,該第一登記數(shù)據(jù)被配置具有指示包含第一Gram的字符串的文檔數(shù)據(jù)的一組文檔標(biāo)識符(ID)和指示該第一Gram的字符串位置的文檔內(nèi)偏移量;以及與第二Gram的字符串相關(guān),將第二登記數(shù)據(jù)存儲在存儲單元的第二登記區(qū)域中,該第二登記數(shù)據(jù)被配置具有指示包含第二Gram的字符串的文檔數(shù)據(jù)的一組文檔標(biāo)識符(ID)和指示該第二Gram的字符串位置的文檔內(nèi)偏移量。
附圖的簡要說明附
圖1是與本發(fā)明的實(shí)施例有關(guān)的文檔管理系統(tǒng)的框圖。
附圖2是表示根據(jù)附圖1的集成Gram信息區(qū)和集成Gram登記區(qū)的配置示例的示意圖。
附圖3是表示根據(jù)附圖1的普通Gram信息區(qū)和普通Gram登記區(qū)的配置示例的示意圖。
附圖4是指示使用文檔數(shù)量作為參數(shù)的Gram的順序與發(fā)生頻率之間的關(guān)系的示意圖。
附圖5是表示在所述實(shí)施例中文檔登錄處理的示意過程的流程圖。
附圖6是表示根據(jù)附圖5的索引登錄處理的過程流程圖。
附圖7是表示將要新存儲在數(shù)據(jù)文件中的文檔數(shù)據(jù)的示例圖。
附圖8是表示當(dāng)最初輸入附圖7中的文檔數(shù)據(jù)時,集成Gram信息區(qū)和集成Gram登記區(qū)的內(nèi)容示例圖。
附圖9是表示當(dāng)最初輸入附圖7中的文檔數(shù)據(jù)時,普通Gram信息區(qū)和普通Gram登記區(qū)的內(nèi)容示例圖。
附圖10是表示當(dāng)再次輸入附圖7中的文檔數(shù)據(jù)時,集成Gram信息區(qū)和集成Gram登記區(qū)的內(nèi)容示例圖。
附圖11是表示當(dāng)再次輸入附圖7中的文檔數(shù)據(jù)時,普通Gram信息區(qū)和普通Gram登記區(qū)的內(nèi)容示例圖。
附圖12是表示在所述實(shí)施例中文檔檢索處理的過程流程圖。
附圖13是表示在所述實(shí)施例中文檔檢索處理的索引掃描處理的過程流程圖。
附圖14是表示在所述實(shí)施例中文檔檢索處理的一個具體例子的示意圖。
具體實(shí)施例方式
下面將參照附圖對本發(fā)明的實(shí)施例進(jìn)行描述。
<文檔管理系統(tǒng)的總體配置>
如附圖1所示,有關(guān)本發(fā)明的實(shí)施例的文檔管理系統(tǒng)包括客戶機(jī)11和服務(wù)器12??蛻魴C(jī)11例如是個人計算機(jī)。服務(wù)器12訪問作為外部存儲單元的數(shù)據(jù)文件13以登錄和搜索文檔。換句話說,由客戶機(jī)11輸入的文檔數(shù)據(jù)和索引數(shù)據(jù)在登錄該文檔時被存儲在數(shù)據(jù)文件13中。假定當(dāng)搜索文檔時,存儲在數(shù)據(jù)文件13中的一組文檔數(shù)據(jù)是將被搜索的對象。使用N-Gram作為索引搜索包含由客戶機(jī)11指定的字符串構(gòu)成的檢索關(guān)鍵字(被稱為檢索項(xiàng))的文檔。客戶機(jī)11、服務(wù)器12和數(shù)據(jù)文件13通過網(wǎng)絡(luò)14(例如互聯(lián)網(wǎng))連接。服務(wù)器12和數(shù)據(jù)文件13可以直接相互連接。
客戶機(jī)11發(fā)布集成參數(shù)設(shè)置、文檔登錄和利用索引的文檔搜索三個請求。服務(wù)器12通過輸入輸出接口20接收請求并處理這些請求,并將結(jié)果返回給客戶機(jī)11。在文檔登錄請求的情況下,從客戶機(jī)11發(fā)送至服務(wù)器12的數(shù)據(jù)為文檔數(shù)據(jù)。在文檔搜索請求的情況下,從客戶機(jī)11發(fā)送至服務(wù)器12的數(shù)據(jù)為檢索關(guān)鍵字。服務(wù)器12具有集成參數(shù)設(shè)置單元21、文檔登錄單元22和索引檢索單元23三個大的處理器。
數(shù)據(jù)文件13包括集成參數(shù)區(qū)31、索引數(shù)據(jù)區(qū)32和文檔數(shù)據(jù)區(qū)37。索引數(shù)據(jù)區(qū)32包括集成Gram信息區(qū)33、普通Gram信息區(qū)34、集成Gram登記(post)區(qū)35和普通Gram登記區(qū)36。后面將對這些區(qū)進(jìn)行詳細(xì)說明。
<服務(wù)器>
下面對服務(wù)器12進(jìn)行詳細(xì)說明。集成參數(shù)設(shè)置單元21設(shè)置集成參數(shù),用于管理小至不會對搜索造成影響之范圍的頻率的Gram,以便減少表觀的Gram類的數(shù)目。以下將對集成參數(shù)的一個具體例子進(jìn)行描述。
文檔登錄單元22訪問Gram確定單元24、集成Gram登錄單元25,以及普通Gram登錄單元26以記錄文檔。Gram確定單元24確定從客戶機(jī)11發(fā)送的文檔數(shù)據(jù)剪輯的Gram(被稱為管理Gram)是集成Gram還是普通Gram。正如以下詳細(xì)描述的,集成Gram是小于閾值的較低發(fā)生頻率的Gram,普通Gram是除集成Gram以外不小于該閾值的較高發(fā)生頻率的Gram。
在登錄文檔時,如果Gram確定單元24的確定結(jié)果為集成Gram,則通過集成Gram登錄器25從文檔數(shù)據(jù)計算對應(yīng)于該集成Gram的登記數(shù)據(jù),并存儲在數(shù)據(jù)文件13的集成Gram登記區(qū)34中。如果Gram確定單元24的確定結(jié)果為除集成Gram之外的Gram,即普通Gram,則通過普通Gram登錄器26從文檔數(shù)據(jù)計算對應(yīng)于普通Gram的登記數(shù)據(jù),并存儲在數(shù)據(jù)文件13的普通Gram登記區(qū)35中。
登記數(shù)據(jù)是字符串的一組文件內(nèi)偏移量和指示包含Gram字符串的文檔數(shù)據(jù)的文檔標(biāo)識符(ID)。文檔ID是用于唯一地標(biāo)識存儲在文檔數(shù)據(jù)區(qū)37中的每個文檔數(shù)據(jù)的ID。文檔內(nèi)偏移量是指示在由對應(yīng)于該文檔內(nèi)偏移量的文檔ID表示的文檔數(shù)據(jù)中產(chǎn)生的Gram的字符串的產(chǎn)生位置的信息,通常使用普通偏移量0作為起始點(diǎn)進(jìn)行計算。
索引搜索器23訪問Gram確定單元24、集成Gram掃描器27以及普通Gram掃描器28,并從數(shù)據(jù)文件13的文檔數(shù)據(jù)區(qū)36中搜索與從客戶機(jī)11發(fā)送的檢索關(guān)鍵字匹配的一組文檔數(shù)據(jù)。換句話說,使用從檢索關(guān)鍵字剪輯的作為索引的Gram(被稱為檢索Gram)搜索文檔數(shù)據(jù)區(qū)37中的文檔數(shù)據(jù)。此時,Gram確定單元24確定從檢索關(guān)鍵字剪輯的Gram是集成Gram還是普通Gram。
在搜索文檔時,如果Gram確定單元24的確定結(jié)果是集成Gram,則通過集成Gram掃描器27僅掃描數(shù)據(jù)文件13中的集成Gram登記區(qū)34以讀取對應(yīng)于該集成Gram的登記數(shù)據(jù)組。如果Gram確定單元24的確定結(jié)果是普通Gram,則通過集成Gram掃描器27和普通Gram掃描器28掃描數(shù)據(jù)文件13中的集成Gram登記區(qū)34和普通Gram登記區(qū)35,以讀取分別對應(yīng)于集成Gram和普通Gram的登記數(shù)據(jù)組并合并。
索引搜索器23合并對應(yīng)于從所述檢索關(guān)鍵字剪輯的多個Grams的多個登記數(shù)據(jù)組,以獲得包含該檢索關(guān)鍵字的一組文檔ID。最后索引搜索器23使用包含該檢索關(guān)鍵字的文檔ID組通過文檔ID從文檔數(shù)據(jù)區(qū)中提取一組文檔數(shù)據(jù),并將其發(fā)送至客戶機(jī)11。
下面將參照附圖2和3對索引數(shù)據(jù)區(qū)31進(jìn)行描述。附圖2示出了普通Gram信息區(qū)33和集成Gram登記區(qū)35的配置示例。附圖3示出了Gram信息區(qū)34和普通Gram登記區(qū)36的配置示例。
有關(guān)普通Grams例如“燃料”或“電池”的信息存儲在普通Gram信息區(qū)34中。有關(guān)普通Gram的信息代表指示例如普通Gram的字符串,到對應(yīng)于該普通Gram的頭登記塊的鏈接以及登記發(fā)生的數(shù)目的信息。登記發(fā)生的數(shù)目表示發(fā)生在存儲在文檔數(shù)據(jù)區(qū)37中的文檔數(shù)據(jù)組中的Gram的生成數(shù)目。
普通Gram登記區(qū)36包括多個登記塊,每個塊以陣列形式存儲有關(guān)相同Gram的一組登記數(shù)據(jù)。該登記數(shù)據(jù)如前所述是一組文檔ID和文檔內(nèi)偏移量。
集成Gram信息區(qū)33存儲有關(guān)各種類型的集成Gram值的信息。集成Gram是通過集成小至不會對搜索造成影響的范圍的發(fā)生頻率的Gram獲得的Gram(發(fā)生頻率小于閾值的Gram,以下被稱為低頻Gram)。有關(guān)集成Gram值的信息是指示集成Gram值的信息和到對應(yīng)于該集成Gram值的頭登記塊的鏈接的信息。
集成Gram登記區(qū)35包括多個登記塊,每個登記塊存儲對應(yīng)于相同的集成Gram值的一組登記數(shù)據(jù)。登記數(shù)據(jù)如前所述指示一組文檔ID和文檔內(nèi)偏移量。
例如,低頻Gram的最小序(V1)和初始低頻Gram參考值(V2)(指示平均頻率是Gram發(fā)生頻率的多少倍的值,即用于計算Gram的發(fā)生頻率的平均頻率的倍數(shù))被用作用于集成低頻Gram以獲得集成Gram的確定參考值。
假定作為當(dāng)前將被確定的對象的Gram是Gram g,并且Gram g的發(fā)生頻率為Oc(g)。假定當(dāng)所有Gram按減小發(fā)生頻率的順序排列時,在所有Gram中Gram g的序?yàn)镽k(g)。假定Gram的平均發(fā)生頻率為Oave=∑gOc(g)。如果已建立由以下不等式(1)和(2)表示的條件中的至少一個條件,則確定Gram g為集成Gram。
Rk(g)<V1 (1)Oc(g)<Oave×V2(2)參照附圖4,所有Gram的發(fā)生頻率在開始文檔登錄的初始階段,即多個文檔數(shù)據(jù)已開始被存儲在文檔數(shù)據(jù)區(qū)37(其中文檔數(shù)量減少的區(qū)域)中的階段是非常小的。因此,所有Gram由于公式(1)將屬于附圖4所示的稀少Gram區(qū),并且被確定為集成Gram。在初始階段時及之后的階段(附圖4中包含大量文檔的區(qū)域),除了屬于頻繁出現(xiàn)區(qū)的給定數(shù)量的Gram之外的Gram由于公式(2)將屬于稀少Gram區(qū),并且被確定為集成Gram。低頻Gram與高頻Gram之間的差如附圖4所示極大,因此相對于Gram序的發(fā)生頻率以指數(shù)曲線變化。
集成Gram值是用于指定集成Gram的值,對應(yīng)于配置集成Gram的Gram的字符串的哈希值,并且通過普通的哈希計算進(jìn)行計算。作為一個例子,計算JIS碼的和,其分別表示對應(yīng)于配置集成Gram的Gram的字符串的字符。最好是,假定對此和的值V3的模為哈希值,即集成Gram值。值V3是該集成Gram的類的大小,即Gram的數(shù)量(參照附圖4)。
有關(guān)本發(fā)明的文檔管理系統(tǒng)的處理包括兩個階段文檔登錄處理,包含索引登錄以實(shí)現(xiàn)使用Gram作為索引的文檔搜索處理,和使用N-Gram作為索引的文檔搜索處理。首先對文檔登錄處理進(jìn)行說明。
<文檔登錄處理>
如附圖5所示,在本實(shí)施例中的文檔登錄處理包括讀取將被新存儲在數(shù)據(jù)文件13的文檔數(shù)據(jù)區(qū)37中的文檔數(shù)據(jù)(步驟S101),分配文檔ID給讀取的文檔數(shù)據(jù)(步驟S102),并將用于搜索讀取的文檔數(shù)據(jù)的索引數(shù)據(jù)存儲在數(shù)據(jù)文件13的索引數(shù)據(jù)區(qū)33中(步驟103)。
參照附圖6對索引登錄處理步驟S103進(jìn)行說明。在索引登錄處理步驟S103中,產(chǎn)生一組Gram和文檔內(nèi)偏移量,同時逐個移動在附圖5的步驟S101讀取的文檔數(shù)據(jù)的字符(步驟S201),并且對于步驟S201中產(chǎn)生的所有Gram和文檔內(nèi)偏移量重復(fù)步驟S202與S214之間的處理。
檢查對應(yīng)于在步驟S201產(chǎn)生的Gram的Gram是否存在于普通Gram信息區(qū)34中(步驟S203)。如果存在,則更新有關(guān)該普通Gram信息區(qū)34中的相應(yīng)Gram的信息(步驟S204)。如果不存在,則將有關(guān)在步驟S201產(chǎn)生的Gram的信息添加到該普通Gram信息區(qū)34中(步驟S205)。
確定在步驟S201產(chǎn)生的Gram是否是集成Gram(步驟S206)。如果在步驟S206所產(chǎn)生的Gram被確定為集成Gram,則計算集成Gram值,并且將有關(guān)該集成Gram值的信息存儲在集成Gram信息區(qū)33中(步驟S207)。此外,檢查對應(yīng)于該集成Gram登記區(qū)35中的集成Gram值的集成登記塊是否可用(步驟S208)。如果該集成登記塊不可用,則添加新的集成登記塊(步驟S209)。
當(dāng)在步驟S208中集成登記塊是可用的,則添加<集成Gram,文檔ID和偏移量>組到集成登記塊中作為登記數(shù)據(jù)。當(dāng)其不可用時,添加<集成Gram,文檔ID和偏移量>組到在步驟S209添加的集成登記塊中作為登記數(shù)據(jù)(步驟S210)。
如果在步驟S206中確定在步驟S201產(chǎn)生的Gram是除集成Gram之外的Gram,即普通Gram,則檢查對應(yīng)于該普通Gram值的普通登記塊在普通Gram登記區(qū)36中是否可用(步驟S211)。如果該普通登記塊是不可用的,則添加新的普通登記塊(步驟S212)。
當(dāng)在步驟S211中該普通的登記塊是可用的,則添加<文檔ID和文檔內(nèi)偏移量>組到普通登記塊中作為登記數(shù)據(jù)。當(dāng)其是不可用時,添加<文檔ID和文檔內(nèi)偏移量>組到在步驟S212添加的集成登記塊中作為登記數(shù)據(jù)(步驟S213)。
參照附圖7-9對附圖1所示的索引數(shù)據(jù)區(qū)31的具體內(nèi)容進(jìn)行說明。假定指示如附圖7所示的字符串“燃料電池とは”的文檔數(shù)據(jù),例如存儲在數(shù)據(jù)文件13中。假定文檔ID105被分配給該文檔數(shù)據(jù)。從字符串“燃料電池とは”中剪輯五個Gram,即“燃料”,“料電”,“電池”,“池と”和“とは”。為這些Gram產(chǎn)生由“Gram”<文檔ID,文檔內(nèi)偏移量>構(gòu)成的主數(shù)據(jù)。
(1)“燃料”<105,0>
(2)“料電”<105,2>
(3)“電池”<105,4>
(4)“池と”<105,6>
(5)“とは”<105,8>
當(dāng)通過用于確定其是集成Gram還是普通Gram的參考值,假定這些Gram中的每個Gram都是集成Gram時,將對應(yīng)于集成Gram的登記數(shù)據(jù)存儲在集成Gram登記區(qū)35的集成登記塊中,如附圖8所示。
換句話說,如果例如計算“燃料”的哈希值,并且集成Gram值變?yōu)?,則對應(yīng)于被稱為“燃料”的集成Gram的登記數(shù)據(jù)<“燃料”,105,0>被存儲在集成Gram值0的登記塊中。類似地,如果計算例如“電池”的哈希值,并且集成Gram值變?yōu)?,則對應(yīng)于被稱為“nr”的集成Gram的登記數(shù)據(jù)<“電池”,105,4>被存儲在集成Gram值1的登記塊中。
另一方面,在此步驟中,五個Gram,即“燃料”,“料電”,“電池”,“池と”和“とは”都被確定為集成Gram,從而新的登記數(shù)據(jù)不存儲在普通Gram登記區(qū)中,如附圖9所示。
在一定數(shù)量文檔的文檔數(shù)據(jù)存儲在文檔數(shù)據(jù)區(qū)37中的狀態(tài)下,假定字符串“燃料電池とは”的文檔數(shù)據(jù)存儲在文檔數(shù)據(jù)區(qū)37中,如附圖7所示。然后,分配不同于前一個文檔ID的文檔ID985給被稱為“燃料電池とは”的文檔數(shù)據(jù)。在此情況下,類似于前一個例子,從字符串“燃料電池とは”中剪輯五個Gram,即“燃料”,“料電”,“電池”,“池と”和“とは”,并且為這些Gram產(chǎn)生以下“Gram”<文檔ID,文檔內(nèi)偏移量>。
(1)“燃料”<985,0>
(2)“料電”<985,2>
(3)“電池”<985,4>
(4)“池と”<985,6>
(5)“とは”<985,8>
通過用于確定集成Gram或普通Gram的參考值,這些Gram的Gram“燃料”及“電池”被確定為普通Gram,并且除它們之外的Gram“料電”、“池と”和“とは”被確定為集成Gram。在此情況下,對應(yīng)于集成Gram的登記數(shù)據(jù)被存儲在集成Gram登記區(qū)35的集成登記塊中,如附圖10所示。此外,對應(yīng)于普通Gram的登記數(shù)據(jù)被存儲在普通Gram登記區(qū)36的普通登記塊中,如附圖11所示。
換句話說,“料電”、“池と”和“とは”三個Gram被再次確定為集成Gram,并且將登記數(shù)據(jù)分別存儲在集成Gram登記區(qū)35的對應(yīng)登記塊中。被確定為普通Gram的“燃料”的登記數(shù)據(jù)<985,0>和“電池”的登記數(shù)據(jù)<985,4>被分別存儲在普通Gram登記區(qū)36的對應(yīng)于“燃料”的登記塊及其對應(yīng)于“電池”的登記塊中。
因此如在本實(shí)施例中所描述的,較高頻登記數(shù)據(jù)的普通Gram存儲在普通Gram登記區(qū)36中,并與關(guān)于存儲在普通Gram信息區(qū)34中的普通Gram的信息(普通Gram的字符串)相關(guān)。至于較低頻的集成Gram,登記數(shù)據(jù)存儲在集成Gram登記區(qū)35中,并與存儲在集成Gram信息區(qū)33中的集成Gram值相關(guān)。因此,減少Gram類的表觀數(shù)量,并且可以縮短登錄時間。在如附圖6的步驟S208和S210中所示的集成Gram登記的附加處理中,由于只有由V3定義的類的集成登記塊區(qū)域必須寫入盤中,與傳統(tǒng)的將對應(yīng)于期望多于V3的所有Gram類的登記塊寫入盤中的技術(shù)相比,處理時間顯著減少。
<文檔檢索處理>
參照附圖12-13對本實(shí)施例中的文檔檢索處理進(jìn)行說明。如圖12所示讀取檢索關(guān)鍵字(步驟S301),并且從該檢索關(guān)鍵字剪輯Gram以產(chǎn)生Gram組(步驟S302)。通過從該檢索關(guān)鍵字重復(fù)剪輯N個字符的字符串,同時例如逐個移動所述字符來從檢索關(guān)鍵字剪輯這些Gram。
對在步驟S302產(chǎn)生的Gram組中的每個Gram重復(fù)步驟S303與S308之間的處理。換句話說,首先,在“索引掃描處理中”,對在步驟S302產(chǎn)生的Gram組中的每個Gram,掃描索引數(shù)據(jù)區(qū)31的集成Gram登記區(qū)35和普通登記區(qū)36,以從登記塊中導(dǎo)出登記數(shù)據(jù)組(步驟S304)。
檢查在得到的登記數(shù)據(jù)中是否存在當(dāng)前的登記數(shù)據(jù)組(步驟S305)。如果存在當(dāng)前的登記數(shù)據(jù)組,則通過偏移量合并當(dāng)前登記數(shù)據(jù)組與在步驟S304得到的登記數(shù)據(jù)組,以產(chǎn)生新的當(dāng)前登記數(shù)據(jù)組(步驟S306)。如果不存在當(dāng)前登記數(shù)據(jù)組,則步驟S304得到的登記數(shù)據(jù)組產(chǎn)生當(dāng)前登記數(shù)據(jù)組(步驟S307)。
如果為在步驟S302產(chǎn)生的Gram組中的所有Gram提供當(dāng)前登記數(shù)據(jù)組,則通過由當(dāng)前登記數(shù)據(jù)組訪問文檔數(shù)據(jù)區(qū)37,得到包含檢索關(guān)鍵字的一組文檔數(shù)據(jù)(包含檢索關(guān)鍵字的一組文檔ID)(步驟S309)。
附圖13示出了在附圖12中的索引掃描處理步驟S305的具體過程。初始化在附圖12中的步驟S304得到的登記數(shù)據(jù)組(步驟S401),并計算集成Gram值(步驟S402)。通過計算的集成Gram值訪問集成Gram信息區(qū)33以得到有關(guān)集成Gram值的信息,并且通過到頭登記塊的鏈接的信息指定頭登記塊的位置(步驟S403)。
檢查集成登記塊是否存在于在步驟S403所指定的頭登記塊位置(步驟S404)。如果該集成登記數(shù)據(jù)在頭登記塊位置,則掃描集成登記塊,將在附圖12的步驟S304得出并在步驟S401初始化的登記數(shù)據(jù)組添加到存儲在集成登記塊的登記數(shù)據(jù)組中(步驟S405)。指定跟在頭塊位置之后的下一個登記塊位置,然后所述處理返回到步驟S404(步驟S406)。重復(fù)步驟S404-S406的處理,直到在步驟404確定該集成登記塊沒有存在于指定的登記塊位置上。
當(dāng)在步驟S404確定不存在登記塊時,訪問普通Gram信息區(qū)34以得到有關(guān)普通Gram值的信息,并且通過到頭登記塊的鏈接的信息來指定頭登記塊的位置(步驟S407)。
檢查普通登記塊是否存在于在步驟S407指定的頭登記塊位置(步驟S408)。如果普通登記數(shù)據(jù)存在于頭登記塊位置,則掃描普通登記塊。向存儲在普通登記塊中的登記數(shù)據(jù)組添加在附圖12的步驟S304中得到的并在步驟S401初始化的登記數(shù)據(jù)組(步驟S409)。接著,指定頭塊位置之后的登記塊位置(步驟S410),然后所述處理返回到步驟S408。重復(fù)在步驟S408中步驟S408-S410的處理,直到確定沒有普通登記塊存在于指定的登記塊位置為止。由上述處理提供的登記數(shù)據(jù)組返回到附圖12中的步驟S305(步驟S411),并且附圖12中步驟S305的索引掃描處理結(jié)束。
在索引掃描處理中,步驟S402-S406的處理,即掃描集成登記塊和添加集成Gram的登記組的處理被特征化。在此情況下,通過選擇一個用于充分確定Gram是集成Gram還是普通Gram的參考值,可以縮短登錄時間而不會延長檢索時間。
參照附圖14對本實(shí)施例中的文檔搜索處理的具體例子進(jìn)行說明。在該例子中,從檢索關(guān)鍵詞“電池とは”剪輯兩個Gram“電池”和“とは”,確定這些Grams中的每個Gram是集成Gram還是普通Gram,并且掃描其中存儲有適當(dāng)?shù)牡怯泬K的登記區(qū)。
由于例如“電池”被確定為普通Gram,掃描集成Gram登記區(qū)35和普通Gram登記區(qū)36。因此,提供以下登記數(shù)據(jù)組。
<…,…>,<105,4>,<…,…>,<985,4>,<…>。
另一方面,由于“とは”被確定為集成Gram,因此只掃描集成Gram登記區(qū)35。
因此,提供以下登記數(shù)據(jù)組。
<…,…>,<105,30>,<…,…>,<985,30>,<…>。
合并這兩個登記數(shù)據(jù)組。由于兩個字符在“電池”與“とは”之間偏離,根據(jù)登記數(shù)據(jù)<文檔ID,文件內(nèi)偏移量>合并其中文檔內(nèi)偏移量之間的差為+4的登記數(shù)據(jù)組。合并結(jié)果為<…>,<105>,<…>,<985>,<…>,并且此為文檔ID列表。
通過以此方式提供的文檔ID列表訪問文檔數(shù)據(jù)區(qū)37,從而獲取包含被稱為“電池とは”的檢索關(guān)鍵字的文檔數(shù)據(jù)組作為搜索結(jié)果。
根據(jù)本發(fā)明的另一個實(shí)施例,為每個集成Gram值指示存在或缺乏對應(yīng)于集成Gram值的集成Gram的標(biāo)記(例如比特串)存儲在集成登記區(qū)中。當(dāng)在文檔搜索時從集成登記區(qū)讀取登記數(shù)據(jù)時,可以在掃描集成登記區(qū)時檢查該標(biāo)記,以跳過其中沒有集成Gram的集成登記區(qū)的區(qū)域。因此,可以進(jìn)一步縮減檢索時間。
根據(jù)本發(fā)明,與較低頻率的第一Gram的Gram值相關(guān),將登記數(shù)據(jù)存儲在登記區(qū)中,并且與較高頻率的第二Gram的Gram的字符串相關(guān),將登記數(shù)據(jù)存儲在登記區(qū)中。因此,減少了Gram類的表觀數(shù)量,從而可以減少包含文檔數(shù)據(jù)存儲設(shè)備和登記數(shù)據(jù)存儲器的文檔登錄所需的時間。
此外,通過充分地選擇用于確定該Gram是第一Gram還是第二Gram的參考值,可以縮減登錄時間,而不會延長檢索時間。
此外,通過根據(jù)使用環(huán)境(例如,硬件存儲設(shè)備,以及應(yīng)用程序數(shù)據(jù)大小)調(diào)節(jié)Gram確定參數(shù),可以在檢索時間和登錄時間之間提供優(yōu)化平衡。
對于那些本領(lǐng)域技術(shù)人員來說很容易想到其他優(yōu)點(diǎn)和修改方式。因此本發(fā)明按其廣義來說并不局限于這里所示和所描述的特定內(nèi)容和典型實(shí)施例。因此,在不脫離由所附權(quán)利要求書及其等效物定義的總的發(fā)明概念的精神和范圍的情況下可以進(jìn)行各種修改。
權(quán)利要求
1.一種文檔管理方法,用于管理存儲在存儲單元的文檔數(shù)據(jù)區(qū)中的文檔數(shù)據(jù),包括從文檔數(shù)據(jù)移動給定字符數(shù)量的字符串,并剪輯該字符串以產(chǎn)生管理Gram;確定該管理Gram是小于閾值的較低發(fā)生頻率的第一Gram和不小于該閾值的較高發(fā)生頻率的第二Gram中的一個;與通過計算該第一Gram的字符串獲得的Gram值相關(guān),將第一登記數(shù)據(jù)存儲在存儲單元的第一登記區(qū)中,該第一登記數(shù)據(jù)被配置具有指示包含該第一Gram的字符串的文檔數(shù)據(jù)的一組文檔標(biāo)識符(ID)和指示該第一Gram的字符串位置的文檔內(nèi)偏移量;以及與該第二Gram的字符串相關(guān),將第二登記數(shù)據(jù)存儲在該存儲單元的第二登記區(qū)中,該第二登記數(shù)據(jù)被配置具有指示包含該第二Gram的字符串的文檔數(shù)據(jù)的一組文檔標(biāo)識符(ID)和指示該第二Gram的字符串位置的文檔內(nèi)偏移量。
2.根據(jù)權(quán)利要求1所述的文檔管理方法,其中所述確定包括當(dāng)滿足Rk(g)<V1時,確定所述管理Gram為該第一Gram,其中V1表示該管理Gram的減小發(fā)生頻率的順序中最小的序,Rk(g)表示在按減小發(fā)生頻率的順序排列的所有管理Grams中該管理Gram的序。
3.根據(jù)權(quán)利要求1所述的文檔管理方法,其中所述確定包括當(dāng)滿足Oc(g)<Oave×V2時,確定該管理Gram為該第一Gram,其中V2表示代表在開始將文檔數(shù)據(jù)存入該文檔數(shù)據(jù)區(qū)的初始狀態(tài)下,用于計算該第一Gram的發(fā)生頻率的Gram的平均發(fā)生頻率的倍數(shù)的值,Oc(g)表示該管理Gram的發(fā)生頻率,并且Oave=∑gOc(g)表示該管理Gram的平均發(fā)生頻率。
4.根據(jù)權(quán)利要求1所述的文檔管理方法,還包括計算該第一Gram的字符串的散列值以獲取Gram值。
5.根據(jù)權(quán)利要求1所述的文檔管理方法,其中剪輯字符串包括從日文文檔的文檔數(shù)據(jù)中剪輯兩個日文字符,同時以一個字符為單位移動該字符串。
6.一種文檔檢索方法,用于根據(jù)檢索關(guān)鍵字搜索存儲在文檔數(shù)據(jù)區(qū)中的文檔數(shù)據(jù),該方法包括準(zhǔn)備存儲單元,該存儲單元包含其中存儲有文檔數(shù)據(jù)的文檔數(shù)據(jù)存儲區(qū);與通過計算第一Gram的字符串獲得的Gram值相關(guān)、用于存儲第一登記數(shù)據(jù)的第一登記區(qū),該第一登記數(shù)據(jù)被配置具有指示包含該第一Gram的字符串的文檔數(shù)據(jù)的一組文檔標(biāo)識符(ID)和指示該字符串的位置的文檔內(nèi)偏移量;以及與第二Gram的字符串相關(guān)、用于存儲第二登記數(shù)據(jù)的第二登記區(qū),該第二登記數(shù)據(jù)被配置具有指示包含該第二Gram的字符串的文檔數(shù)據(jù)的一組文檔標(biāo)識符(ID)和指示該第二Gram的字符串的位置的文檔內(nèi)偏移量;從檢索關(guān)鍵字移動給定字符數(shù)量的字符串,并剪輯該字符串以產(chǎn)生檢索Gram;根據(jù)由計算該檢索Gram的字符串所獲得的Gram值,通過掃描該第一登記區(qū)來從該第一登記區(qū)中讀取該第一登記數(shù)據(jù);根據(jù)所述檢索Gram的字符串,通過掃描該第二登記區(qū)來從該第二登記區(qū)中讀取該第二登記數(shù)據(jù);以及使用第一讀取的登記數(shù)據(jù)和第二登記數(shù)據(jù),在該文檔數(shù)據(jù)區(qū)中搜索與所述檢索關(guān)鍵字匹配的文檔數(shù)據(jù)。
7.根據(jù)權(quán)利要求6所述的文檔檢索方法,其中,該第一登記區(qū)為每個Gram值存儲指示存在或缺乏與該Gram值對應(yīng)的管理Gram的標(biāo)記,并且讀取該第一登記數(shù)據(jù)包括在掃描該第一登記區(qū)時檢查該第一登記區(qū)中的該標(biāo)記,并跳過不包含該管理Gram的該第一登記區(qū)中的區(qū)域。
8.根據(jù)權(quán)利要求6所述的用于搜索日文文檔的文檔數(shù)據(jù)的文檔檢索方法,其中剪輯該字符串包括從日文文檔的文檔數(shù)據(jù)中剪輯兩個日文字符,同時以一個字符為單位移動該字符串。
9.一種文檔管理裝置,包括存儲單元,具有其中存儲有文檔數(shù)據(jù)的文檔數(shù)據(jù)區(qū);確定單元,被配置成確定管理Gram與小于閾值的較低發(fā)生頻率的第一Gram和不小于該閾值的較高發(fā)生頻率的第二Gram中的一個對應(yīng),該管理Gram通過從該存儲單元的文檔數(shù)據(jù)移動給定字符數(shù)量的字符串并剪輯該字符串而產(chǎn)生;第一寫入單元,被配置成與通過計算該第一Gram的字符串獲得的Gram值相關(guān)、在該存儲單元的第一登記區(qū)中存儲第一登記數(shù)據(jù),該第一登記數(shù)據(jù)被配置具有指示包含該第一Gram的字符串的文檔數(shù)據(jù)的一組文檔標(biāo)識符(ID)和指示該第一Gram的字符串的位置的文檔內(nèi)偏移量;以及第二寫入單元,被配置成與該第二Gram的字符串相關(guān)、在該存儲單元的第二登記區(qū)中存儲第二登記數(shù)據(jù),該第二登記數(shù)據(jù)被配置具有指示包含該第二Gram的字符串的文檔數(shù)據(jù)的一組文檔標(biāo)識符(ID)和指示該第二Gram的字符串的位置的文檔內(nèi)偏移量;產(chǎn)生單元,被配置成通過從檢索關(guān)鍵字移動給定字符數(shù)量的字符串并剪輯該字符串,產(chǎn)生檢索Gram,該檢索關(guān)鍵字用于搜索存儲在該存儲單元的文檔數(shù)據(jù)區(qū)中的文檔數(shù)據(jù);第一讀出單元,被配置成根據(jù)通過計算該檢索Gram的字符串獲得的Gram值,從該第一登記區(qū)中讀取第一登記數(shù)據(jù);第二讀出單元,被配置成根據(jù)該檢索Gram的字符串,從該第二登記區(qū)中讀取第二登記數(shù)據(jù);以及搜索單元,被配置成使用該第一登記數(shù)據(jù)和該第二登記數(shù)據(jù),搜索該文檔數(shù)據(jù)區(qū)中與該檢索關(guān)鍵字匹配的文檔數(shù)據(jù)。
10.根據(jù)權(quán)利要求9所述的文檔管理裝置,其中該確定單元包括被配置成當(dāng)滿足Rk(g)<V1時,確定該管理Gram為第一Gram的確定單元,其中V1表示在該管理Gram的減小發(fā)生頻率的順序中最小的序,Rk(g)表示在按減小發(fā)生頻率的順序排列的所有管理Gram中該管理Gram的序。
11.根據(jù)權(quán)利要求9所述的文檔管理裝置,其中所述確定單元包括被配置成當(dāng)滿足Oc(g)<Oave×V2時,確定該管理Gram為第一Gram的確定單元,其中V2表示代表在開始將該文檔數(shù)據(jù)存入該文檔數(shù)據(jù)區(qū)中的初始狀態(tài)下,用于計算該第一Gram的發(fā)生頻率的Gram的平均發(fā)生頻率的倍數(shù)的值,Oc(g)表示所述管理Gram的發(fā)生頻率,并且Oave=∑gOc(g)表示該管理Gram的平均發(fā)生頻率。
12.根據(jù)權(quán)利要求9所述的文檔管理裝置,還包括被配置成計算該第一Gram的字符串的散列值以獲取該Gram值的計算單元。
13.根據(jù)權(quán)利要求9所述的文檔管理裝置,其中所述確定單元包括被配置成從日文文檔的文檔數(shù)據(jù)中剪輯兩個日文字符,同時以一個字符為單位移動該字符串的剪輯單元。
14.一種文檔搜索裝置,用于根據(jù)檢索關(guān)鍵字搜索存儲在文檔數(shù)據(jù)區(qū)中的文檔數(shù)據(jù),該裝置包括存儲單元,包含其中存儲有文檔數(shù)據(jù)的文檔數(shù)據(jù)存儲區(qū)、第一登記區(qū)和第二登記區(qū),其中,該第一登記區(qū)與通過計算第一Gram的字符串獲得的Gram值相關(guān)、存儲被配置具有指示包含該第一Gram的字符串的文檔數(shù)據(jù)的一組文檔標(biāo)識符(ID)和指示該字符串的位置的文檔內(nèi)偏移量,并且該第二登記區(qū)與第二Gram的字符串相關(guān)、存儲被配置具有指示包含該第二Gram的字符串的文檔數(shù)據(jù)的一組文檔標(biāo)識符(ID)和指示該第二Gram的字符串的位置的文檔內(nèi)偏移量;剪輯單元,被配置成從檢索關(guān)鍵字移動給定字符數(shù)量的字符串,并剪輯該字符串以產(chǎn)生檢索Gram;讀取單元,被配置成根據(jù)由計算所述檢索Gram的字符串獲得的Gram值,通過掃描該第一登記區(qū)來從該第一登記區(qū)中讀取該第一登記數(shù)據(jù);讀取單元,被配置成根據(jù)所述檢索Gram的字符串,通過掃描該第二登記區(qū)來從該第二登記區(qū)中讀取該第二登記數(shù)據(jù);以及搜索單元,被配置成使用該第一讀取的登記數(shù)據(jù)和該第二登記數(shù)據(jù),在該文檔數(shù)據(jù)區(qū)中搜索與所述檢索關(guān)鍵字匹配的文檔數(shù)據(jù)。
15.根據(jù)權(quán)利要求14所述的文檔搜索裝置,其中,該第一登記區(qū)為每個Gram值存儲指示存在或缺乏與該Gram值對應(yīng)的管理Gram的標(biāo)記,并且讀取該第一登記區(qū)包括在掃描該第一登記區(qū)時檢查該第一登記區(qū)中的該標(biāo)記,并跳過不包含該管理Gram的該第一登記區(qū)中的區(qū)域。
16.根據(jù)權(quán)利要求14所述的搜索日文文檔的文檔數(shù)據(jù)的文檔搜索裝置,其中所述剪輯單元被配置成從日文文檔的文檔數(shù)據(jù)剪輯兩個日文字符,同時以一個字符為單位移動該字符串。
全文摘要
一種文檔管理方法,包括從文檔數(shù)據(jù)移動多個字符的字符串并剪輯它,確定通過剪輯所獲得的管理Gram是第一低頻Gram和第二高頻Gram中的一個,將第一登記數(shù)據(jù)存儲在與通過計算第一Gram的字符串獲得的Gram值相關(guān)的第一登記區(qū)中,該第一登記數(shù)據(jù)具有指示包含第一Gram的文檔數(shù)據(jù)的一組文檔標(biāo)識符(ID)和指示其字符串位置的文檔內(nèi)偏移量,以及將第二登記數(shù)據(jù)存儲在與第二Gram的字符串相關(guān)的第二登記區(qū)中,該第二登記數(shù)據(jù)具有指示包含第二Gram的文檔數(shù)據(jù)的一組文檔標(biāo)識符(ID)和指示其字符串位置的文檔內(nèi)偏移量。
文檔編號G06F17/30GK1831825SQ20061005474
公開日2006年9月13日 申請日期2006年3月10日 優(yōu)先權(quán)日2005年3月11日
發(fā)明者服部雅一 申請人:株式會社東芝