一种信息匹配方法及装置制造方法及图纸

技术编号:15690887 阅读:125 留言:0更新日期:2017-06-24 03:38
本申请提供了一种信息匹配方法及装置,包括:按照待匹配信息的字符顺序接收所述待匹配信息;将待匹配信息在预先构建的有穷状态机DFA中进行匹配,所述DFA由预设的关键字构成,所述DFA中每个状态的输出列表包含所述状态的子孙失败状态的输出列表,所述状态的子孙失败状态与所述状态的字符相同;在匹配过程中,如果当前状态没有与所述待匹配信息的字符相匹配的下一状态,跳转到所述当前状态的失败状态继续匹配。采用本申请所提供的技术方案,匹配过程只需要随着DFA中的状态一步一步地往下一个状态跳转,无需返回上一状态以匹配其他关键字,从而可以确保所述待匹配信息只需要扫描一遍即可完成匹配,极大地提高了匹配效率。

Information matching method and device

The invention provides an information matching method and device, including: according to the matching information of the character sequence to receive the information to be matched; the matching information in the pre built finite state machine in DFA, the DFA by default keyword, the DFA in each state of the output list including the state children failed the output list state, the state of the future failure condition and the state of the same characters; in the matching process, if the current state is not matched with the matching information of the character of the next state, jump to the current state of the state failed to match. With the technical scheme for the matching process only with DFA in the state of step by step, a state transition, without the need to return to a state to match other keywords, which can ensure the matching information need only scan can be completed, and greatly improves the matching efficiency.

【技术实现步骤摘要】
一种信息匹配方法及装置
本申请涉及计算机
,尤其涉及一种信息匹配方法及装置。
技术介绍
随着信息技术的不断发展,越来越多的应用场景需要进行信息匹配,例如:搜索引擎的检索词匹配、论文的相似度匹配、拼写检查等。目前,信息匹配技术通常为利用java语言的indexof函数实现关键字匹配,即,建立预先写有若干关键字的文件,将用户在客户端输入的内容与该文件中所含的每个关键字进行匹配。假设预先建立的文件中包括100个关键字,那么,则需要进行100次的全文扫描才能完成对用户输入内容的信息匹配。在这个信息爆炸的时代,采用上述匹配方式进行匹配的效率非常低,无法适应信息量较大的场景。现有技术不足在于:现有的信息匹配方式效率低下,不能适应信息量较大的场景。
技术实现思路
本申请实施例提出了一种信息匹配方法及装置,以解决现有技术中信息匹配方式效率低下,不能适应信息量较大的场景的技术问题。本申请实施例提供了一种信息匹配方法,包括如下步骤:按照待匹配信息的字符顺序接收所述待匹配信息;将待匹配信息在预先构建的有穷状态机DFA中进行匹配,所述DFA由预设的关键字构成,所述DFA中每个状态的输出列表包含所述状态的子孙失败状态的输出列表,所述状态的子孙失败状态与所述状态的字符相同;在匹配过程中,如果当前状态没有与所述待匹配信息的字符相匹配的下一状态,跳转到所述当前状态的失败状态继续匹配。本申请实施例提供了一种信息匹配装置,包括:接收模块,用于按照待匹配信息的字符顺序接收所述待匹配信息;匹配模块,用于将待匹配信息在预先构建的有穷状态机DFA中进行匹配,所述DFA由预设的关键字构成,所述DFA中每个状态的输出列表包含所述状态的子孙失败状态的输出列表,所述状态的子孙失败状态与所述状态的字符相同;在匹配过程中,如果当前状态没有与所述待匹配信息的字符相匹配的下一状态,跳转到所述当前状态的失败状态继续匹配。有益效果如下:本申请实施例所提供的信息匹配方法及装置,预先构建由预设关键字构成的有穷状态机DFA,将待匹配信息在所述DFA中进行匹配,由此关键字的匹配即变成了状态机的跳转;由于本申请实施例中所述DFA每个状态的输出列表包含所述状态的子孙失败状态的输出列表,在匹配过程中,如果当前状态没有与所述待匹配信息的字符相匹配的下一状态,则跳转到所述当前状态的失败状态继续匹配,所述待匹配信息的匹配过程只需要随着所述DFA状态一步一步地往下一状态跳转,无需返回上一状态以匹配其他关键字,从而可以确保所述待匹配信息只需要扫描一遍即可完成匹配,极大地提高了匹配效率。附图说明下面将参照附图描述本申请的具体实施例,其中:图1示出了本申请实施例中信息匹配方法实施的流程示意图;图2示出了本申请实施例中DFA结构示意图;图3示出了本申请实施例中DFA初始化时的示意图;图4示出了本申请实施例中DFA构建完成后的结构示意图;图5示出了本申请实施例中群组聊天限制的DFA示意图;图6示出了本申请实施例中信息匹配装置的结构示意图。具体实施方式为了使本申请的技术方案及优点更加清楚明白,以下结合附图对本申请的示例性实施例进行进一步详细的说明,显然,所描述的实施例仅是本申请的一部分实施例,而不是所有实施例的穷举。并且在不冲突的情况下,本说明中的实施例及实施例中的特征可以互相结合。针对现有技术的不足,本申请实施例提出了一种信息匹配方法及装置,下面进行说明。图1示出了本申请实施例中信息匹配方法实施的流程示意图,如图所示,所述信息匹配方法可以包括如下步骤:步骤101、按照待匹配信息的字符顺序接收所述待匹配信息;步骤102、将待匹配信息在预先构建的有穷状态机(DFA,DeterministicFiniteAutomata)中进行匹配,所述DFA由预设的关键字构成,所述DFA中每个状态的输出列表包含所述状态的子孙失败状态的输出列表,所述状态的子孙失败状态与所述状态的字符相同;步骤103、在匹配过程中,如果当前状态没有与所述待匹配信息的字符相匹配的下一状态,跳转到所述当前状态的失败状态继续匹配。具体实施中,所述待匹配信息可以为网络博客中的一篇文章,也可以为word文档中的某段文字。根据实际场景的及时性需要,所述待匹配信息可以为既有信息,也可以在用户实时输入的信息,例如:所述待匹配信息可以为已公开博文的标题,也可以为用户在搜索引擎中实时输入的检索词语。除此之外,本申请实施例中所述待匹配信息还可以为语音,即,可以接收用户输入的语音信息,将所述语音(或转换成对应的文本)在预先构建的DFA中进行匹配,从而实现所述用户言语内容的检测。本申请实施例中所述预先构建的DFA,可以由预设的若干关键字组成,每个关键字所包含的字符均可以为所述DFA中的状态节点。所述DFA中与某个状态的字符相同的状态,可以作为所述状态的子孙失败状态,每个状态的子孙失败状态可以在DFA构建初始化时预先设定。在具体匹配过程中,可以从所述DFA的初始状态开始匹配,如果当前状态的关键字集合包含所述待匹配信息中某个字符,则根据跳转路径跳转到下一状态,以开始所述待匹配信息中下一字符的读入;如果当前状态没有与所述待匹配信息的字符相匹配的下一状态,则立即跳转到所述当前状态的失败状态继续匹配;如果当前状态的输出列表不为空,则说明已经匹配到有相应的关键字,所述当前状态的输出列表即为本次新增的匹配到的所有关键字集合。本申请实施例所提供的信息匹配方法,可以将待匹配信息在预先构建的DFA中进行匹配,所述DFA中每个状态的输出列表包含所述状态的子孙失败状态的输出列表,在匹配过程中,如果当前状态没有与所述待匹配信息的字符相匹配的下一状态,跳转到所述当前状态的失败状态继续匹配,所述待匹配信息的匹配过程只需要随着所述DFA中各个状态的跳转条件一步一步地向下一状态跳转,无需返回上一状态以匹配其他关键字,从而可以确保所述待匹配信息只需要扫描一遍即可完成匹配,极大地提高了匹配效率。实施中,所述方法可以进一步包括:输出与所述待匹配信息匹配的关键字集合。例如,预设的关键字可以为“红颜薄命”、“灯红酒绿”、“酒色”等,生成的DFA可以如图2所示,其中,虚线代表某个状态与其失败状态的关联关系。DFA初始化时,只有叶子节点默认获得输出列表,其他非叶子节点的输出列表为空,即:H的outputlist为{“红颜薄命”};I的outputlist为{“灯红酒绿”};J的outputlist为{“酒色”};在DFA初始化完毕时,可以立即构建各状态与其子孙失败状态的关联关系,A状态的子孙失败状态为E,G状态的子孙失败状态为C,并分别获得其子孙失败状态的输出列表。本申请实施例中虽然A、G存在子孙失败状态,但由于它们的子孙失败状态的输出列表也为空,故A、G的输出列表依旧为空。假设待匹配信息为“察看红酒色泽为品酒方法之一”,从start开始,匹配“红”,跳转到A状态节点后,没有与下一字符相匹配的状态,所以立即跳转到E状态,从E开始继续匹配,下一字符与“酒”匹配,故跳转到G状态节点;在跳转到G状态节点后,没有与下一字符相匹配的状态,所以立即跳转到C状态,从C开始继续匹配,存在与“色”匹配的下一状态节点,故跳转到J节点,得到输出列表为J的输出列表,即输出与所述待匹配信息匹配的关键字本文档来自技高网...
一种信息匹配方法及装置

【技术保护点】
一种信息匹配方法,其特征在于,包括如下步骤:按照待匹配信息的字符顺序接收所述待匹配信息;将待匹配信息在预先构建的有穷状态机DFA中进行匹配,所述DFA由预设的关键字构成,所述DFA中每个状态的输出列表包含所述状态的子孙失败状态的输出列表,所述状态的子孙失败状态与所述状态的字符相同;在匹配过程中,如果当前状态没有与所述待匹配信息的字符相匹配的下一状态,跳转到所述当前状态的失败状态继续匹配。

【技术特征摘要】
1.一种信息匹配方法,其特征在于,包括如下步骤:按照待匹配信息的字符顺序接收所述待匹配信息;将待匹配信息在预先构建的有穷状态机DFA中进行匹配,所述DFA由预设的关键字构成,所述DFA中每个状态的输出列表包含所述状态的子孙失败状态的输出列表,所述状态的子孙失败状态与所述状态的字符相同;在匹配过程中,如果当前状态没有与所述待匹配信息的字符相匹配的下一状态,跳转到所述当前状态的失败状态继续匹配。2.如权利要求1所述的方法,其特征在于,进一步包括:输出与所述待匹配信息匹配的关键字集合。3.如权利要求2所述的方法,其特征在于,进一步包括:确定匹配的关键字在所述待匹配信息中的位置;根据关键字所在位置、预设关键字权重和关键字的匹配次数计算所述待匹配信息的重要度。4.如权利要求1所述的方法,其特征在于,在所述按照待匹配信息的字符顺序接收所述待匹配信息之后,将待匹配信息在有穷状态机DFA中进行匹配之前,进一步包括:对所述待匹配信息进行预处理操作。5.如权利要求4所述的方法,其特征在于,所述预处理操作包括以下至少一种:中英文转换、拼音汉字转换、繁简体转换、全角半角转换、数字大小写转换、去除干扰字符。6.如权利要求1所述的方法,其特征在于,在所述按照待匹配信息的字符顺序接收所述待匹配信息之前,进一步包括:根据预先设置的关键字构建有穷状态机DFA,所述DFA初始化时所有叶子节点分别获得各自的输出列表;建立所述DFA中各状态与其子孙失败状态的关联关系,每个状态获得所述状态的子孙失败状态的输出列表。7.一种信息匹配装置,其特征在于,包括:接收模块,用于按照待匹配信息的字符顺序接收所述待匹配信息;匹配模块,用于将待匹配...

【专利技术属性】
技术研发人员:黎久希
申请(专利权)人:阿里巴巴集团控股有限公司
类型:发明
国别省市:开曼群岛,KY

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

1