检索装置和检索方法与流程

文档序号:12040699阅读:151来源:国知局
检索装置和检索方法与流程
本文讨论的实施方式涉及数据检索技术。

背景技术:
在诸如html的标记语言中,利用由文本等表示的标签来指定文本的修饰信息(指定字符的大小、排版状态等)。基于修饰信息的修饰的示例包括这样的修饰:通过多种不同的表述(notation)(例如,设置有读音的字符串的表述、设置有拼音的中文的表述等)利用字符信息来书写具有一个含义的语言单位(构成语言的单位,例如单词和字符)。在通过标记语言书写的文本中,通过标签指定表述(显示规则,例如显示位置和显示大小)。例如,在ruby注解(rubyannotation)被提供给字符串的情况下,通过标签来区分是针对读音字符指定的表述还是针对要设置读音的字符(亲字符)指定的表述。基于指定ruby注解的标签,亲字符和读音字符(或表述)被同时记载(adscript)。在html中,通过诸如“<ruby><rb>七夕</rb><rp>(</rp><rt>"ta""na""ba""ta"</rt><rp>)</rp><rb>祭</rb><rp>(</rp><rt>"ma""tsu"</rt><rp>)</rp></ruby>"ri"”的描述(描述D1)来表示“七夕祭“ri””的字符信息的一部分(七、夕和祭各自表示原说明中与一个字符码对应的一个中文字符,“ri”表示与一个字符码(UTF-8中的0xE3828A)对应的一个平假名字符り)。在描述D1的情况下,“七夕”(七和夕各自表示原说明中的一个中文字符)为亲字符,“"ta""na""ba""ta"”("ta"、"na"和"ba"以及"ri"各自表示原说明中的一个平假名字符)为读音字符。当不包括标签信息时,描述D1为“七夕..."ta""na""ba""ta"...祭..."ma""tsu"..."ri"”。因此,当利用诸如“七夕祭"ri"”的检索字符串执行检索时,确定“七夕..."ta""na""ba""ta"...祭..."ma""tsu"..."ri"”与检索字符串不一致。对于这种问题,已经公开了这样的技术:将用于区分没有读音的字符串、亲字符和读音字符的信息与作为检索对象的文档中的字符信息(除标签之外)关联,以仅将检索字符串与区分信息所关联的字符(与和检索字符串的第一字符一致的字符相同)进行核对。当在核对中检索字符串的开头与亲字符彼此一致时,跳过与存在于下一亲字符之前的读音字符的核对,执行与存在于所跳过的读音字符之后的亲字符的核对。然而,当检索字符串的开头字符与亲字符一致时,跳过与读音的核对。因此,当检索字符串的一部分与亲字符一致,而其它部分与读音字符一致时,确定检索字符串与文档中的字符信息不一致。例如,确定描述D1中不包括诸如“七夕"ma""tsu""ri""和""ta""na""ba""ta"祭"ri"”的检索字符串。例如,公布了日本特开2003-330917号公报。

技术实现要素:
根据本发明的一方面,一种检索装置包括处理器,该处理器被配置为:接收检索字符信息;在文档数据包括表明同时记载了第一字符信息和第二字符信息的指定的情况下,将指示所述检索字符信息的核对处理的状态的状态信息复制到所述文档数据中的所述指定前面的第三字符信息上;基于所述第一字符信息与所述检索字符信息的核对结果更新所述状态信息;以及基于所述第二字符信息与所述检索字符信息的核对结果更新复制状态信息。通过权利要求中具体指出的元件和组合,将实现并获得本发明的目的和优点应当理解,以上总体描述和以下详细描述均是示例性和说明性的,并非对要求保护的本发明的限制。附图说明图1示出计算机的功能块的示例;图2是自动机的示例性示图;图3示出自动机的数据配置示例;图4示出状态信息的示例;图5示出指示与检索字符串一致的部分的表的示例;图6示出存储区域的时间序列变化;图7示出包括计算机的示例性系统配置;图8示出计算机的示例性硬件配置;图9示出计算机的示例性软件配置;图10示出由检索单元执行的检索处理的示例性流程图;图11示出自动机生成流程图;图12A示出核对的示例性流程图;图12B示出核对的示例性流程图;图13A是自动机的示例性示图;图13B是自动机的示例性示图;图14A示出存储区域的时间序列变化;图14B示出存储区域的时间序列变化;以及图15示出存储区域的时间序列变化。具体实施方式图1示出根据第一实施方式的计算机1的功能块的示例。计算机1包括检索单元11和存储单元12。例如,存储单元12存储文件组F1至Fn(检索对象)。检索单元11针对存储在存储单元12中的文件组F1至Fn执行检索。检索单元11包括接收单元13、生成单元14、读出单元15、检测单元16、核对单元17和输出单元18。接收单元13接收包括对检索字符串的指定的检索请求。生成单元14基于包括在由接收单元13接收到的检索请求中的检索字符串生成自动机。读出单元15执行对作为检索对象的文件组F1至Fn的读出控制。检测单元16从通过读出单元15的控制读出的文件(称作文件Fi)检测以多种表述显示具有一个含义的字符信息的指定。当检测单元16检测到以多种表述显示具有一个含义的字符信息的指定(例如,指定插入读音的标签信息)时,检测单元16将包括所述指定的部分通知给核对单元17。核对单元17利用由生成单元14生成的自动机在由读出单元15读出的文件(称作文件Fi)中的字符信息与检索字符串之间执行核对。当核对单元17接收到来自检测单元16的通知时,核对单元17复制所述通知中指示的部分处的状态信息(指示自动机的状态),以获得两条状态信息。另外,核对单元17针对一条状态信息反映与具有重叠的语义内容的一个字符串的核对结果,针对另一条状态信息反映与具有重叠的语义内容的另一字符串的核对结果。输出单元18输出由核对单元17执行的核对的结果。图2是由生成单元14生成的自动机的模型示图。图2所示的自动机对应于检索字符串“七夕"ma""tsu""ri"”。核对单元17针对从作为检索对象的文件顺序地读取的每一条字符信息确定字符信息是否满足自动机中包括的状态转换条件。首先,每当核对单元17从由读出单元15读取的文件Fi读出字符信息时,例如,核对单元17重复地确定字符信息是否满足自动机的初始状态下的转换条件。即,核对单元17从文件Fi顺序地读出字符信息,以将该字符信息与转换条件1(从初始状态(0)转换为后续状态(1)的条件)的七的字符信息进行核对。当在核对结果中,从文件Fi读取的字符信息与转换条件1的七一致时,核对单元17将自动机的状态转变为状态(1)。当自动机的状态转变为状态(1)时,核对单元17确定字符信息是否满足状态(1)下的转换条件。即,核对单元17将转换为状态(1)之后从文件Fi读取的字符信息与转换条件1(从状态(1)转换为状态(2)的条件)的夕的字符信息进行核对。当在核对结果中,读出的字符信息与夕的字符信息一致时,核对单元17将自动机的状态转变为状态(2)。另外,核对单元17将读出的字符信息与转换条件2(从状态(1)转换为状态(1)的条件)的七的字符信息进行核对。当在核对结果中,读出的字符信息与七的字符信息一致时,核对单元17将自动机的状态转变为状态(1)。当在核对结果中,读出的字符信息既不与转换条件1一致,也不与转换条件2一致时,核对单元17将自动机的状态返回至初始状态(0)。当自动机的状态转变为状态(2)时,核对单元17确定字符信息是否满足状态(2)下的转换条件。即,核对单元17将转换为状态(2)之后从文件Fi读取的字符信息与转换条件1(从状态(2)转换为状态(3)的条件)的"ma"的字符信息进行核对。当在核对结果中,读出的字符信息与"ma"的字符信息一致时,核对单元17将自动机的状态转变为状态(3)。另外,核对单元17将读出的字符信息与转换条件2(从状态(2)转换为状态(1)的条件)的七的字符信息进行核对。当在核对结果中,读出的字符信息与七的字符信息一致时,核对单元17将自动机的状态转变为状态(1)。当在核对结果中,读出的字符信息既不与转换条件1一致,也不与转换条件2一致时,核对单元17将自动机的状态返回至初始状态(0)。当自动机的状态转变为状态(3)时,核对单元17确定字符信息是否满足状态(3)下的转换条件。即,核对单元17将转换为状态(3)之后从文件Fi读取的字符信息与转换条件1(从状态(3)转换为状态(4)的条件)的"tsu"的字符信息进行核对。当在核对结果中,读出的字符信息与"tsu"的字符信息一致时,核对单元17将自动机的状态转变为状态(4)。另外,核对单元17将读出的字符信息与转换条件2(从状态(3)转换为状态(1)的条件)的七的字符信息进行核对。当在核对结果中,读出的字符信息与七的字符信息一致时,核对单元17将自动机的状态转变为状态(1)。当在核对结果中,读出的字符信息既不与转换条件1一致,也不与转换条件2一致时,核对单元17将自动机的状态返回至初始状态(0)。当自动机的状态转变为状态(4)时,核对单元17确定字符信息是否满足状态(4)下的转换条件。即,核对单元17将转换为状态(4)之后从文件Fi读取的字符信息与转换条件1(从状态(4)转换为状态(F)的条件)的"ri"的字符信息进行核对。当在核对结果中,读出的字符信息与"ri"的字符信息一致时,核对单元17将自动机的状态转变为状态(F)。另外,核对单元17将读出的字符信息与转换条件2(从状态(4)转换为状态(1)的条件)的七的字符信息进行核对。当在核对结果中,读出的字符信息与七的字符信息一致时,核对单元17将自动机的状态转变为状态(1)。当在核对结果中,读出的字符信息既不与转换条件1一致,也不与转换条件2一致时,核对单元17将自动机的状态返回至初始状态(0)。当自动机的状态转变为状态(F)时,核对单元17将这样的信息存储在存储单元12中,该信息使得在转换为状态(F)时读取的字符信息能够被指定。例如,存储在存储单元12中的信息是与检索字符串一致的字符串在文件Fi中的位置。例如,指示文件Fi中的位置的信息可以是从开始读出文件Fi到转换为状态(F)为止读取的字符信息的条数。核对单元17按照上述过程顺序地执行自动机的状态转换的确定。因此,当核对单元17按照七→夕→"ma"→"tsu"→"ri"的顺序从文件Fi连续读出字符信息时,核对单元17确定包括了检索字符串“七夕"ma""tsu""ri"”。现在更详细地描述由核对单元17执行的自动机的各个状态转换的确定。图3示出图2的模型示图中所示的自动机的数据配置(表T1)。图3所示的表T1指示在图2所示的自动机的各个状态是转换源状态的情况下的转换目标状态和转换条件。在表T1中,转换条件1和转换目标状态1的组合、转换条件2和转换目标状态2的组合以及转换目标状态3与各个转换源状态关联。例如,当自动机的状态为初始状态(0),并且满足转换条件1(在图2的示例中为七)时,自动机的状态转变为转换目标状态1。另外,当满足转换条件2时,自动机的状态转变为转换目标状态2。当既不满足转换条件1,也不满足转换条件2时,自动机的状态转变为转换目标状态3。通过生成单元14的处理生成表T1。当接收单元13接收到检索字符串时,生成单元14根据包括在检索字符串中的各条字符信息的顺序生成图3所示的表T1,以将表T1存储在存储单元12中。图4示出指示状态的状态信息的示例。状态信息被存储在图4所示的存储区域R0中。存储区域R0可以是存储单元12中设置的存储区域,或者是检索单元11中包括的寄存器中的存储区域。例如,假设存储区域R0是由地址"000"指示的存储区域。在使用多条状态信息的情况下,使用与存储区域R0毗邻的存储区域R1(例如,由与通过使存储区域R0的地址递增而获得的值对应的地址"001"指示的存储区域)。核对单元17通过参照存储在存储单元12中的表T1以及存储在存储区域中的状态信息来执行核对(已参照图2的模型示图进行了描述)。例如,核对单元17通过参照存储区域R0获取状态信息,并从存储在存储单元12中的表T1提取这样的记录:其中,所获取的状态信息中指示的状态被设置为转换源状态。随后,核对单元17从文件Fi获取字符信息,并确定获取的字符信息是否满足所提取的记录中指示的转换条件。另外,当所获取的字符信息满足转换条件时,核对单元17将存储在存储区域R0中的状态信息更新为指示与所满足的转换条件对应的转换目标状态的状态信息。当所获取的字符信息不满足转换条件时,核对单元17将存储在存储区域R0中的状态信息更新为指示初始状态(0)的状态信息。当核对单元17开始核对文件Fi时,核对单元17首先在存储区域R0中保存指示初始状态(0)的状态信息。例如,当存储区域R0中保存的信息指示初始状态(0),并且核对单元17从文件Fi读出七的字符信息时,核对单元17将保存在存储区域R0中的状态信息从指示初始状态(0)的状态信息更新为指示状态(1)的状态信息。当指示状态(F)的状态信息保存在存储区域R0中时,核对单元17确定与检索字符串“七夕"ma""tsu""ri"”一致,并将指示文件Fi中与检索字符串一致的部分的信息存储在存储单元12的表T2中。图5示出表T2。表T2将用于标识文件Fi(包括与检索字符串一致的字符信息)的信息与指示文件中的位置的信息关联。现在描述在核对单元17接收到来自检测单元16的通知的情况下核对单元17的控制。在由核对单元17执行的从文件Fi读出字符信息的过程中,检测单元16确定文档数据中是否包括以多种表述显示具有一个含义的字符信息的指定。例如,所述指定是可扩展超文本标记语言(xhtml)等中的<ruby>标签、<rb>、<rt>等,其为指定读音表述的标签信息。在使用xhtml的文档数据中,在插于<ruby>标签之间的范围内,插于<rb>标签之间的字符信息被写为亲字符,插于<rt>标签之间的字符信息被写为读音字符。例如,当检测单元16检测到<rb>标签时,检测单元16通知核对单元17检测到<rb>标签。当核对单元17接收到所述通知,并检测到<rb>标签是从文件Fi读出时,例如,核对单元17复制保存在存储区域R0中的状态信息,并使得存储区域R1能够保存所述状态信息。另外,核对单元17针对通过复制获得的一条状态信息(存储在存储区域R0中)通过读音的亲字符(插于<rb>标签之间的字符信息)反映自动机转换,针对通过复制获得的另一条状态信息(存储在存储区域R1中)通过读音字符(插于<rt>标签之间的字符信息)反映自动机转换。例如,假设在状态信息指示初始状态(0)时从文件Fi读取描述D1。另外,假设检索字符串为“七夕"ma""tsu""ri"”。图6示出在读出描述D1的情况下存储区域R0至R5的时间序列变化。首先,假设在读出描述D1之前,存储在存储区域R0中的状态信息为“0”,存储在存储区域R0至R5中的信息如(S1)所示。当核对单元17接收到来自检测单元16的通知,并检测到<rb>标签时,核对单元17将存储在存储区域R0中的状态信息存储在存储区域R1中。在这种情况下,存储在存储区域R0至R5中的信息如(S2)所示。例如,根据作为复制源的存储区域以及复制的重复次数来确定要作为复制目标的存储区域。当核对单元17复制存储在存储区域R0中的状态信息时,由于第一次复制,核对单元17将存储在存储区域R0中的状态信息复制到存储区域R1(由地址"001"指示)上。在这种情况下,地址的最低数位的值为"0"的存储区域是复制源,地址的最低数位的值为"1"的存储区域是复制目标。当进一步执行复制时,由于第二次复制,地址的次低数位的值为"0"的存储区域(由诸如000和001的地址指示的存储区域)的状态信息被复制到地址的次低数位的值为"1"的存储区域(由诸如010和011的地址指示的存储区域)上。上述寻址使得即使多次检测到<rb>标签时,也能够通过插于<rb>标签之间的字符信息的核对以及插于<rt>标签之间的字符信息的核对来切换反映核对结果的存储区域。例如,核对单元17在第一次检测到<rb>标签时根据地址的最低数位的值"0"或"1"切换存储区域,在第二次检测到<rb>标签时,根据地址的次低数位的值"0"或"1"切换存储区域。随后,核对单元17参照存储区域R0(由地址"000"指示)的状态信息和自动机(表T1),以读出转换条件。另外,核对单元17确定从文件Fi的插于<rb>标签之间的范围读取的开头字符七是否满足该转换条件。在这种情况下,检索字符串为“七夕"ma""tsu""ri"”,从文件Fi读取的开头字符为七,使得存储在存储区域R0中的状态信息从初始状态(0)更新为状态(1)。另外,核对单元17确定在七之后读取的夕是否满足从状态(1)转换为状态(2)的条件。在这种情况下,夕满足从状态(1)转换为状态(2)的条件,使得核对单元17将存储在存储区域R0中的状态信息更新为指示状态(2)的状态信息。在这种情况下存储在存储区域R0至R5中的信息如(S3)所示。核对单元17在夕的处理之后针对插于<rt>标签之间的"ta"执行核对。核对单元17参照存储区域R1(由地址"001"指示)以及表T1,以读出转换条件。读出的字符信息"ta"与转换为状态(1)的条件七不一致,使得存储在存储区域R1中的状态信息仍为初始状态(0)。当核对单元17从文件Fi读出"na"、"ba"和"ta"中的任一个时,与"ta"的情况一样,核对单元17将存储在存储区域R1中的状态信息保持为初始状态(0)。在这种情况下存储在存储区域R0至R5中的信息如(S4)所示。然后,检测单元16检测<rb>标签的读出,核对单元17进一步复制状态信息。例如,存储在存储区域R0中的状态信息被复制到存储区域R2(由地址"010"指示)上,存储在存储区域R1中的状态信息被复制到存储区域R3(由地址"011"指示)上。在这种情况下存储在存储区域R0至R5中的信息如(S5)所示。随后,核对单元17针对存储在地址的第二数位为"0"的存储区域(存储区域R0和存储区域R1)中的各个状态信息基于插于<rb>标签之间的字符信息祭执行转换。存储在存储区域R0中的状态信息指示状态(2),使得转换条件与"ma"一致。读出的字符为祭,与"ma"不一致,使得存储在存储区域R0中的状态信息被更新为状态(0)。存储在存储区域R1中的状态信息指示初始状态(0),与转换条件七不一致,使得存储区域R1的状态信息仍为初始状态(0)。在这种情况下存储在存储区域R0至R5中的信息如(S6)所示。另外,核对单元17针对存储在地址的第二数位为"1"的存储区域(存储区域R2和存储区域R3)中的各个状态信息基于插于<rt>标签之间的字符信息"ma"执行转换。存储在存储区域R2中的状态信息指示状态(2),使得转换条件与"ma"一致。读出的字符为"ma",使得存储在存储区域R2中的状态信息被更新为状态(3)。存储在存储区域R3中的状态信息指示初始状态(0),与转换条件七不一致,使得存储区域R3的状态信息仍为状态(0)。另外,核对单元17针对存储在存储区域R2和存储区域R3中的各个状态信息基于字符信息"tsu"执行转换。存储区域R2的状态信息指示状态(3),使得转换条件与"tsu"一致。读出字符信息"tsu",使得核对单元17将存储区域R2的状态信息更新为状态(4)。存储区域R3的状态信息指示状态(0),并且不满足转换条件七,使得核对单元17将存储在存储区域R3中的状态信息保持为状态(0)。在这种情况下存储在存储区域R0至R5中的信息如(S7)所示。当核对单元17检测到读出结束读音表述(</ruby>)的指定时,核对单元17释放存储多条状态信息当中的重叠的状态信息的存储区域。在上述示例中,存储在存储区域R0中的状态信息、存储在存储区域R1中的状态信息以及存储在存储区域R3中的状态信息指示状态(0),因而重叠。例如,核对单元17释放存储区域R1和存储区域R3。另外,核对单元17针对从文件Fi读取的字符信息继续核对。当读出字符信息"ri"时,核对单元17针对存储在存储区域R0和存储区域R2中的各个状态信息执行转换。存储在存储区域R0中的状态信息指示状态(0)。从状态(0)转换为状态(1)的条件为七。字符信息"ri"不对应于七,使得核对单元17将存储在存储区域R0中的状态信息保持为状态(0)。存储在存储区域R2中的状态信息指示状态(4)。从状态(4)转换为状态(F)的条件为"ri",并且满足该转换条件,使得核对单元17将存储在存储区域R2中的状态信息更新为状态(F)。在这种情况下存储在存储区域R0至R5中的信息如(S8)所示。存在这种情况:文档数据包括指定针对具有相同含义的语言单元提供多种表述的一系列部分,例如“七夕..."ta""na""ba""ta"...祭..."ma""tsu"..."ri"”。在显示上,提供有多种表述的部分被读取为“七夕祭"ri"”、“"ta""na""ba""ta"祭"ri"”、“七夕"ma""tsu""ri"”或“"ta""na""ba""ta""ma""tsu""ri"”。然而,文档数据包括“七夕..."ta""na""ba""ta"...祭..."ma""tsu"..."ri"”,使得“七夕祭"ri"”、“"ta""na""ba""ta"祭"ri"”、“七夕"ma""tsu""ri"”和“"ta""na""ba""ta""ma""tsu""ri"”均不对应于“七夕..."ta""na""ba""ta"...祭..."ma""tsu"..."ri"”。在上述核对中,在提供有多种表述的连续部分当中,针对指定了亲字符表述的字符信息“七夕”(前面的部分)的末尾(例如,夕)以及指定了读音字符表述的字符信息“"ma""tsu""ri"”(后面的部分)的开头(例如,"ma")连续(例如,“夕"ma"”)的字符信息执行核对。因此,即使诸如“"ta""na""ba""ta"”和祭的字符信息存在于“七夕..."ta""na""ba""ta"...祭..."ma""tsu"..."ri"”之间,也可进行核对并提取“七夕"ma""tsu""ri"”作为连续的字符信息。关于上述末尾和开头,指定了亲字符表述的字符信息(前面的部分)和指定了读音字符表述的字符信息(后面的部分)连续就足够了。因此,字符数量不受限制。根据上述核对,即使执行与混合有多种类型的表述的检索字符串(例如,“七夕"ma""tsu""ri"”)的核对,也可提供一致确定。根据实施方式的一个方面,可防止在指定提供多种类型的表述的字符信息以及在基于提供多种表述的指定显示时顺序地显示字符信息的核对字符串的情况下,确定核对字符串与指定提供多种类型的表述的字符信息彼此不一致。图7示出包括计算机1的系统配置。图7所示的系统包括计算机1、计算机2、存储装置3和网络4。文件组F1至Fn被存储在计算机1的存储单元12中,但是例如,文件组F1至Fn可以存储在经由网络4连接的存储装置3中。在这种情况下,读出单元15不是从存储单元12而是从存储装置3读出文件组F1至Fn。图8示出计算机1的硬件配置示例。例如,图1所示的各个功能块通过图8所示的硬件配置来实现。例如,计算机1包括处理器301、随机存取存储器(RAM)302、只读存储器(ROM)303、驱动装置304、存储介质305、输入接口(I/F)306、输入装置307、输出接口(I/F)308、输出装置309、通信接口(I/F)310和总线311。各个硬件经由总线311彼此连接。通信I/F310对经由网络4的通信执行控制。输入接口306与输入装置307连接,并将从输入装置307接收到的输入信号发送给处理器301。输出接口308与输出装置309连接,并使得输出装置309能够执行与处理器301的指令对应的输出。RAM302是可读写的存储装置,例如,是诸如静态RAM(SRAM)和动态RAM(DRAM)的半导体存储器。可使用闪存来代替RAM。ROM303还包括可编程ROM(PROM)等。驱动装置304对存储在存储介质305中的信息执行读取和写入中的至少一个。存储介质305存储由驱动装置304写入的信息。例如,存储介质305是诸如硬盘、压缩盘(CD)、数字多功能盘(DVD)和蓝光光盘的存储介质。例如,计算机1还包括用于多种类型的存储介质中的每一种的驱动装置304和存储介质305。输入装置307根据操作发送输入信号。例如,输入装置307是附接到计算机1的机身的诸如键盘和按钮的键装置以及诸如鼠标和触摸面板的指点装置。输出装置309根据计算机1的控制输出信息。例如,输出装置309是诸如显示器的图像输出装置(显示装置)、诸如扬声器的音频输出装置等。另外,例如,诸如触摸屏的输入/输出装置被用作输入装置307和输出装置309。另选地,例如,输入装置307和输出装置309可不包括在计算机1中,而可以是从外部连接至计算机1的装置。处理器301将存储在ROM303和存储介质305中的程序读出到RAM302上,并根据读出的程序的过程执行检索单元11的处理。此时,RAM302被用作处理器301的工作区域。存储单元12的功能被实现为使得ROM303和存储介质305存储程序和文件组F1至Fn,并且RAM302被用作处理器301的工作区域。参照图9描述由处理器301读出的程序。图9示出在计算机1中操作的软件的配置示例。控制图9所示的硬件组21的操作系统(OS)22在计算机1中操作。处理器301按照根据OS22的过程操作,以控制并管理硬件21。因此,通过应用程序和中间件的处理由硬件21执行。另外,在计算机1中,将检索处理程序23读出到RAM302上,以由处理器301执行。另外,处理器301基于检索处理程序23执行处理(通过根据OS22控制硬件21来执行该处理),从而实现检索单元11的功能。图10示出由检索单元11执行的检索处理的流程。当检索处理程序23启动时(S100),检索单元11执行预处理(S101)。例如,此预处理确保用于表T1和表T2的存储区域、获取由读出单元15读出的文件组F1至Fn的文件列表等。接收单元13确定是否存在检索请求(S102)。当接收单元13未接收到检索请求时(S102:否),接收单元13重复所述确定,直到接收单元13接收到检索请求为止。当接收单元13接收到检索请求时,生成单元14生成自动机,该自动机用于检索字符串与文件组F1至Fn中包括的字符串之间的核对(S103)。图11示出生成单元14基于检索字符串生成自动机的流程的示例。图11所示的流程可用于检索字符串不包括字符信息重复的部分的情况,类似“七夕"ma""tsu""ri"”。例如,诸如“"de""n""de""n""mushi"”("de"、"n"、"de"和"n"各自表示原说明中的一个平假名字符,"mushi"表示一个中文字符)的字符串包括重复的字符信息(“"de""n"”重复)。当针对检索字符串“"de""n""de""n""mushi"”生成自动机时,使用与图11中不同的流程。在使用图11所示的流程时核对对象中包括诸如“..."de""n""de""n""de""n""mushi"...”的字符串的情况下,状态转变直至“"de""n""de""n"”,并且后续的"de"与"mushi"不一致。因此,生成使状态返回至初始状态的自动机。如果状态返回至初始状态,则剩余字符串“"de""n""mushi"”与“"de""n""de""n""mushi"”不一致。根据以上描述,可使用另一流程来处理包括诸如“"de""n""de""n""mushi"”的重复字符信息的检索字符串。生成单元14响应于接收单元13的检索请求接收来开始处理(S200)。生成单元14首先从由接收单元13接收到的检索请求获取检索字符串(S201)。然后,生成单元14对所获取的检索字符串的长度N进行计数(S202)。生成单元14从0至N-1顺序地选择整数i,并重复地执行从S204至S210的处理(S203)。生成单元14向表T1添加一条记录(S204)。生成单元14将S204中生成的记录的转换源状态设置为S203中选择的整数"i"(S205)。另外,生成单元14将S204中生成的记录的转换条件设置为S201中获取的检索字符串的第i+1个字符(S206)。随后,生成单元14确定整数i是否为N-1(S207)。当整数i为N-1时(S207:是),S204中生成的记录的转换目标状态1被设置为"F(指示核对完成的信息)"(S208)。当整数i不为N-1(S207:否),生成单元14将S204中生成的记录的转换目标状态1设置为"i+1"(S209)。另外,生成单元14将S204中生成的记录的转换条件2设置为检索字符串中的第一个字符,将转换目标状态2设置为1,将转换目标状态3设置为"0"(S210)。在S210的处理之后,生成单元14确定i是否为N-1。当i不为N-1时,生成单元14在S203中选择下一整数,并执行从S204至S210的处理(S211)。当i为N-1时,生成单元14结束自动机生成处理(S212),执行图10所示的剩余检索处理流程。描述图10所示的剩余检索处理流程。当通过生成单元14的处理生成自动机时(S103),读出单元15从文件组F1至Fn中选择一个文件(S104)。读出单元15从存储单元12读出在S104中选择的文件Fi(S105)。当执行S105时,检测单元16和核对单元17针对文件Fi中的字符信息基于由生成单元14生成的自动机执行核对。图12A和图12B示出由核对单元17执行的核对的流程。当开始核对时(S300),核对单元17从文件Fi读出数据(S301)。例如,数据读出单位是标签信息单位、一个字符的字符信息单位等。随后,核对单元17确定在S301中读出的数据是否不为标签信息(S302)。当在S301中读出的数据是标签信息时(S302:否),检测单元16确定读出的标签信息是否为<rb>标签(S313)。当读出的标签信息是<rb>标签时(S313:是),核对单元17复制存储在存储区域中的状态信息(S314)。如上所述,复制目标的地址由复制的重复次数和复制源的地址来指定。另外,核对单元17存储复制的重复次数(S315)。核对单元17确认复制重复次数,并将存储区域的地址当中的地址的距最低数位达重复次数的数位为"0"的存储区域中的状态信息设置为选择对象(S316)。即,就在之前执行的S314的复制中的复制源的状态信息是选择对象。当读出的标签信息不是<rb>标签时(S313:否),核对单元17确定读出的标签信息是否为<rt>标签(S317)。当读出的标签信息是<rt>标签时(S317:是),核对单元17确认复制重复次数,并将存储区域的地址当中的地址的距最低数位达重复次数的数位为"1"的存储区域中的状态信息设置为选择对象(S318)。当执行S316或S318的处理时,再次执行S301的数据读出处理。当读出的标签信息不是<rt>标签时(S317:否),核对单元17确定读出的标签信息是否为</ruby>标签(S319)。当读出的标签信息是</ruby>标签时(S319:是),将存储在存储区域中的所有状态信息设置为选择对象(S320)。在S320中,核对单元17还设置指示重叠的状态信息的删除许可的标志。在稍后描述的S310中参照此标志。当读出的标签信息不是</ruby>标签时(S319:否),核对单元17使数据读出的位置前进直至与读出的标签对应的结束标签(S321)。当在S301中核对单元17未读出标签信息,而是读出字符信息时,核对单元17选择作为选择对象的状态信息当中的一条状态信息(S303)。作为选择对象的状态信息是在开始核对时存储在存储区域R0中的状态信息。在S314的处理中复制状态信息之后,通过S316或S318的处理来指定要作为选择对象的状态信息。当在S303中核对单元17选择状态信息时,核对单元17对读出的字符信息执行核对,并更新选择的状态信息(S304)。如上所述,执行此更新,使得核对单元17从表T1获取转换源状态为所选择的状态信息的记录,并将与是否满足包括在所获取的记录中的转换条件对应的转换目标状态存储在存储有所选择的状态信息的存储区域中。当在S304中更新状态信息时,核对单元17确定在S304中更新的状态信息是否指示"F"(S305)。"F"表示指示自动机的终点的状态。当在S305的确定中状态信息为"F"时(S305:是),将文件Fi的标识信息以及指示S301中读出的字符信息在文件中的位置的信息存储在表T2中(S306)。在S306的处理之后,核对单元17还将更新的状态信息更新为初始状态(0)(S307)。当在S305的确定中状态信息不为"F"时(S305:否),或者当执行S307的处理时,核对单元17确定作为选择对象的状态信息当中是否存在未被选择的状态信息。当存在未被选择的状态信息时,核对单元17再次执行S303的处理,以选择未被选择的状态信息(S308)。在不存在未被选择的状态信息的情况下,核对单元17执行S309的处理。核对单元17确定存储在存储区域中的状态信息当中是否存在以重叠的方式指示相同状态信息的状态信息(S309)。当存在重叠的状态信息时(S309:是),核对单元17确认是否通过S320的处理设置了指示重叠的状态信息的删除许可的标志。当设置了指示删除许可的标志时,核对单元17释放存储有重叠的状态信息的存储区域,并且还将重叠的状态信息从作为选择对象的状态信息中移除(S310)。另外,当通过S310的处理,状态信息的条数变得仅为一条时,核对单元17清除指示删除许可的标志。当在S309的处理中不存在重叠的状态信息时(S309:否),或者当执行S310的处理时,核对单元17确定是否存在要从文件Fi读取的字符信息(S311)。当文件Fi中存在要读出的字符信息时(S311:是),核对单元17再次执行S301的处理。当文件Fi中不存在要读出的字符信息时(S311:否),核对结束,执行图10所示的检索处理流程(S312)。描述图10所示的剩余检索处理流程。当S106的核对结束时,读出单元15确定文件组F1至Fn中是否存在未选择的文件。当存在未选择的文件时,读出单元15再次执行S104的处理(S107)。当不存在未选择的文件时,输出单元18输出由核对单元17获得的核对结果(S108)。例如,核对结果的输出是存储在表T2中的信息的显示。另外,包括表T2的各个记录中指示的部分附近的字符信息可被读出以进行显示。另外,文件组F1至Fn的各个文件与指示文件的存储目标的地址信息可预先彼此关联,以输出与存储在表T2中的文件ID关联的地址信息。当S108的处理结束时,检索单元11确定是否给出检索处理程序23的结束指令(S109)。当未给出结束指令时(S109:否),接收单元13再次执行S102的处理。当给出结束指令时(S109:是),检索单元11结束检索处理程序23(S110)。根据上述处理,可从作为检索对象的文档数据提取包括亲字符部分和读音字符部分二者的字符串,作为与检索字符串一致的字符串。在以上描述中,响应于<rb>标签的检测来复制状态信息。然而,状态信息的复制的引发因素可根据要使用的语言而任意改变。可应用任何复制引发因素,只要在指定通过具有一个含义的多种类型的字符信息的表述中,该引发因素指示多种类型的字符信息的枚举的开始即可。例如,在不使用<rb>标签的情况下,插于<ruby>标签之间但未插于<rt>标签之间的字符被设置为亲字符的语法中,响应于<ruby>标签的检测复制状态信息就足够了。上面描述了显示中文字符的读音的示例,但是实施方式不限于此示例。可针对片假名字符提供读音,可为中文中的中文字符的表述提供拼音。另外,读音用于英语,实施方式的上述示例适用于英语。例如,BIOS(基本输入/输出系统)通常通过诸如<ruby><rb>B</rb><rp>(</rp><rt>BASIC</rt><rp>)</rp><rb>I</rb><rp>(</rp><rt>INPUT/</rt><rp>)</rp><rb>O</rb><rp>(</rp><rt>OUTPUT</rt><rp>)</rp><rb>S</rb><rp>(</rp><rt>SYSTEM</rt><rp>)</rp></ruby>的描述(描述D2)来表示。例如,"BIOS"、"BASICINPUT/OUTPUTSYSTEM"或"BASICIOSYSTEM"可输入作为检索字符串。图13A示出与检索字符串"BIOS"对应的自动机。初始状态(0)下的转换条件1(对应转换目标状态1为"1")为"B"。状态(1)下的转换条件1(对应转换目标状态1为"2")为"I",转换条件2(对应转换目标状态2为"1")为"B"。状态(2)下的转换条件1(对应转换目标状态1为"3")为"O",转换条件2(对应转换目标状态2为"1")为"B"。状态(3)下的转换条件1(对应转换目标状态为"F")为"S",转换条件2(对应的转换目标状态为"1")为"B"。图13B示出与"BASICIOSYSTEM"对应的自动机。初始状态(0)下的转换条件1(对应转换目标状态1为"1")为"B"。状态(1)下的转换条件1(对应转换目标状态1为"2")为"A",转换条件2(对应转换目标状态2为"1")为"B"。状态(2)下的转换条件1(对应转换目标状态1为"3")为"S",转换条件2(对应转换目标状态2为"1")为"B"。状态(3)下的转换条件1(对应转换目标状态1为"4")为"I",转换条件2(对应转换目标状态2为"1")为"B"。状态(4)下的转换条件1(对应转换目标状态1为"5")为"C",转换条件2(对应转换目标状态2为"1")为"B"。状态(5)下的转换条件1(对应转换目标状态1为"6")为"I",转换条件2(对应转换目标状态2为"1")为"B"。状态(6)下的转换条件1(对应转换目标状态1为"7")为"O",转换条件2(对应转换目标状态2为"1")为"B"。状态(7)下的转换条件1(对应转换目标状态1为"8")为"S",转换条件2(对应转换目标状态2为"1")为"B"。状态(8)下的转换条件1(对应转换目标状态1为"9")为"Y",转换条件2(对应转换目标状态2为"1")为"B"。状态(9)下的转换条件1(对应转换目标状态1为"10")为"S",转换条件2(对应转换目标状态2为"1")为"B"。状态(10)下的转换条件1(对应转换目标状态1为"11")为"T",转换条件2(对应转换目标状态2为"1")为"B"。状态(11)下的转换条件1(对应转换目标状态1为"12")为"E",转换条件2(对应转换目标状态2为"1")为"B"。状态(12)下的转换条件1(对应转换目标状态1为"F")为"M",转换条件2(对应转换目标状态2为"1")为"B"。图14A和图14B示出"BIOS"是否与描述D2一致的核对过程。核对单元17基于图13A所示的自动机更新存储在存储区域中的状态信息。假设在读出描述D2之前仅指示初始状态(0)的状态信息存储在存储区域0000中(S1)。当核对单元17从文件Fi读出<rb>标签时,核对单元17将存储在存储区域0000中的状态信息复制到存储区域0001上(S2)。这里,核对单元17将重复次数d设置为"1"。然后,当核对单元17读出"B"时,核对单元17根据图13A所示的自动机更新存储在存储区域0000中的状态信息。从初始状态(0)转换为状态(1)的条件为"B",使得存储在存储区域0000中的状态信息为状态(1)(S3)。当核对单元17读出<rt>时,核对单元17将更新对象的存储区域转变至存储区域0001。核对单元17响应于"B"、"A"、"S"、"I"和"C"中的每一个的读出更新存储在存储区域0001中的状态信息。结果,存储区域0001的状态信息被更新为初始状态(0)(S4)。当核对单元17从文件Fi读出<rb>标签时,核对单元17将存储在存储区域0000和存储区域0001中的状态信息分别复制到存储区域0010和存储区域0011上(S5)。这里,核对单元17将重复次数d设置为"2"。随后,当核对单元17读出"I"时,核对单元17根据图13A所示的自动机更新存储在存储区域0000中的状态信息。从状态(1)转换为状态(2)的条件为"I",使得存储在存储区域0000中的状态信息变为处于状态(2)。另外,从初始状态(0)转换为状态(1)的条件为"B",使得存储在存储区域0001中的状态信息为初始状态(0)(S6)。当核对单元17读出<rt>时,核对单元17将更新对象的存储区域转变至存储区域0010和存储区域0011。核对单元17响应于"I"、"N"、"P"、"U"、"T"和"/"中的每一个的读出更新存储在存储区域0010和存储区域0011中的状态信息。结果,存储区域0010和存储区域0011的状态信息被更新为初始状态(0)(S7)。当核对单元17从文件Fi读出<rb>标签时,核对单元17将存储在存储区域0000至0011中的状态信息分别复制到存储区域0100至0111上(S8)。这里,核对单元17将重复次数d设置为"3"。随后,当核对单元17读出"O"时,核对单元17根据图13A所示的自动机更新存储在存储区域0000中的状态信息。从状态(2)转换为状态(3)的条件为"O",使得存储在存储区域0000中的状态信息为状态(3)。另外,从初始状态(0)转换为状态(1)的条件为"B",使得存储在存储区域0001至0011中的状态信息为初始状态(0)(S9)。当核对单元17读出<rt>时,核对单元17将更新对象的存储区域转变至存储区域0100至0111(S10)。核对单元17响应于"O"、"U"、"T"、"P"、"U"和"T"中的每一个的读出更新存储在存储区域0100至0111中的状态信息。结果,存储区域0100至0111的状态信息被更新为初始状态(0)(S11)。当核对单元17从文件Fi读出<rb>标签时,核对单元17将存储在存储区域0000至0111中的状态信息分别复制到存储区域1000至1111上(S12)。这里,核对单元17将重复次数d设置为"4"。随后,当核对单元17读出"S"时,核对单元17根据图13A所示的自动机更新存储在存储区域0000中的状态信息。从状态(3)转换为状态(F)的条件为"S",使得存储在存储区域0000中的状态信息为状态(F)。另外,从初始状态(0)转换为状态(1)的条件为"B",使得存储在存储区域0001至0111中的状态信息为初始状态(0)(S13)。存储在存储区域0000中的状态信息指示状态(F),使得核对单元17确定描述D2包括"BIOS"。图15示出"BASICIOSYSTEM"是否与描述D2一致的核对过程。核对单元17基于图13B所示的自动机更新存储在存储区域中的状态信息。响应于从文件Fi读出<rb>标签,核对单元17将存储在存储区域0000中的状态信息复制到存储区域0001上(S1)。这里,核对单元17将重复次数d设置为"1"。随后,当核对单元17顺序地读出"B"、"A"、"S"、"I"和"C"时,核对单元17根据图13B所示的自动机更新存储在存储区域0001中的状态信息。从初始状态(0)转换为状态(1)的条件为"B",使得存储在存储区域0001中的状态信息为状态(1)。另外,"A"、"S"、"I"和"C"中的每一个满足图13B所示的自动机中表示的转换条件,使得存储在存储区域0001中的状态信息为状态(5)(S2)。当核对单元17从文件Fi读出<rb>标签时,核对单元17将存储在存储区域0000和存储区域0001中的状态信息分别复制到存储区域0010和存储区域0011上(S3)。这里,核对单元17将重复次数d设置为"2"。随后,当核对单元17读出"I"时,核对单元17根据图13B所示的自动机更新存储在存储区域0000和存储区域0001中的状态信息。从状态(5)转换为状态(6)的条件为"I",使得存储在存储区域0001中的状态信息为状态(6)。另外,从状态(1)转换为状态(2)的条件为"A",使得存储在存储区域0000中的状态信息为初始状态(0)(S4)。当核对单元17读出<rt>时,核对单元17将更新对象的存储区域转变至存储区域0010和存储区域0011。核对单元17响应于"I"、"N"、"P"、"U"、"T"和"/"中的每一个的读出更新存储在存储区域0010和存储区域0011中的状态信息。结果,存储区域0010和存储区域0011的状态信息被更新为初始状态(0)(S5)。当核对单元17从文件Fi读出<rb>标签时,核对单元17将存储在存储区域0000至0011中的状态信息分别复制到存储区域0100至0111上(S6)。这里,核对单元17将重复次数d设置为"3"。随后,当核对单元17读出"O"时,核对单元17根据图13B所示的自动机更新存储在存储区域0000至0011中的状态信息。从状态(6)转换为状态(7)的条件为"O",使得存储在存储区域0001中的状态信息为状态(7)。另外,从初始状态(0)转换为状态(1)的条件为"B",使得存储在存储区域0000、0010和0011中的状态信息变为处于初始状态(0)(S7)。当核对单元17读出<rt>时,核对单元17将更新对象的存储区域转变至存储区域0100至0111。核对单元17响应于"O"、"U"、"T"、"P"、"U"和"T"中的每一个的读出更新存储在存储区域0100至0111中的状态信息。结果,存储区域0100至0111的状态信息被更新为初始状态(0)(S8)。当核对单元17从文件Fi读出<rb>标签时,核对单元17将存储在存储区域0000至0111中的状态信息分别复制到存储区域1000至1111上(S9)。这里,核对单元17将重复次数d设置为"4"。随后,当核对单元17读出"S"时,核对单元17根据图13B所示的自动机更新存储在存储区域0000至0111中的状态信息。从状态(3)转换为状态(8)的条件为"S",使得存储在存储区域0001中的状态信息为状态(8)。另外,从初始状态(0)转换为状态(1)的条件为"B",使得存储在存储区域0000和0010至0111中的状态信息为初始状态(0)(S10)。当核对单元17读出<rt>时,核对单元17将更新对象的存储区域转变至存储区域1000至1111。核对单元17响应于"S"、"Y"、"S"、"T"、"E"和"M"中的每一个的读出更新存储在存储区域1000至1111中的状态信息。"S"、"Y"、"S"、"T"、"E"和"M"满足从状态(8)至状态(F)的各个转换条件,使得存储在存储区域1001中的状态信息为状态(F)。另外,从初始状态(0)转换为状态(1)的条件为"B",使得存储在存储区域1000以及1010至1111中的状态信息变为初始状态(0)(S11)。存储在存储区域1001中的状态信息指示状态(F),使得核对单元17确定描述D2与"BASICIOSYSTEM"一致。上述实施方式的应用使得能够在检索字符串为"BIOS"、"BASICINPUT/OUTPUTSYSTEM"或"BASICIOSYSTEM"中的任意情况下提取描述D2作为与检索字符串一致的字符信息。本文详述的所有示例和条件语言旨在用于教导目的以帮助读者理解本发明以及发明人为技术进步贡献的构思,并且应被解释为不限于这些具体详述的示例和条件,说明书中的这些示例的组织也不涉及展示本发明的优势和劣势。尽管已经详细描述了本发明的实施方式,但是应该理解,在不脱离本发明的精神和范围的情况下,可对其进行各种改变、替换和更改。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1