CN106547878A - 基于多关键词的快速过滤方法 - Google Patents

基于多关键词的快速过滤方法 Download PDF

Info

Publication number
CN106547878A
CN106547878A CN201610949845.4A CN201610949845A CN106547878A CN 106547878 A CN106547878 A CN 106547878A CN 201610949845 A CN201610949845 A CN 201610949845A CN 106547878 A CN106547878 A CN 106547878A
Authority
CN
China
Prior art keywords
word
rule
keyword
atomic
key word
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201610949845.4A
Other languages
English (en)
Inventor
陈豪
弓伟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Micro Netcom Ltd By Share Ltd
Original Assignee
Beijing Micro Netcom Ltd By Share Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Micro Netcom Ltd By Share Ltd filed Critical Beijing Micro Netcom Ltd By Share Ltd
Priority to CN201610949845.4A priority Critical patent/CN106547878A/zh
Publication of CN106547878A publication Critical patent/CN106547878A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/335Filtering based on additional data, e.g. user or group profiles

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种基于多关键词的快速过滤方法。该方法通过关键词编号,结构存储,过滤规则分解成原子规则,对内容逐字进行关键词查找的步骤实现。本发明基于多关键词的快速过滤方法大大提高了关键词过滤的性能,普通单CPU执行性能大概在100W次/秒,满足了高效和迅速的内容过滤,过滤性能约是普通正则过滤的2000倍以上。

Description

基于多关键词的快速过滤方法
技术领域
本发明涉及一种通讯词语的过滤方法,特别涉及一种基于多关键词的快速过滤方法。
背景技术
正则算法是通信过程中常用的逻辑算法,基于正则表达式,其来源可上溯至对人类神经系统如何工作的早期研究。Warren McCulloch和Walter Pitts这两位神经生理学家研究出一种数学方式来描述这些神经网络。1956年,一位叫Stephen Kleene的数学家在McCulloch和Pitts早期工作的基础上,发表了一篇标题为“神经网事件的表示法”的论文,引入了正则表达式的概念。正则表达式就是用来描述他称为“正则集的代数”的表达式,因此采用“正则表达式”这个术语。随后,发现可以将这一工作应用于使用Ken Thompson的计算搜索算法的一些早期研究,Ken Thompson是Unix的主要发明人。正则表达式的第一个实用应用程序就是Unix中的qed编辑器。正则表达式(regular expression)描述了一种字符串匹配的模式,可以用来检查一个串是否含有某种子串、将匹配的子串做替换或者从某个串中取出符合某个条件的子串等。列目录时,dir*.txt或ls*.txt中的*.txt就不是一个正则表达式,因为这里*与正则式的*的含义是不同的。正则表达式是由普通字符(例如字符a到z)以及特殊字符(称为元字符)组成的文字模式。正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。
在即时通信(如短信)过程中,基于内容的安全性和合法性,需要将信息里的词语进行过滤,以保证内容不违反相关法规。过滤规则涉及的关键词存在多词组合情况,存在“与”和“或”的规则。由于通信信息量大,且要保证信息的及时性,采用正则算法进行过滤,将产生严重的性能问题,而造成信息延误或积压。
发明内容
本发明的目的在于提供一种基于多关键词的快速过滤方法。
一种基于多关键词的快速过滤方法,包括如下步骤:
1)将所有关键词编号,结构存储,采用首字编码的位置索引,相同首字的关键词顺序存储。记作集合A;
2)将过滤规则分解成原子规则,原子规则即只含有单词组或“与关系”的多词组,如果原始规则中含有“或”,将被分解成多个原子规则,原子规则按照关键词编号增序排列,并对首词建立索引,相同首词的按编号增序存储,记作集合B;
3)对内容逐字进行关键词查找,在A找出内容里的不同关键词集合C,并将C集合按关键词编号进行位流标记,对集合C逐词在B中进行查找,如果B中某个首词内的规则被C包含,则内容包含这个过滤规则,过滤结束。
所述关键词规模为5000-80000个。
与现有技术相比,本发明具有如下有益效果:本发明基于多关键词的快速过滤方法大大提高了关键词过滤的性能,满足了高效和迅速的内容过滤,过滤性能约是普通正则过滤的2000倍以上。通过测试,关键词规模在10000个左右,规则在2000个,内容长度在100,普通单CPU执行性能大概在300-400次/秒,远远不能满足通信业务量的要求。采用本发明的过滤方法,普通单CPU执行性能大概在100W次/秒,大大提高了过滤性能。
附图说明
图1是本发明基于多关键词的快速过滤方法实现的逻辑流程图。
具体实施方式
下面结合附图,对本发明的具体实施方式进行详细描述,但应当理解本发明的保护范围并不受具体实施方式的限制。
一种基于多关键词的快速过滤方法,包括如下步骤:
1)将所有关键词编号,结构存储,采用首字编码的位置索引,相同首字的关键词顺序存储。记作集合A;
2)将过滤规则分解成原子规则,原子规则即只含有单词组或“与关系”的多词组,如果原始规则中含有“或”,将被分解成多个原子规则,原子规则按照关键词编号增序排列,并对首词建立索引,相同首词的按编号增序存储,记作集合B;
3)对内容逐字进行关键词查找,在A找出内容里的不同关键词集合C,并将C集合按关键词编号进行位流标记,对集合C逐词在B中进行查找,如果B中某个首词内的规则被C包含,则内容包含这个过滤规则,过滤结束。
所述关键词规模为5000-80000个。
目前行业内对内容过滤通常采用正则规则进行过滤。正则过滤具有极高的灵活性和实用性,但在我们这个使用场景下,通用的正则过滤的几个实现工具都不能满足我们队过滤性能的要求。通过我们的测试,在关键词规模在10000个左右,规则在2000个,内容长度在100,普通单CPU执行性能大概在300-400次/秒,远远不能满足我们通信业务量的要求。采用我们自实现的过滤方法,普通单CPU执行性能大概在100W次/秒,大大提高了过滤性能。
首先,我们队规则进行的预先的原子分解,因此在实际过滤时我们不在有表达式的分析过程。假设内容长度为N,关键词规模为M,原子规则数为X,查找出的关键词集合为A。我们在进行关键词查找时,由于采用的位置索引,因此复杂度为常数级1。而在规则匹配时,复杂度A。因此整个算法复杂度为N*A。由于A在我们实际应用里,基本都是常数级的,因此整个算法大大优先于正则匹配。
以上公开的仅为本发明的具体实施例,但是,本发明并非局限于此,任何本领域的技术人员能思之的变化都应落入本发明的保护范围。

Claims (2)

1.一种基于多关键词的快速过滤方法,其特征在于,包括如下步骤:
1)将所有关键词编号,结构存储,采用首字编码的位置索引,相同首字的关键词顺序存储。记作集合A;
2)将过滤规则分解成原子规则,原子规则即只含有单词组或“与关系”的多词组,如果原始规则中含有“或”,将被分解成多个原子规则,原子规则按照关键词编号增序排列,并对首词建立索引,相同首词的按编号增序存储,记作集合B;
3)对内容逐字进行关键词查找,在A找出内容里的不同关键词集合C,并将C集合按关键词编号进行位流标记,对集合C逐词在B中进行查找,如果B中某个首词内的规则被C包含,则内容包含这个过滤规则,过滤结束。
2.根据权利要求1所述的基于多关键词的快速过滤方法,其特征在于,所述关键词规模为5000-80000个。
CN201610949845.4A 2016-10-26 2016-10-26 基于多关键词的快速过滤方法 Pending CN106547878A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610949845.4A CN106547878A (zh) 2016-10-26 2016-10-26 基于多关键词的快速过滤方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610949845.4A CN106547878A (zh) 2016-10-26 2016-10-26 基于多关键词的快速过滤方法

Publications (1)

Publication Number Publication Date
CN106547878A true CN106547878A (zh) 2017-03-29

Family

ID=58392726

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610949845.4A Pending CN106547878A (zh) 2016-10-26 2016-10-26 基于多关键词的快速过滤方法

Country Status (1)

Country Link
CN (1) CN106547878A (zh)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102857493A (zh) * 2012-06-30 2013-01-02 华为技术有限公司 内容过滤方法和装置
CN105574090A (zh) * 2015-12-10 2016-05-11 北京中科汇联科技股份有限公司 一种敏感词过滤方法及系统

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102857493A (zh) * 2012-06-30 2013-01-02 华为技术有限公司 内容过滤方法和装置
CN105574090A (zh) * 2015-12-10 2016-05-11 北京中科汇联科技股份有限公司 一种敏感词过滤方法及系统

Similar Documents

Publication Publication Date Title
US10095755B2 (en) Fast identification of complex strings in a data stream
Giugno et al. Graphgrep: A fast and universal method for querying graphs
CN103150493B (zh) 一种JavaScript代码的混淆方法和装置
CN104391881B (zh) 一种基于分词算法的日志解析方法及系统
CN106874401A (zh) 一种面向数据库加密字段模糊检索的密文索引方法
CN102867049B (zh) 一种基于单词查找树实现的汉语拼音快速分词方法
CN104899264A (zh) 一种多模式正则表达式匹配方法及装置
CN105589894B (zh) 文档索引建立方法和装置、文档检索方法和装置
CN103164393B (zh) 报表公式处理方法和系统
CN107038026A (zh) 一种增量式的自动机更新方法与系统
CN103176905B (zh) 一种缺陷关联方法及装置
Din et al. A stochastic stability analysis of an HBV–COVID-19 co-infection model in resource limitation settings
CN104035980A (zh) 一种面向结构化医药信息的检索方法和系统
CN107870935A (zh) 一种搜索方法及装置
CN106547878A (zh) 基于多关键词的快速过滤方法
CN105653567A (zh) 一种文本序列数据中快速查找特征字符串的方法
Horie et al. Extracting differences between regular tree grammars
US20200380048A1 (en) Architecture and functional model of a generic data excavation engine
Bhardwaj et al. Efficient Wu Manber string matching algorithm for large number of patterns
CN109657120A (zh) 一种匹配度高的互联网数据采集方法
Tevatia et al. An offensive algorithm for multi-pattern parameterized string matching
KR101331946B1 (ko) 와일드카드 매칭을 이용한 검색 방법
CN103885979B (zh) 推送信息的方法和装置
CN106547777A (zh) 文章转载量的统计方法及装置
CA2855398C (en) Fast identification of complex strings in a data stream

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication

Application publication date: 20170329

RJ01 Rejection of invention patent application after publication