近似比对装置、近似比对方法、程序及记录介质的制作方法

文档序号:6594567阅读:132来源:国知局
专利名称:近似比对装置、近似比对方法、程序及记录介质的制作方法
技术领域
本发明涉及为了从用自然语言记述的文章(输入字符串)中提取预先给予的关键 字,而对输入字符串和规定的关键字进行比对,输出一致的关键字和其出现位置的技术。
背景技术
<关键字提取>关键字提取是从用自然语言记述的输入字符串中提取如词典那样的预先列入表 中的关键字的任务。例如,考虑从图1所示的输入字符串中提取涉及奥运会的关键字。这种情况下,通 过进行如图2所示那样的、作为想提取的关键字预先通过手工列入表中的关键字集合(以 下,称为关键字词典)中的各关键字是否包含在上述输入字符串中的比对,进行提取。但是,存在以下问题1.因为输入字符串是由手工记述(输入)的字符串,所以包含错字和漏字、或者使 用与设想的关键字稍有不同的表现是常有的事;2.如果关键字数量增多,则快速提取变得困难,处理大量的输入字符串需要时间。当从图1的输入字符串中提取图2的关键字词典中的各关键字的情况下,·在语句2中,因错字的原因,“才'J W” ”变成“才乂 >匕°夕夕”; 在语句3、4中,因为“男子IOOm平泳各‘”记述成“男子O IOOm平泳各‘”,“金乂夕· 记述成“ ^夕' >”,以稍有不同的表现来进行记述,所以,不能从语句2、3、4中提取关键
字,其结果,只能从语句1中提取关键字“才'J ^ ^”。现有技术(1)关键字的近似比对以往,作为关键字的近似比对方法使用标准表现。标准表现通过用有限自动机表 现想比对的关键字,从而可以从字符串中提取稍有不同的部分字符串。这在编程语言Perl 等中使用。例如,在Perl的情况下,通过将“才'J、…” ”这一关键词表现为/才.{1} > 匕。,夕,能够从图1的语句1中提取「才〗J >匕。夕夕」,从语句2中提取「才乂 >匕。夕夕」。但是,采用标准表现进行的关键字近似比对因为对每一个关键字重复进行比对, 所以需要花费与关键字数量成比例的时间,如果关键字的数量庞大则比对速度降低。因此, 在从大量文本提取全部关键字那样的任务中,存在花费处理时间的问题。另夕卜,在标准表现之外,还可以使用采用计算2个对象物间的相似度的 DP (Dynamic Programming,动态规划)的匹配法(参照非专利文献1),但是因为必须对每个 关键字进行DP匹配,所以存在关键字数量为大量的情况下处理速度显著下降的问题。(2)高速的完全一致比对其1,trie (特里)结构当关键字数量庞大的情况下,通过将关键字词典设置成trie结构(参照非专利文 献2),能够同时比对全部的关键字。trie结构是合并各关键字的共同前缀的树结构。在图 3中表示将图2的关键字词典设置成trie结构的词典(trie词典)的例子。关键字的各字符作为trie的枝表现。图中的“#”是表示关键字结尾的终端记号,能够在trie的节点上 为每个关键字保持不同的值。使用trie词典的关键字提取通过从输入字符串的开头开始一边一次移动一个字 符一边和trie词典进行比对来进行。而且,在本说明书以及权利要求书中,对于全部的字 符串,将字符串的最初的字符标记为第0个字符,将下一字符标记为第1个字符等。例如,字 符串的位置i是将该字符串的最初的字符设置为第0个字符的第i个字符的位置。此外, 在位置i等中的i是字符串的位置的值。进而,还有只用“字符串的位置”表示字符串的位 置的值的情况。图4表示采用trie结构的比对算法。在采用trie结构的比对中,如图4所示,对 于输入字符串全部的字符位置i,重复进行步骤si 步骤s5的处理。首先,将关键字比对位置j设置为0,通过将trie节点η设置成根节点进行初始 化(步骤si)。接着,进行在节点η的枝上是否有终端记号#的判定(步骤s2),如果有终 端记号#,则输出从根节点开始的路径上的所有枝标签、值、一致开始位置i (步骤s3)。在步骤s2的判定中,当在节点η的枝上没有终端记号#的情况下,进行在输入字 符串中的位置i+j的字符Ci+j是否在从trie节点η分叉的枝标签上的判定(步骤s4)。在步骤s4中,当字符Ci+j不在从trie节点η分叉的枝标签上的情况下,对输入字 符串的下一字符位置重复进行从步骤si开始的处理。在步骤s4中,当字符Ci+j在从trie 节点η分叉的枝标签上的情况下,将j设置成j+Ι,将η更新为该枝的顶端的节点并进入步 骤s2 (步骤s5)。例如,当将图1的语句1与图3的trie词典进行比对的情况下,如果从输入语句 的第6个字符(位置i = 6)开始比对,因为经由节点1、2、3、4、5、6、7到达值1,所以从第6 个字符开始提取关键字“才'J W” ”,知道该值是值1。如果使用trie词典,因为能够同时比对全部关键字,所以处理速度不依赖于关键 字数量。因此,即使数量庞大也能够进行高速比对。但是,使用了 trie词典的关键字比对因为只能提取和关键字完全一致的字符串, 所以存在不能提取错字、漏字、使用了稍有不同的表现的关键字这一问题。(3)高速的完全一致比对其2,AC法在改良了使用trie结构的关键字比对的方法中,有Aho-Corasick法(以下,称为 AC法)(参照非专利文献3)。如果使用AC法,因为比对速度只依赖于输入字符串的长度 (字符数量),所以能够进行更高速的比对。在AC法中,除了图3所示那样的trie词典(在AC法中称为goto函数)外,还使 用failure函数、output函数进行高速比对。failure函数是trie的比对在中途失败时, 对紧接失败之前的枝标签后缀和从trie的根节点开始的枝标签串的前缀进行比较,向最 长一致的节点转移的函数。output函数是trie比对在中途成功时,该枝标签的后缀是关键 字的情况下,用于输出全部关键字的函数。这和trie结构的情况不同,对后方一致的值全 部进行输出。分别在图5、图6中表示关键字词典是图2的情况下的failure函数、output 函数的例子,在图7中表示采用AC法的比对算法。如图7所示,在采用AC法的比对中,首先,将输入字符串比对位置e设置为0,将 trie节点η设置为1进行初始化(步骤sll)。接着,判定输入字符串比对位置e是否大于等于输入字符串长度(步骤81 ,如果输入字符串比对位置e大于等于输入字符串长度,则 结束处理。在步骤sl2中,当字符串比对位置e不是大于等于输入字符串长度的情况下,进 行与输入字符串的位置e的字符相同的标签是否在节点η的枝上的判定(步骤sl3)。在步骤sl3中,当与输入字符串的位置e的字符相同的标签不在节点η的枝上的 情况下,将η设置成failure函数的值(步骤sl4),如果该η的值是1,则将e设置成e+1 (步 骤sl5),进入步骤sl7。此外,在步骤sl3中,当与输入字符串的位置e的字符相同的标签 在节点η的枝上的情况下,将η更新为该枝顶端的节点,将e设置成e+1 (步骤sl6),进入步 骤 sl7。在步骤sl7中,如果output (η)不是空集合,则输出output (η)中的关键字和值以 及一致开始位置i = (e-关键字长度),进入步骤sl2。例如,当输入字符串是“金> 夕''J ^卜誕生”的情况下,首先,节点1在第0个字符 下转移到“金”的枝标签顶端16。在此,因为output函数的值未被定义,所以什么都不输出。 如果重复该步骤,则在第2个字符下到达节点18。第3个字符“ 'J,,因为不在从节点18伸 出的枝标签上,所以参照failure函数,转移到节点12(failUre(18) =12)。即,输入字符 串的第1 2个字符(^夕‘)处于已结束比对的状态。如果从这里再次开始第3个字符的 比对,则其结果可知输入字符串的第1 5个字符和关键字夕''J ^卜” 一致。这样,如果使用AC法,因为只需要花费与输入字符串的长度成比例的时间,所以 能高速地提取关键字。但是,AC法因为也只能提取与关键字完全一致的字符串,所以存在和trie结构一 样不能提取错字和漏字、使用了稍有不同表现的关键字的问题。现有技术文献非专利文献非专利文献1 田中穗积主编,“自然言語処理-基礎i応用-(自然语言处理-基 础与应用_) ”,第1版,社团法人电子信息通信学会,平成11年3月25日,p. 12 15非专利文献2 松本裕治,影山太郎,永田昌明,斋藤洋典,德永健伸,“岩波講座言 語O科学3単語i辞書(岩波讲座语言的科学3单词和词典)”,岩波书店,1997,p. 74 75非专利文献3 北研二,津田和彦,狮狮堀正干,“情報検索7 A 3 'J X Λ (信息检 索算法)”,共立出版,2002,ρ· 108 122。

发明内容
发明所要解决的问题本发明的目的在于即使在输入字符串中包含错字、漏字、与设想的关键字有少许 不同的表现,并且想提取的关键字数量多的情况下,也可以高速地提取。用于解决问题的手段为了解决上述问题,在使用了本发明的技术中,通过以下的方法高速地对包含直 到N字连续(N是任意的整数)的插入、删除、置换错误的字符串和大量的关键字进行比对。1.在根据关键字词典构筑trie词典时,针对各关键字的每一个生成由关键字自 身、和从该关键字的全部字符位置Pk起删除了连续的wk字(1彡wk彡N)的字符串的集合 组成的删除关键字,制成trie结构。把它称为跳跃词典。
2.在跳跃词典的值中针对各删除关键字的每一个预先保持删除字符位置pk、删 除字符数量wk以及作为该删除关键字根源的关键字(原关键字)。3.在比对输入字符串和跳跃词典时,不只是进行输入字符串自身和跳跃词典的比 对,还进行从该输入字符串的全部位置起跳跃了连续的wi字(1 < wi < N)后的输入字符 串(以下,称为跳跃输入)的集合和跳跃词典的比对。而且,跳跃输入既可以明示地制作, 也可以在比对时直接一边跳跃输入字符串一边进行比对。4.比较所得到的删除关键字的删除字符位置pk、删除字符数量wk、在输入字符串 的关键字上的相对跳跃位置Pi、跳跃幅度Wi,把该删除关键字分成以下4种 在wi、wk都是0 (wi = wk = 0)时,作为关键字完全一致而输出关键字;·如果wi是0,wk大于等于1 (wi = 0,wk > 0),则作为在输入字符串的跳跃位置 上存在wi字的删除字符而输出关键字;·如果wi大于等于1,wk是0(wi > 0,wk = 0),则作为在输入字符串的跳跃位置 上存在wi字的插入字符而输出关键字;·如果 wi 大于等于 1,pi 和 pk 相等,wi 和 wk (wi > 0,pi = pk, wi = wk)相等, 则作为在输入字符串的跳跃位置上存在wi = wk字的置换字符而输出关键字;5.在跳跃词典中定义failure函数、output函数,通过用AC法进行比对,还可以 进一步高速地进行比对。发明效果如果采用本发明的技术,则具有以下效果。·如果是连续的N字符以内的错误,则仍能够从包含有插入、删除、置换错误的输 入字符串中提取关键字,·因为使用trie结构同时进行全部关键字的比对,所以即使关键字数量增加也几 乎不会增加处理时间,·通过在比对方式中使用AC法,也能够进一步高速进行比对。此外,在本发明中输出的关键字还能够进一步根据字符的易错度而附加分数。因 而,当在输入字符串的相同区域上有另一关键字候补的情况下,还能够比较错误字符,只输 出难以出错的一方。此外,根据本发明,因为对在输入字符串所包含的记载在关键字词典中的关键字 (单词)全部输出,所以通过用n-gram模型等对单词彼此之间的关联容易度附加分数,能够 制成词素分析器。


图1是表示输入字符串的一个例子的说明图。图2是表示关键字词典的一个例子的说明图。图3是表示trie词典的一个例子的说明图。图4是表示采用trie结构的比对算法的处理流程图。图5是表示failure函数的一个例子的说明图。图6是表示output函数的一个例子的说明图。图7是表示采用AC法的比对算法的处理流程图。
图8是表示本发明的近似比对装置的实施方式的一个例子的构成图。图9是表示删除关键字和其值的一个例子的说明图。图10是表示跳跃输入/跳跃词典比对算法的处理流程图。图11是表示提取的 关键字候补的一个例子的说明图。图12是表示跳跃输入的一个例子的说明图。图13是表示提取的关键字候补的其他例子的说明图。图14是表示采用trie结构的输入字符串比对算法的处理流程图。图15是表示采用trie结构的跳跃输入比对算法的处理流程图。图16是表示采用AC法的输入字符串比对算法的处理流程图。图17是表示采用AC法的跳跃输入比对算法的处理流程图。图18是表示重复删除算法的处理流程图。图19是表示重复删除后提取的关键字的一个例子的说明图。图20是表示重复删除后提取的关键字的其他例子的说明图。图21是涉及本发明的实施方式的Web信息过滤装置的构成图。图22是涉及本发明的实施方式的自动校正装置的构成图。图23是涉及本发明的实施方式的自动校正装置输出的画面例子。图24是表示汉语的输入字符串的一个例子的说明图。图25是表示汉语的关键字词典的一个例子的说明图。图26是表示汉语的删除关键字和其值的一个例子的说明图。图27是表示汉语的提取的关键字候补的一个例子的说明图。图28是表示汉语的跳跃输入的一个例子的说明图。图29是表示汉语的提取的关键字候补的其他例子的说明图。图30是表示重复删除后的汉语的提取的关键字的一个例子的说明图。图31是表示韩语的输入字符串的一个例子的说明图。图32是表示韩语的关键字词典的一个例子的说明图。图33是表示韩语的删除关键字和其值的一个例子的说明图。图34是表示韩语的提取的关键字候补的一个例子的说明图。图35是表示韩语的跳跃输入的一个例子的说明图。图36是表示韩语的提取的关键字候补的另一例子的说明图。图37是表示重复删除后的韩语的提取的关键字的一个例子的说明图。符号说明10 跳跃词典制成部11 删除关键字/值生成部12 删除关键字/值暂存部13:trie词典制成部20 跳跃词典存储部30 关键字提取部31 跳跃输入/跳跃词典比对部32:比对结果暂存部
33 重复删除部40 过滤部50 显示部60 输入部70:显示控制部
具体实施例方式图8是表示本发明的近似比对装置的实施方式的一个例子的图,包括跳跃词典 制成部10、跳跃词典存储部20以及关键字提取部30。而且,在本说明书中,关键字的最大 删除字符数量和输入字符串的最大跳跃幅度相等,用N表示。此外,近似比对装置可以通过在具备有CPU、存储器等存储单元的计算机中装载用 于实现跳跃词典制成部10以及关键字提取部30的功能的程序来实现。此外,如果在其他装 置等中制成跳跃词典,并把它存储在跳跃词典存储部20中,则通过在计算机中装载用于实 现关键字提取部30的功能的程序,可以实现具备关键字提取单元的近似比对装置。此外, 该程序预先存储在可移动存储器等的存储介质中,可以从这些介质安装到计算机中。跳跃词 典制成部10对于预先给予的关键字,为每个关键字制成跳跃词典,该跳跃 词典包含由关键字自身、和从该关键字的全部字符位置起删除了连续的至少1个字符的字 符串集合组成的删除关键字。跳跃词典存储部20存储并保持由跳跃词典制成部10制成的跳跃词典。关键字提取部30通过比对输入字符串和保持在跳跃词典存储部20中的跳跃词 典,从输入字符串中提取预先给予的关键字以及与该关键字近似的关键字,并和其出现位 置一同进行输出。以下,举例说明在上述各部中的处理的详细内容。《跳跃词典制成部》跳跃词典制成部10包括删除关键字/值生成部11、删除关键字/值暂存部12以 及trie词典制成部13,根据关键字词典制成跳跃词典,保存在跳跃词典存储部20中。该关 键字词典是作为想提取的关键字而通过手工预先列入表中的关键字的集合。〈删除关键字/值生成部〉在删除关键字/值生成部11中,对于预先准备的关键字词典中的各关键字,首先, 制成由关键字自身、和从该关键字的全部字符位置Pk起删除了连续的wk字(1彡wk彡N : N是关键字的删除最大字符数量)的字符串集合组成的删除关键字,并存储在删除关键字/ 值暂存部12中。此时,将删除字符位置pk、删除字符数量Wk以及作为该删除关键字根源的关键字 的原关键字的组作为值生成,并与该删除关键字对应起来存储在删除关键字/值暂存部12 中。当删除关键字是原关键字自身的情况下,wk是0。pk可以代入任何值,但在此假设为 空栏。例如,当最大删除字符数量N = 2的情况下,根据“才U >匕”厂,这一关键字,生成 图9所示的12个删除关键字和其值。当然,这既也可以对全部的关键字进行,也可以只对某一定长度以上(例如,4个 字符以上)长度的关键字制成删除关键字。
〈trie词典制成〉在trie词典制成13中,从删除关键字/值暂存部12中读出删除关键字/值生成 部11生成的删除关键字和与该删除关键字对应的值,变换为trie结构,制成词典。BP, trie词典制成13从删除关键字/值暂存部12中读出删除关键字/值生成部 11生成的删除关键字和与该删除关键字对应的值,将关键字的各字符作为枝而变换为包含 可对每个关键字保持不同的值的节点的、作为合并了关键字的共同前缀的树结构的trie 结构,制成跳跃词典。当在以后说明的跳跃输入/跳跃词典比对部中使用AC法的情况下,进一步定义 failure函数、output函数。对于全部关键字进行这些定义,作为跳跃词典存储在跳跃词典 存储部20中。《关键字提取部》关键字提取部30包括跳跃输入/跳跃词典比对部31、比对结果暂存部32以及重 复删除部33,从包含错字、漏字的输入字符串和保存在跳跃词典存储部20中的跳跃词典中 提取关键字,并与其出现位置以及值一同进行输出。〈跳跃输入/跳跃词典比对部〉首先,在跳跃输入/跳跃词典比对部31中,比对输入字符串和保存在跳跃词典存 储部20中的跳跃词典,提取关键字的候补。图10表示跳跃输入/跳跃词典比对的算法。而 且,将在此提取的关键字分成以下4种的一致类型· EM 关键字以与输入字符串完全一致的形态出现;· DEL 在输入字符串中存在删除字符(漏字)的状态下和关键字一致;· INS 在输入字符串中存在插入字符的状态下和关键字一致;· REP 在输入字符串中存在置换字符(错字)的状态下和关键字一致。(1)输入字符串和跳跃词典的比对首先,进行输入字符串和跳跃词典的比对(步骤s21)。该比对算法可以使用图4 所示的一般的trie词典比对、采用图7所示的AC法的比对中的任何一方。此外,还可以使 用这些比对方法以外的比对算法。接着,对于和跳跃词典一致的全部关键字候补,重复以下的步骤s22和步骤s23的处理。如果删除关键字的删除字符数量Wk是0,则将一致类型设置为EM,输出该一致类 型、输入字符串中的一致开始位置、结束位置、错误开始位置、错误字符数量、原关键字并存 储在比对结果暂存部32中(步骤s22)。如果删除关键字的删除字符数量wk比0大,则将一致类型设置为DEL,输出该一致 类型、输入字符串中的一致开始位置、结束位置、错误开始位置、错误字符数量、原关键字并 存储在比对结果暂存部32中(步骤s23)。在上述的步骤s22、s23中,如果一致类型是EM,则错误开始位置、错误字符数量都 始终为0,如果一致类型是DEL,则错误开始位置、错误字符数量分别是删除关键字的删除 字符位置pk、删除字符数量wk。例如,如果进行图1的语句1和根据图2制成的跳跃词典的比对,则得到图11所 示的关键字候补。
(2)跳跃输入和跳跃词典的比对在此,首先,制成从输入字符串的全部位置至少跳跃1个字符、详细地说一边使绝 对跳跃位置P —次增加一个一边以跳跃幅度wi (1 ^wi ^ N)字来进行跳跃的字符串(步 骤s24)。把它称作跳跃输入。例如,如果对于图1的语句1制成跳跃输入,则得到图12所 示的字符串。以下进行各跳跃输入和跳跃词典的比对(步骤s25)。比对算法可以使用图4或 者图7中的任何一个。此外,也可以使用这些以外的比对算法。而且,也可以不制作跳跃输 入,而在与跳跃词典的比对时,一边直接跳跃输入字符串一边进行比对。接着,对于和跳跃词典一致的全部关键字候补,重复步骤W6 s29的处理。首先,在步骤W6中,从关键字的一致开始位置i和绝对跳跃位置p,算出在关键字 上的相对跳跃位置Pi =P-I0而后,判定是否是pi彡O且pi彡删除关键字的字符串长度(步骤s27),如果 pi彡O且pi <删除关键字的字符串长度,则进入步骤s28,如果不是pi彡O且pi <删除 关键字的字符串长度,则进行接下来的关键字候补的处理。在是pi > O且pi <删除关键字的字符串长度的情况下,如果删除关键字的删除 字符数量wk是0,则将一致类型设置成INS,输出该一致类型、输入字符串中的一致开始位 置、结束位置、错误开始位置、错误字符数量、原关键字,并存储在比对结果暂存部32中(步 骤 s^)。如果删除关键字的删除字符数量Wk比O大,并且输入字符串的相对跳跃位置pi 和删除关键字的删除字符位置Pk相等,并且输入字符串的跳跃幅度Wi和删除关键字的删 除字符数量wk相等,则将一致类型设置为REP,输出该一致类型、输入字符串中的一致开始 位置、结束位置、错误开始位置、错误字符数量、原关键字,并存储在比对结果暂存部32中 (步骤s29)。在步骤s28、s29中,错误开始位置、错误字符数量分别为跳跃输入的相对跳跃位 置pi、跳跃幅度wi。从步骤W4开始直到步骤W6 W9的重复处理为止的处理从输入字符串的绝对 跳跃位置P = O起到(字符串长度-Wi)为止重复进行,该重复的处理从输入字符串的跳跃 幅度wi = 1到N重复进行。例如,如果对图12的跳跃输入和根据图2的关键字词典制作的跳跃词典进行比 对,则得到图13所示的关键字候补。而且,一致类型REP出现11个是因为解释成向与原关 键字相同的字符进行的置换在各字符位置上出现的缘故。(3)采用trie结构的跳跃词典比对的高速化在图10中,输入字符串、跳跃输入在2处(步骤s21,步骤s25)进行和跳跃词典的 比对。当使用一般的trie结构的情况下,通过将上述2处的比对算法从图4分别变更为图 14、图15所示那样的算法,从而能够更高速地进行与跳跃词典的比对。首先,在输入字符串和跳跃词典的比对(图14)中,在输入字符串的全部字符位 置(比对开始位置)i中,用trie法比对输入字符串和跳跃词典,在输出比对成功的关键字 等(步骤s31 步骤83 的同时,将在比对中失败的字符位置j和i设置成组来预先保存 (步骤s36)。
即,如图14所示,对于输入字符串的全部字符位置i,重复步骤s31 步骤s36的处理。首先,通过将关键字比对位置j设置为0,将trie节点η设置为根节点进行初始 化(步骤s31)。接着,进行在节点η的枝上是否有终端记号#的判定(步骤s32),如果有 终端记号#,则输出从根节点开始的路径上的所有枝标签、值、一致开始位置i (步骤s33)。在步骤s32的判定中,当在节点η的枝上没有终端记号#的情况下,进行在输入字 符串中的位置i+j的字符Ci+j是否处于从trie节点η分叉的枝标签上的判定(步骤s34)。在步骤s34中,当字符Ci+j不在从trie节点η分叉的枝标签上的情况下,将字符 位置i和关键字比对失败位置j成对保存(步骤s36),对于输入字符串的下一字符位置,重 复从步骤s31开始的处理。在步骤s34中,当字符Ci+j在从trie节点η分叉的枝标签上的 情况下,将j设置成j+Ι,将η更新为该枝顶端的节点并进入步骤s2(步骤s35)。通过步骤s36的处理,表示对于每个比对开始位置(一致开始位置)i,直至j_l字 符的比对成功。在跳跃输入和跳跃词典的比对(图15)中,在输入字符串的全部字符位置(比对 开始位置)i中,用trie法比对跳跃输入和跳跃词典(步骤s43 步骤s47),而此时,取得 与位置i对应的已保存的关键字比对失败位置f (正确的是将在步骤s36中保存的j作为 f取得)(步骤s41)。在此,如果跳跃输入的绝对跳跃位置ρ *p<i,则如果关键字一致,那么在和输入 字符串的比对中也已一致。此外,如果P > i+f,则明显是在到达跳跃位置之前比对失败。 因而,进行是否是P < i或者P > i+f的判定(步骤S42),如果P < i或者P > i+f,则什 么也不做而将处理转移到下一字符位置i+1。如果不是ρ < i或者ρ > i+f,则进行和图4所示处理一样的处理,首先,通过设关 键字比对位置j为0,将trie节点η设为根节点来进行初始化(步骤s4!3)。接着,进行在 节点η的枝上是否有终端记号#的判定(步骤s44),如果有终端记号#,则输出从根节点开 始的路径上的所有枝标签、值、一致开始位置i (步骤s45)。在步骤s44的判定中,当在节点η的枝上没有终端记号#的情况下,进行在输入字 符串中的位置i+j的字符Ci+j是否在从trie节点η分叉的枝标签上的判定(步骤s46)。在步骤s46中,当字符Ci+j不在从trie节点η分叉的枝标签上的情况下,对输入 字符串的下一字符位置重复从步骤s41开始的处理。在步骤s46中,当字符Ci+j在从trie 节点η分叉的枝标签上的情况下,将j设成j+Ι,将η更新为该枝的顶端的节点并进入步骤 s44 (步骤 s47)。这样,通过改变和trie结构的比对算法,能够限定跳跃输入的比对范围,能够进 行更高速的比对。(4)采用AC法的跳跃词典比对的高速化在图10中,输入字符串、跳跃输入在2处(步骤s21、步骤s25)进行和跳跃词典 的比对。当使用AC法的情况下,通过将上述2处的比对算法从图7分别变更为图16、图17 所示那样的算法,能够进一步高速地进行和跳跃词典的比对。首先,在输入字符串和跳跃词典的比对(图16)中,用AC法比对输入字符串和跳 跃词典,在输出比对成功的关键字等(步骤s51、步骤s52、步骤站4 s58)的同时,预先保存输入字符串的各字符位置(比对位置)e中的最初的trie节点号码η(步骤s5;3)。把它 称作trie节点函数η = trienode(e)。trie节点函数是在输入字符串中没有跳跃的情况 下,在输入字符串上将已完成比对的字符位置和在trie上的状态对应起来的函数。更详细地说,在图16中首先将输入字符串比对位置e设为0,将trie节点η设为 1进行初始化(步骤s51)。接着,进行输入字符串比对位置e是否大于等于输入字符串长 度的判定(步骤s52),如果输入字符串比对位置e大于等于输入字符串长度则结束处理。 在步骤s52中,当输入字符串比对位置e不是大于等于输入字符串长度的情况下,如果没有 保存trienode (e),则在trienode (e)中代入η的值,将输入字符串比对位置e和节点η保 存在存储部中(步骤s5;3)。而后,判定在节点η的枝上是否有和输入字符串的位置e的字 符相同的标签(步骤s54)。在步骤s54中,当在节点η的枝上没有和输入字符串的位置e的字符相同的标签 的情况下,将η设置成failure函数的值(步骤s55),该η的值如果是1,则将e设置成 e+1 (步骤s56),进入步骤s58。此外,在步骤站4中,当在节点η的枝上有和输入字符串的位 置e的字符相同的标签的情况下,将η更新为该枝的顶端的节点,将e设为e+1 (步骤s57) 并进入步骤s58。在步骤s58中,如果output (η)不是空集合,则输出output (η)中的关键字和值、 以及一致开始位置i = (e-删除关键字长度),进入步骤s52。在跳跃输入和跳跃词典的比对(图17)中,从输入字符串的绝对跳跃位置ρ开始 采用AC法进行比对。即,将初始状态设置为跳跃输入的比对位置e = p、trie节点η = trienode (e),重新开始比对(步骤s61 s66)。比对并不是进行到跳跃输入的最后,而是在利用failure函数转移的trie节点转 移到根节点(η = 1)的时刻结束比对(步骤s64)。这是因为这之后由于在输入中不存在跳 跃,所以只有在和输入字符串的比对中得到的关键字相同的关键字是一致的。更详细地说,首先,设跳跃输入的比对位置e = p,trie节点η = trienode (e)(步 骤s61),进行在节点η的枝上是否有和跳跃输入的位置e的字符相同的标签的判定(步骤 s62)。当在节点η的枝上没有和跳跃输入的位置e的字符相同的标签的情况下,将η设 置成failure函数的值(步骤s63),如果该η的值是1 (步骤s64为“是”),则结束处理,如 果该η的值不是1 (步骤s64为“否”),则进入步骤s66。在步骤s62中,当在节点η的枝上有和跳跃输入的位置e的字符相同的标签的情 况下,将η更新为该枝的顶端的节点,将e设成e+1 (步骤s65),进入步骤s66。在步骤s66中,如果output (η)不是空集合,则输出output (η)中的关键字和值、 以及一致开始位置i = (e-关键字长度),进入步骤s62。通过这样变更采用AC法的比对算法,能够限定跳跃输入的比对范围,能够进行更 高速的比对。〈重复删除部〉在重复删除部33中,从比对结果暂存部32中读出跳跃输入/跳跃词典比对部31 输出的关键字候补的集合,生成删除了重复的关键字候补的关键字集合后输出。在此,只选 择错误字符数量为最小的关键字候补,在剩余的关键字候补中,将在输入字符串上一致的区域重叠的关键字候补解释为重复。图18表示重复删除算法。1.首先,在关键字候补集合C中设置从比对结果暂存部32中读出的关键字候补的 集合(跳跃输入/跳跃trie比对的输出),将最终输出的关键字集合K设置成空集合(Φ) (步骤s71)。2.其次,从关键字候补集合C中读出一个候补(设置成c)(步骤s74)。从关键 字候补集合中取出原关键字和该候补c 一致的全部关键字候补(步骤87幻。把它设置成 Ckeys03.接着,从Ckeys中取出错误字符数量为最小的全部候补(假设为Cmins),在关 键字集合K上加上Cmins (步骤s76)。4.最后,对于Ckeys的全部关键字候补,与Cmins中的全部的关键字的一致开始位 置、结束位置进行比较,从关键字候补集合C中删除区域重叠的关键字候补(步骤s77)。5.重复步骤s72 s74直至关键字候补集合C变成空集合(步骤s72)。6.将K作为最终的关键字集合输出(步骤s73)。通过像这样地删除重复,从而例如根据图1的语句1、图2的关键字词典制成的跳 跃词典中只剩下图19所示的关键字。即,意味着从输入字符串的第6个字符开始,“才U > if , ” ”这一关键字完全一致地出现。同样,如果使用图1语句2 4、根据图2的关键字词典制成的跳跃词典,则得到图 20所示的关键字。从用本发明的实施方式的近似比对装置得到的一致类型/开始位置/结束位置/ 原关键字的信息中,知道从各输入语句中的第几个字符开始第几个字符和词典的关键字一 致,该一致的类型是完全一致/置换/删除/插入中的哪一种。此外,从错误开始位置/错 误字符数量的信息中知道在一致类型是置换/插入/删除的情况下,在比对字符范围中从 第几个字符起哪个字符有错误。如果采用与本发明的实施方式有关的近似比对装置,则例如如图20所示,在语句 2中,能够将包含“才y >?々”这样的错字的字符串也作为“才·」> 匕。?々,,的置换ι个 字符的类型检测出来。此外,在语句3中,能够将输入语句的“男子^ IOOm平泳B”这样的 范围作为词典关键字“男子IOOm平泳¥,,的插入一字的类型检测出来。由此,在检索涉及“才1J >匕。”厂,和“男子IOOm平泳各·”的信息的情况下,即使是 “才/ > if 7夕”和“男子Θ IOOm平泳各·”这样的包含错字漏字/表述偏差的文本也成为检 索对象,可以和其出现范围一同提示给用户。即,涉及本发明的近似比对装置可以作为面对 错字漏字和表述偏差强健的信息检索装置使用。此外,例如,还可以将本发明所涉及的技术利用到不能显示包含不适当用语的网 页的web信息过滤装置。在不适当用语的过滤中,需要检测包含不适当表现的文本,而这种 文本往往是作为故意从原表述中改变了一部分字符的不适当表现进行记载。在本发明所涉及的技术中,即使是从原关键字施加了连续改变N个字符的字符串 也能够检测出,能够应对比现有的不适当用语检测更宽范围的文本的出现。图21表示本发明的实施方式的Web信息过滤装置的构成例子。如图21所示,该Web信息过滤装置具备跳跃词典制成部10、跳跃词典存储部20、 关键字提取部30、过滤部40、显示部(显示器)50。
词典制成部10、跳跃词典存储部20、关键字提取部30具有和此前说明的图8所示 的功能相同的功能。但是,在本例子中,关键字提取部30进一步具有例如经由通信网络,将 包含在网页中的文本数据作为输入字符串输入的功能。在图21的构成中,把想挂上过滤器的不适当用语的列表作为关键字词典给予跳 跃词典制成部10,用跳跃词典制成部10制成跳跃词典,存储在跳跃词典存储部20中。而后,关键字提取部30对输入字符串进行此前说明的关键字比对处理。由此,还 将变更了不适当用语的一部分字符那样的字符串作为删除关键字提取。关键字提取部30 将删除关键字等的信息和网页信息一同输出到过滤部40。过滤部40根据从关键字提取部30接收到的信息,进行控制而不将包含删除关键 字的网页信息交给显示部(显示器)50。对于未包含删除关键字的网页,过滤部40直接输 出到显示部50,显示部50显示网页。 此外,例如,还可以将涉及本发明的技术适用到文本数据的自动校正装置。图22表示关于本发明的实施方式的自动校正装置的构成例子。如图22所示,该 自动校正装置具备跳跃词典制成部10、跳跃词典存储部20、关键字提取部30、输入部(键 盘)60、显示控制部70、显示部50。跳跃词典制成部10、跳跃词典存储部20、关键字提取部30具有和此前说明的图8 所示的功能相同的功能。但是,在本例子中,具备用户用于进行字符输入的输入部60,关键 字提取部30进一步具备将用户从输入部60输入的字符串作为输入字符串接收的功能。在图22的构成中,将刊载在一般的词典上的单词作为关键字词典给予跳跃词典 制成部10,通过跳跃词典制成部10制成跳跃词典,并存储在跳跃词典存储部20中。而后, 关键字提取部30对输入字符串进行此前说明的关键字比对处理,将根据关键字比对处理 的结果得到的删除关键字等的信息和输入字符串输出到显示控制部70。显示控制部70控制显示部50,使得由关键字提取部30提取的删除关键字成为高 亮,和词典关键字一同进行显示。通过使删除关键字的部分高亮并和词典关键字一同提示 给用户,从而能够作为自动检测的错误候补而督促用户进行该部分的修正。图23表示显示 的图像。在图23所示的例子中,使涉及删除关键字的输入字符串中的出现形态的部分全体 尚売。在此,代替使出现形态全体高亮,也可以利用通过关键字提取部30提取出的错误 的出现位置,只使错误字符范围高亮。此外,利用一致类型的信息,提示例如指出语句2的 比对范围“才V > C 7々”的部分和错误字符范围“ ”,,的部分的信息、以及是词典关键字 “才U > if、y々,,的置换ι个字这样的信息,可以督促用户进行是否需要修正的最终判断。以上的例子无论哪种情况都是灵活运用了能够在词典检索的一致对象中包含错 字漏字和表述偏差这种字符串的本技术的特性的例子。此外还可以适用到对包含错字漏字 的文本进行单词分割的词素分析等的各种语言处理技术。错字漏字和表述偏差这种现象如果是人工输入的文本则必然有可能发生。利用关 于本发明的技术,能够将也包含这些现象的语言处理作为目标,实现更强健且灵活的语言 处理应用。实施例(汉语中的例子)
本发明不仅适用于日语,其他语言同样也能够适用。例如,作为汉语的例子,考虑 从图M所示的输入字符串中提取图25所示的关键字。在采用以往的完全一致的关键字提取方法中,虽然能从语句1中提取关键字“奥运会” 但是因为,在语句2中将“奥运会”表述为“奥运”此外,“男子100米蛙泳”和“男子的100米蛙泳”以稍有不同的表现来表述。 在语句3中,将“金牌得主”表现为“金靴得主”,所以从语句2、3中不能提取关键字。如果使用涉及本发明的技术,则即使在存在大量关键字的情况下,也如以下说明 的那样,可以从语句2、3中提取关键字。另外,在以下说明中,作为最大删除字符数量N = 1进行说明。《跳跃词典制成部》在跳跃词典制成部10中,首先,生成删除关键字和其值。例如,当最大删除字符数 量N= 1的情况下,从“奥运会”这一关键字中,生成图沈所示的4个删除关键字和其值。接着,将生成的删除关键字和其值变换为trie结构而制成跳跃词典。当在跳跃输 入/跳跃词典比对中使用AC法的情况下,进一步定义failure函数、output函数。《关键字提取部》<跳跃输入/跳跃词典比对部>(1)输入字符串和跳跃词典的比对首先,比对输入字符串自身和跳跃词典。比对算法使用图4、图7、图14、图16中的 某一个。于是,从图M的各语句中得到图27所示的关键字候补。(2)跳跃输入和跳跃词典的比对从输入字符串制成跳跃输入。图28表示在N = 1时根据图M的语句1制成的跳 跃输入。接着,将各跳跃输入和跳跃词典进行比对。比对算法利用在「(1)输入字符串和跳 跃词典的比对」中使用的比对算法,使用图4、图7、图15、图17中的某一个。 在(1)中使用图4的情况下,同样地使用图4的算法。 在(1)中使用图7的情况下,同样地使用图7的算法。 在(1)中使用图14的情况下,使用图15的算法。 在(1)中使用图16的情况下,使用图17的算法。对于所得到的全部的关键字候补,如果对一致类型进行分类,则从图M的各语句 中得到图四所示的关键字候补。<重复删除部>最后,从关键字候补集合中,用图18所示的算法删除重复。结果是从各语句中得
18CN 102138141 A
说明书
14/15 页
到图30所示的关键字。(韩语中的例子)以下,作为把本发明适用到日语以外的语言的其他例子,说明韩语的例子。在此, 考虑从图31所示的输入字符串中,提取图32所示的关键字。在采用以往的完全一致的关键字提取法中,虽然能从语句1中提取关键字
权利要求
1.一种近似比对装置,对用自然语言表述的输入字符串和规定的关键字进行比对,输 出一致的关键字和该关键字的出现位置,该近似比对装置的特征在于具备跳跃词典存储单元,针对预先给予的关键字,存储包含删除关键字的跳跃词典,该删除 关键字由关键字自身、和从该关键字的全部字符位置至少删除1个字符后的字符串的集合 组成;关键字提取单元,通过比对上述输入字符串和存储在上述跳跃词典存储单元中的上述 跳跃词典,从输入字符串提取预先给予的关键字以及与该关键字近似的关键字,并与该关 键字的出现位置一同进行输出。
2.根据权利要求1所述的近似比对装置,其特征在于上述删除关键字由上述预先给予的关键字自身、和从该关键字的全部的字符位置Pk 起删除了连续的wk字后的字符串的集合组成,其中,1 ^ wk ^ N,N是关键字的删除最大字 符数量,上述跳跃词典对于上述集合中的各删除关键字的每一个,包含该删除关键字的删除字 符位置pk、删除字符数量wk以及作为该删除关键字的根源的关键字即原关键字的组,作为 该删除关键字的值。
3.根据权利要求2所述的近似比对装置,其特征在于上述关键字提取单元具有跳跃输入/跳跃词典比对单元,该跳跃输入/跳跃词典比对单元对上述输入字符串和存储在上述跳跃词典存储单元 中的跳跃词典进行比对,对于与跳跃词典一致的全部关键字候补,如果删除关键字的删除 字符数量wk为0,则分类为表示“关键字在输入字符串中完全一致地出现”的一致类型EM, 如果删除关键字的删除字符数量wk比0大,则分类为表示“在输入字符串中存在删除字符 的状态下和关键字一致”的一致类型DEL,将分类的结果作为一致类型,将一致类型、输入字 符串中的一致开始位置、结束位置、错误开始位置、错误字符数量、原关键字存储在存储单 元中,制成一边使输入字符串的绝对跳跃位置P —次增加一个一边以跳跃幅度Wi字进行了 跳跃的字符串即跳跃输入,比对各跳跃输入和上述跳跃词典,对于和跳跃词典一致的全部 关键字候补,计算在关键字上的相对跳跃位置Pi,如果删除关键字的删除字符数量wk是0, 则分类成表示“在输入字符串中存在插入字符的状态下和关键字一致”的一致类型INS,如 果删除关键字的删除字符数量wk大于0、并且输入字符串的相对跳跃位置pi和删除关键 字的删除字符位置Pk相等、并且输入字符串的跳跃宽度wi和删除关键字的删除字符数量 wk相等,则分类为表示“在输入字符串中存在置换字符的状态下和关键字一致”的一致类型 REP,将分类的结果作为一致类型,将一致类型、输入字符串中的一致开始位置、结束位置、 错误开始位置、错误字符数量以及原关键字存储在存储单元中,其中,1 <N,N是输入 字符串的最大跳跃幅度。
4.根据权利要求3所述的近似比对装置,其特征在于上述关键字提取单元进一步具有重复删除单元,该重复删除单元从上述存储单元中读 出上述跳跃输入/跳跃词典比对单元输出的关键字候补的集合,生成删除了重复的关键字 候补的关键字的集合并输出。
5.根据权利要求3或者4所述的近似比对装置,其特征在于上述跳跃词典中的删除关键字具有trie结构,上述跳跃词典/跳跃词典比对单元在上述输入字符串和上述跳跃词典的比对中,从上 述输入字符串的开头开始一边一次移动一个字符一边和上述跳跃词典进行比对,得到一致 的关键字,并且预先保存在输入字符串的各字符位置上的关键字比对失败位置的值,上述跳跃输入/跳跃词典比对单元在上述跳跃输入和上述跳跃词典的比对中,只在绝 对跳跃位置的值大于等于上述输入字符串的字符位置的值或者小于等于将字符位置的值 和关键字比对失败位置的值相加得到的值的情况下进行比对。
6.根据权利要求3或者4所述的近似比对装置,其特征在于上述跳跃词典中的删除关键字具有trie结构,上述跳跃词典/跳跃词典比对单元在上述输入字符串和上述跳跃词典的比对中,用AC 法比对输入字符串和跳跃词典,得到一致的关键字,并且预先保存在输入字符串的各字符 位置上的上述trie结构的节点号码,上述跳跃输入/跳跃词典比对单元在上述跳跃输入和上述跳跃词典的比对中,从上述 绝对跳跃位置起再次开始采用AC法的比对,直到上述trie结构的节点转移到根节点为止 进行比对。
7.一种近似比对方法,是对用自然语言表述的输入字符串和规定的关键字进行比对, 输出一致的关键字和该关键字的出现位置的近似比对装置执行的近似比对方法,其特征在 于上述近似比对装置具备跳跃词典存储单元,针对预先给予的关键字,存储包含删除关 键字的跳跃词典,该删除关键字由关键字自身、和从该关键字的全部字符位置至少删除1 个字符后的字符串的集合组成,上述近似比对方法包含关键字提取步骤,由关键字提取单元通过比对上述输入字符串 和存储在上述跳跃词典存储单元中的上述跳跃词典,从输入字符串提取预先给予的关键字 以及与该关键字近似的关键字,并与该关键字的出现位置一同进行输出。
8.根据权利要求7所述的近似比对方法,其特征在于上述删除关键字由上述预先给予的关键字自身、和从该关键字的全部字符位置Pk起 删除了连续的wk字后的字符串的集合组成,其中,1 ^ wk ^ N,N是关键字的删除最大字符数量,上述跳跃词典对于上述集合中的各删除关键字的每一个,包含该删除关键字的删除字 符位置pk、删除字符数量wk以及为该删除关键字的根源的关键字即原关键字的组,作为该 删除关键字的值。
9.根据权利要求8所述的近似比对方法,其特征在于上述关键字提取步骤包含跳跃输入/跳跃词典比对步骤,在上述跳跃输入/跳跃词典比对步骤中,对上述输入字符串和存储在上述跳跃词典存 储单元中的跳跃词典进行比对,对于和跳跃词典一致的全部关键字候补,如果删除关键字 的删除字符数量wk为0,则分类为表示“关键字在输入字符串中完全一致地出现”的一致 类型EM,如果删除关键字的删除字符数量wk比0大,则分类为表示“在输入字符串中存在 删除字符的状态下和关键字一致”的一致类型DEL,将分类的结果作为一致类型,将一致类 型、输入字符串中的一致开始位置、结束位置、错误开始位置、错误字符数量、原关键字存储在存储单元中,制成一边使输入字符串的绝对跳跃位置P—次增加一个一边以跳跃幅度Wi字进行了 跳跃的字符串即跳跃输入,比对各跳跃输入和上述跳跃词典,对于和跳跃词典一致的全部 关键字候补,计算在关键字上的相对跳跃位置Pi,如果删除关键字的删除字符数量Wk是0, 则分类成表示“在输入字符串中存在插入字符的状态下和关键字一致”的一致类型INS,如 果删除关键字的删除字符数量wk大于0、并且输入字符串的相对跳跃位置pi和删除关键 字的删除字符位置Pk相等、并且输入字符串的跳跃幅度wi和删除关键字的删除字符数量 wk相等,则分类为表示“在输入字符串中存在置换字符的状态下和关键字一致”的一致类型 REP,将分类的结果作为一致类型,将一致类型、输入字符串中的一致开始位置、结束位置、 错误开始位置、错误字符数量以及原关键字存储在存储单元中,其中,1 <N,N是输入 字符串的最大跳跃幅度。
10.根据权利要求9所述的近似比对方法,其特征在于上述跳跃输入/跳跃词典比对步骤具有从存储单元中读出在上述跳跃输入/跳跃词 典比对步骤中存储的关键字候补的集合,生成删除了重复的关键字候补的关键字的集合并 输出的步骤。
11.根据权利要求9或者10所述的近似比对方法,其特征在于上述跳跃词典中的删除关键字具有trie结构,在上述跳跃词典/跳跃词典比对步骤中,上述关键字提取单元在上述输入字符串和上 述跳跃词典的比对中,从上述输入字符串开头开始一边一次移动一个字符一边和上述跳跃 词典进行比对,得到一致的关键字,并且预先保存在输入字符串的各字符位置上的关键字 比对失败位置的值,上述关键字提取单元在上述跳跃输入和上述跳跃词典的比对中,只在绝对跳跃位置的 值大于等于上述输入字符串的字符位置的值或者小于等于将字符位置的值和关键字比对 失败位置的值相加得到的值的情况下进行比对。
12.根据权利要求9或者10所述的近似比对方法,其特征在于上述跳跃词典中的删除关键字具有trie结构,在上述跳跃词典/跳跃词典比对步骤中,上述关键字提取单元在上述输入字符串和上 述跳跃词典的比对中,用AC法比对输入字符串和跳跃词典,得到一致的关键字,并且预先 保存在输入字符串的各字符位置上的上述trie结构的节点号码,上述关键字提取单元在上述跳跃输入和上述跳跃词典的比对中,从上述绝对跳跃位置 起再次开始采用AC法的比对,直到上述trie结构的节点转移到根节点为止进行比对。
13.一种程序,是用于让计算机作为近似比对装置发挥功能的程序,该近似比对装置比 对用自然语言表述的输入字符串和规定的关键字,输出一致的关键字和该关键字的出现位 置,上述计算机具备跳跃词典存储单元,该跳跃词典存储单元对预先给予的关键字,存储 包含删除关键字的跳跃词典,该删除关键字由关键字自身、和从该关键字的全部字符位置 至少删除1个字符后的字符串的集合组成,上述程序让上述计算机作为权利要求1至6中的任意一项所述的近似比对装置的关键 字提取单元发挥功能。
14. 一种记录有权利要求13所述的程序的计算机可读取的记录介质。
全文摘要
本发明的课题是,即使在输入字符串中包含错字和漏字、和设想的关键字有少许不同的表现,并且想提取的关键字数量多的情况下,也能够高速地提取。为了解决该课题,用跳跃词典制成部10对作为想提取的关键字而预先列入表中的关键字词典,制成包含由关键字自身、和从该关键字的全部字符位置至少删除1个字符后的字符串的集合组成的删除关键字的跳跃词典,并存储在跳跃词典存储部20中,通过用关键字提取部30进行输入字符串和上述跳跃词典的比对,从输入字符串中提取预先给予的关键字以及与该关键字近似的关键字,并和该关键词的出现位置一同进行输出。
文档编号G06F17/21GK102138141SQ200980133344
公开日2011年7月27日 申请日期2009年5月19日 优先权日2008年9月5日
发明者今村贤治, 斋藤邦子, 松尾义博, 菊井玄一郎 申请人:日本电信电话株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1