一种并行多模式匹配的方法及系统的制作方法

文档序号:8395871阅读:182来源:国知局
一种并行多模式匹配的方法及系统的制作方法
【技术领域】
[0001]本发明属于计算机领域,特别是电子商务领域,具体涉及一种并行多模式匹配规则的文本过滤系统。
【背景技术】
[0002]多模式匹配是计算机科学领域中的基本问题之一,用于快速判断某一数据块中是否包含规则集中的某一或某些规则,从而进行一系列诸如删除、合并等操作。多模式匹配技术广泛应用于文本处理、网络内容分析、入侵检测、生物信息学、信息检索等领域。
[0003]中国专利申请200810104416.2 “一种并行多模式匹配的方法及系统”提供了一种应用AC算法来处理含有通配符的非确定规则的并行多模式匹配的方法。该发明公开了一种并行多模式匹配的系统,包括:生成模块,用于读取包含匹配规则的规则集;匹配模块,用于读取搜索对象和所述AC自动机,按AC算法应用所述AC自动机进行搜索,判断所述搜索对象是否按子规则在所述匹配规则中的顺序匹配所述匹配规则的所有子规则,如果是,则所述搜索对象匹配所述匹配规则,并输出匹配结果。
[0004]再如专利号为200810222506的中国专利“匹配规则包含次数指示符的并行多模式匹配的方法及系统”公开了一种匹配规则包含次数指示符的并行多模式匹配的系统,包括:
生成模块,用于读取包含匹配规则的规则集,将所述规则集中包含次数指示符的匹配规则从次数指示符处分割成所述匹配规则的子规则,所述子规则为确定规则,所述次数指示符规定的次数为所述次数指示符前面相连的子规则对应的连续重复次数,所述规则集中为确定规则的匹配规则作为其自身的子规则,所述子规则对应的连续重复次数为1,并将所有子规则按照AC算法生成AC自动机;
匹配模块,用于读取搜索对象,按AC算法应用所述AC自动机进行搜索,判断所述搜索对象是否按子规则在所述匹配规则中的顺序和子规则对应的规定连续重复次数匹配所述匹配规则的所有子规则,如果是,则所述搜索对象匹配所述匹配规则,并输出匹配结果。
[0005]以上的过滤服务系统,平均有5台左右的机器提供过滤服务,每台机器平均负载在5左右,过滤时间为秒级。服务器负载过高与过滤服务响应慢,已经无法通过增加服务器得到解决。

【发明内容】

[0006]为解决上述问题,本发明公开了一种并行多模式匹配的方法及系统,以基于AC算法来处理指定的关键字高效过滤文本信息。
[0007]本发明第一个方面公开了一种并行多模式匹配的系统,包括生成模块与匹配模块,所述并行多模式匹配系统包括关键词过滤服务端Servlet、关键词过滤服务端KeywordFilterService 与关键词过滤服务端 AhoCorasick。
[0008]优选的是,所述关键词过滤服务端Servlet用于接收并处理客户端参数。
[0009]在上述任一方案中优选的是,所述客户端参数包括有需要过滤的文本内容、过滤级别、过滤词范围。
[0010]在上述任一方案中优选的是,所述关键词过滤服务端Servlet处理客户端参数是指对主要参数进行非空验证和取值范围验证。
[0011]在上述任一方案中优选的是,所述关键词过滤服务端KeywordFilterService用于获取关键词图型结构AhoCorasick的JAVA对象。
[0012]在上述任一方案中优选的是,所述关键词图型结构AhoCorasick的JAVA对象为事先定义好的静态的JAVA对象。
[0013]在上述任一方案中优选的是,所述关键词图型结构AhoCorasick的JAVA对象为所述关键词过滤服务端KeywordFilterService创建。
[0014]在上述任一方案中优选的是,所述关键词过滤服务端AhoCorasick用于查找关键词并剔除关键词。
[0015]本发明另一方面还公开了一种并行多模式匹配的方法,包含以下步骤:
51、关键词过滤服务端Servlet接收并处理客户端参数;
52、关键词过滤服务端KeywordFilterService获取关键词图型结构AhoCorasick的JAVA对象;
53、关键词过滤服务端AhoCorasick查找关键词并剔除关键词。
[0016]在上述任一方案中优选的是,所述SI步骤中关键词过滤服务端Servlet处理客户端参数为对主要参数进行非空验证和取值范围验证。
[0017]在上述任一方案中优选的是,所述S2步骤中关键词过滤服务端KeywordFilterService获取的关键词图型结构AhoCorasick的JAVA对象为已经定义好的静态的JAVA对象,如果该JAVA对象为空,则由所述关键词过滤服务端KeywordFilterService 进行创建。
[0018]在上述任一方案中优选的是,所述过滤服务端KeywordFilterService创建所述关键词图型结构AhoCorasick的JAVA对象包括以下步骤:
5201、所述过滤服务端KeywordFilterService从关键词表中查出所有关键词;
5202、所述过滤服务端KeywordFilterService将所有关键词重排;
5203、所述过滤服务端KeywordFilterService将每个关键词拆成类型为字符型的数组;
5204、所述过滤服务端KeywordFilterService将每个字符型数据存入类型为AhoCorasick的JAVA对象的多维度集合对象中,每个字符型数据的ASCII码和集合下标相对应。最后一个字符型数据对应的集合对象指向这个关键词的值。
[0019]在上述任一方案中优选的是,在所述S3步骤中,所述关键词过滤服务端AhoCorasick遍历客户端输入的文本内容字节数组,逐维度检测所述多维度集合对象中每个字符的ASCII码对应下标的值是否为空。如果不为空则匹配到了当前字符型数组对应的关键词。并在组装的新文本内容中跳过该关键词。
[0020]在上述任一方案中优选的是,所述并行多模式匹配的方法还可通过读取子规则集来匹配关键字,具体包括以下步骤:
步骤Al,读取包含匹配规则的规则集; 步骤A2,读取搜索对象;
步骤A3,进行多模式匹配。
[0021]在上述任一方案中优选的是,所述多模式匹配象包括以下几步:
步骤S301,按AC算法转移状态;
步骤S302,判断状态节点是否为终态节点,如果是,执行步骤S505,否则,继续读取搜索对象;
步骤S303,查找节点规则表;
步骤S304,判断是否满足子规则的顺序号;
步骤S305,判断是是否匹配完子规则。
【附图说明】
[0022]图1为按照本发明的并行多模式匹配方法的一优选实施例的流程图。
【具体实施方式】
[0023]下面结合附图和优选的实施方式对本发明作进一步的详细描述。
[0024]实施例1:
本发明第一个方面公开了一种并行多模式匹配的系统,包括生成模块与匹配模块,所述并行多模式匹配系统包括关键词过滤服务端Servlet、关键词过滤服务端KeywordFilterService 与关键词过滤服务端 AhoCorasick。
[0025]在本实施例中,所述关键词过滤服务端Servlet用于接收并处理客户端参数。所述客户端参数包括有需要过滤的文本内容、过滤级别、过滤词范围。所述关键词过滤服务端Servlet处理客户端参数是指对主要参数进行非空验证和取值范围验证。
[0026]在本实施例中,所述关键词过滤服务端KeywordFilterService用于获取关键词图型结构AhoCorasick的JAVA对象,所述关键词图型结构AhoCorasick的JAVA对象为事先定义好的静态的JAVA对象,如果没有该JAVA对象,则所述关键词图型结构AhoCorasick的JAVA对象由关键词过滤服务端KeywordFilterService创建。<
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1