字符串对照装置制造方法及图纸

技术编号:2836324 阅读:229 留言:0更新日期:2012-04-11 18:40
一种字符串对照装置,具备:状态转变表生成部,根据用正规表达描述的对照条件,生成状态转变表;和自动机,根据由所述状态转变表生成部生成的状态转变表进行转变,其中,当根据所述对照条件生成的状态转变表中不存在针对当前状态和输入字符的组的下一个转变目标状态时,所述自动机不继续读入输入字符,而是转变到初始状态。另外,具备:状态转变表生成部,根据用正规表达描述的对照条件,生成状态转变表;和自动机,根据由所述状态转变表生成部生成的状态转变表进行转变,其中,当根据所述对照条件生成的状态转变表中不存在针对当前状态和输入字符的组的下一个转变目标状态时,所述状态转变表生成部不继续读入输入字符,而是设定向规定状态转变的除外字符,生成状态转变表。

【技术实现步骤摘要】
【国外来华专利技术】
本专利技术涉及一种用于进行利用正规表达指定的模式与文章中的文本的对照的技术。
技术介绍
近年来人们在各种领域中推进文档的电子化,寻求文档的高效检索方法。作为检索的一种方法,存在进行利用正规表达指定的模式与文档中的文本的对照的方法。所谓正规表达例如记载在非专利文献1中,是表达被称为正规语言的语言的类(class)的表述方法。作为将正规表达作为检索条件的字符串对照方式,已知基于DFA(DeterministicFinite Automaton,确定性有限自动机)的方法。基于DFA的字符串对照方式是基于状态转变机器(自动机)的模型。状态转变机器在内部具有状态和状态转变函数。状态转变函数是针对当前状态和输入字符确定下一个状态的函数。在使用DFA的字符串对照方式中,逐个字符地读出输入文本,转变成针对当前状态和输入字符的组应用状态转变函数所得到的下一个状态。根据该方法,可以通过不回溯地扫描一次文本来执行对照,从而可执行高速的字符串对照。在执行基于多个条件的对照时,为了区别对照成功的条件,还使用扩展DFA并对各状态定义输出的带输出的有限自动机(Moore机器)。DFA的状态转变函数由作为对照条件的正规表达来决定,但目前已知的是将正规表达一次变换成NFA(Non-deterministic FiniteAutomaton,非确定性有限自动机),并进一步将NFA变换成DFA的过程,例如记载在非专利文献1等中。基于DFA的字符串对照方式具有高速的优点,但另一方面,具有用于实现DFA的状态转变函数的状态转变表容易变得巨大的缺点。作为一例,以专利文献3中公开的图52的对照条件为例。图53是在现有的带输出的有限自动机中根据图52的对照条件生成的状态转变表及失败函数。这样,必须针对状态数18和字符类别的5个种类,生成保持90个组的状态转变表。作为解决该问题的方法,在专利文献1、专利文献2中示出如下方法在将基于AC(Aho-Corasick)法的状态转变表变换成DFA之后,从状态转变表中去掉向初始状态的转变操作以及向初始状态的下一个状态的转变操作,从而削减状态转变表的存储容量。但是,在专利文献1、专利文献2中示出的字符串对照方法中,由于将对照的对象限定于固定的字符串关键字,所以不能以一般的正规表达作为对照的对象。另外,在专利文献3中示出在DFA中通过定义失败函数来削减状态转变表的方法。但是,专利文献3中示出的方法在利用失败函数转变一次后的状态下有时会再次转变失败。即,有时会连锁产生转变的失败。这时,存在必须重复参照失败函数、对照速度降低的问题。作为一例,以专利文献3中公开的图52的对照条件为例。图54是根据图52的对照条件生成的状态转变表及失败函数,公开在专利文献3中。以对照条件是图52的条件、输入字符串是“aaca”的情况为例。在专利文献3中公开的方法中,首先,将状态初始化成状态1。接着,首先读第1个字符“a”,转变成在状态转变表的状态1的行、输入字符“a”的列中示出的状态3。接着,读第2个字符“a”,同样地,从状态3转变成状态6。接着,通过读第个3字符“c”,从状态6转变成状态10。但是,接着在第4个字符的字符“a”出现时,由于在状态10下不存在对应于字符“a”的转变目标,所以首先转变成作为状态10失败时的转变目标的状态5。并且,由于在状态5下不存在对应于字符“a”的转变目标,所以转变成作为状态5失败时的转变目标的状态2。可是,由于在状态2下也不存在对应于字符“a”的转变目标,所以转变成作为状态2失败时的转变目标的状态1。由于在状态1下存在对应于字符“a”的转变目标状态3,所以转变成状态3。这样,对于第4个字符的输入字符共计执行了4次状态转变表的参照和状态转变,从而整体上对于4个字符的输入字符需要7次状态转变。这样,专利文献3的方法有时需要进行重复状态转变的失败、每次都参照失败时的转变目标的动作。因此,存在状态转变表的参照次数增加、对照性能降低的问题。非专利文献1E.J.Hopcroft,D.J.Ullman,“Formal Languagesand their Relation to Automata”,Addison Wesley(1969)专利文献1特开2004-103035号公报专利文献2特开2004-103034号公报专利文献3特许第2994926号公报
技术实现思路
专利技术所要解决的技术问题本专利技术为了解决上述问题而作出,其目的在于针对以正规表达为对照条件的字符串对照,削减存储状态转变表所需的存储容量。另外,其目的在于使由于转变失败所引起的状态转变表的参照次数为每1个字符2次以下,防止由于重复转变的失败所引起的性能降低,从而可执行高速的字符串对照。解决技术问题的技术方案本专利技术的字符串对照装置具备状态转变表生成部,根据用正规表达描述的对照条件,生成状态转变表;和自动机,根据由所述状态转变表生成部生成的状态转变表进行转变,其中,当根据所述对照条件生成的状态转变表中不存在针对当前状态和输入字符的组的下一个转变目标状态时,所述自动机不继续读入输入字符,而是转变到初始状态。专利技术效果具备根据用正规表达描述的对照条件生成状态转变表的状态转变表生成部、和根据由所述状态转变表生成部生成的状态转变表进行转变的自动机,当根据所述对照条件生成的状态转变表中不存在针对当前状态和输入字符的组的下一个转变目标状态时,所述自动机不继续读入输入字符而是转变至初始状态,由此可削减存储状态转变表所需的存储容量。附图说明图1是表示字符串对照装置的结构的说明图。图2是表示对照条件2的构成的说明图。图3是表示条件式17的构成的说明图。图4是表示状态转变表生成部3的构成的说明图。图5是表示状态转变表存储部4的构成的说明图。图6是表示输出表存储部5的结构的说明图。图7是表示对照结果10的构成的说明图。图8是表示字符串对照装置的动作的流程图。图9是表示对照条件的编译动作的流程图。图10是表示追加向初始状态的失败转变的流程的流程图。图11是表示追加向初始状态的失败转变(从初始状态起不存在基于σany的转变目标的情况)的流程的流程图。图12是表示追加向初始状态的失败转变(从初始状态起存在基于σany的转变目标的情况)的流程的流程图。图13是表示除去非确定性转变的流程的流程图。图14是表示进行状态集合的初始化的流程的流程图。图15是表示除去与Σ有关的非确定性转变的流程的流程图。图16是表示除去与σother有关的非确定性转变的流程的流程图。图17是表示生成新状态的流程的流程图。图18是表示修正基于σother的状态转变的流程的流程图。图19是表示除去未使用状态的流程的流程图。图20是表示除去冗余状态的流程的流程图。图21是表示删除冗余的状态转变的流程的流程图。图22是表示生成状态转变表和输出表的流程的流程图。图23是表示对照输入文档的流程的流程图。图24是说明元字符“.”的置换的说明图。图25是说明元字符“^”的置换的说明图。图26是说明包含向初始状态的ε转变的NFA的说明图。图27是说明ε转变的省略的说明图。图28是说明必须追加失败转变的情况的说明图。图29是说明追加失败转变的说明图。图30是说明从初始状态起存在基于σany的转变的情况的说明图。图31是说明从初本文档来自技高网
...

【技术保护点】
一种字符串对照装置,其特征在于,具备:状态转变表生成部,根据用正规表达描述的对照条件,生成状态转变表;和自动机,根据由所述状态转变表生成部生成的状态转变表进行转变,其中,当根据所述对照条件生成的状态转变表中不存在针对 当前状态和输入字符的组的下一个转变目标状态时,所述自动机不继续读入输入字符,而是转变到初始状态。

【技术特征摘要】
【国外来华专利技术】1.一种字符串对照装置,其特征在于,具备状态转变表生成部,根据用正规表达描述的对照条件,生成状态转变表;和自动机,根据由所述状态转变表生成部生成的状态转变表进行转变,其中,当根据所述对照条件生成的状态转变表中不存在针对当前状态和输入字符的组的下一个转变目标状态时,所述自动机不继续读入输入字符,而是转变到初始状态。2.根据权利要求1所述的字符串对照装置,其特征在于在输入了多个对照条件时,所述状态转变表生成部根据状态的合并来进行输出描述的合并,生成输出表,所述自动机根据所述输出表进行输出。3.根据权利要求1所述的字符串对照装置,其特征在于所述状态转变表生成部在生成状态转变表时,当基于规定的转变字符σ可以从初始状态q0转变成规定的状态q1、并且可以基于所述规定的转变字符σ从任意状态q转变时,追加基于所述规定的转变字符σ的、从所述任意状态q向所述规定状态q1的状态转变。4.根据权利要求1所述的字符串对照装置,其特征在于所述状态转变表生成部利用散列表构成所述状态转变表。5.一种字符串对照装置,其特征在于,具备状态转变表生成部,根据用正规表达描述的对照条件,生成状态转变表;和自动机,根据由所述状态转变表生成部生成的状态转变表进行转变,其中,当根据所述对照条件生成的状态转变表中不存在针对当前状态和输入字符的组的下一个转变目标状态时,所述状态转变表生成部不继续读入输入字符,而是设定向规定状态转变的除外字符,生成状态转变表。6.根据权利要求5所述的字符串对照装置,其特征在于当根据所述对照条件生成的状态转变表中不存在针对当前状态和输入字符的组的下一个转变目标状态时,所述状态转变表生成部不继续读入输入字符,而是生成向初始状态转变的状态转变表。7.根据权利要求5所述的字符串对照装置,其特征在于在输入了多个对照条件时,所述状态转变表生成部根据状态的合并来进行输出描述的合并,生成输出表,所述自动机根据所述输出表进行输出。8.根据权利要求5所述的字符串对照装置,其特征在于当从某个状态起存在基于任意字符的转变目标q1和基于规定的转变字符σ的转变目标q2时,所述状态转变表生成部用所述除外字符置换所述任意字符,并且用合并了q1和q2的状态来置换基于所述规定的转变字符σ的转变目标。...

【专利技术属性】
技术研发人员:郡光则
申请(专利权)人:三菱电机株式会社
类型:发明
国别省市:JP[日本]

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

1