近似比对装置、近似比对方法、程序及记录介质制造方法及图纸

技术编号:7146089 阅读:204 留言:0更新日期:2012-04-11 18:40
本发明专利技术的课题是,即使在输入字符串中包含错字和漏字、和设想的关键字有少许不同的表现,并且想提取的关键字数量多的情况下,也能够高速地提取。为了解决该课题,用跳跃词典制成部10对作为想提取的关键字而预先列入表中的关键字词典,制成包含由关键字自身、和从该关键字的全部字符位置至少删除1个字符后的字符串的集合组成的删除关键字的跳跃词典,并存储在跳跃词典存储部20中,通过用关键字提取部30进行输入字符串和上述跳跃词典的比对,从输入字符串中提取预先给予的关键字以及与该关键字近似的关键字,并和该关键词的出现位置一同进行输出。

【技术实现步骤摘要】
【国外来华专利技术】
本专利技术涉及为了从用自然语言记述的文章(输入字符串)中提取预先给予的关键 字,而对输入字符串和规定的关键字进行比对,输出一致的关键字和其出现位置的技术。
技术介绍
<关键字提取>关键字提取是从用自然语言记述的输入字符串中提取如词典那样的预先列入表 中的关键字的任务。例如,考虑从图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个字符 下转移到“金”的枝标签顶本文档来自技高网...

【技术保护点】
1.一种近似比对装置,对用自然语言表述的输入字符串和规定的关键字进行比对,输出一致的关键字和该关键字的出现位置,该近似比对装置的特征在于具备:跳跃词典存储单元,针对预先给予的关键字,存储包含删除关键字的跳跃词典,该删除关键字由关键字自身、和从该关键字的全部字符位置至少删除1个字符后的字符串的集合组成;关键字提取单元,通过比对上述输入字符串和存储在上述跳跃词典存储单元中的上述跳跃词典,从输入字符串提取预先给予的关键字以及与该关键字近似的关键字,并与该关键字的出现位置一同进行输出。

【技术特征摘要】
【国外来华专利技术】...

【专利技术属性】
技术研发人员:斋藤邦子
申请(专利权)人:日本电信电话株式会社
类型:发明
国别省市:JP

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1