CN106933818A - 一种快速的多关键字文本匹配方法及装置 - Google Patents
一种快速的多关键字文本匹配方法及装置 Download PDFInfo
- Publication number
- CN106933818A CN106933818A CN201511009718.8A CN201511009718A CN106933818A CN 106933818 A CN106933818 A CN 106933818A CN 201511009718 A CN201511009718 A CN 201511009718A CN 106933818 A CN106933818 A CN 106933818A
- Authority
- CN
- China
- Prior art keywords
- keyword
- crucial
- crucial phrase
- matching
- phrase
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/33—Querying
- G06F16/3331—Query processing
- G06F16/3332—Query translation
- G06F16/3334—Selection or weighting of terms from queries, including natural language queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/33—Querying
- G06F16/3331—Query processing
- G06F16/334—Query execution
- G06F16/3344—Query execution using natural language analysis
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Artificial Intelligence (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)
- Document Processing Apparatus (AREA)
Abstract
本发明公开了一种快速的多关键字文本匹配方法及其装置,通过建立关键词的多值索引来解决关键词重复和关键词分组的问题,通过对大文件进行分块、块尾小部分重复搜索以及内存映射来解决占用内存过大和性能问题。
Description
技术领域
本申请涉及语义检索,尤其涉及一种基于关键字的文本匹配方法及装置。
背景技术
在企业中提到数据保护,大家可能常常想起文档,很少有人会关注文档中的内容,对数据的管理也比较单一,通常就是全加密、全授权,对文档的重要性不做区分,随着社会的发展,文档的格式越来越多,安全事件的不断爆发,使得人们对数据的关注度发生了变化,数据也分成了结构化数据和非结构化数据,更加的关注文档内容中的敏感信息,使用文档的应用有哪些,对不同类型的文档、含有不同内容的文档有区别的管理和存储。
以前要管控数据,大多是强管控,直接全部隔离,或者全部加密,我们称之为囚笼、枷锁式的管控,在实际的数据生产、使用、流转中带来了很多不必要的麻烦,人们需要更加灵活的方式来处理数据,智能化的数据安全管控应运而生,企业管理员可以按照数据的重要程度有针对性的对数据进行控制。核心能力就是文档的内容识别,通过识别可以扩展到对数据的防控。内容识别应该具备的识别能力具体来说有关键字、正则表达式、文档指纹、文档聚类等。
基于内容的基础检测技术中通常有三种方式:正则表达式检测、关键字检测和关键字对检测。基础检测方法采用常规的检测技术进行内容搜索和匹配,比较常见的都是正则表达式和关键字,此两种方法可以对明确的敏感信息内容进行检测。
基于关键字的内容搜索一般分为单模算法和多模算法两种。每次找一个词用单模算法,要同时查找多个词用多模算法。多模算法常用的有AC算法、WM算法、正则表达式等。采用AC算法可以一次性找出所有给定的词。
目前,现有技术存在以下缺点:
(1)只是简单的使用AC算法多次查找文本,不能处理关键词重复,关键词分组、关键词计数等问题,并不能完全发挥AC算法的优势。有的甚至使用的是单模算法做文本匹配。
(2)需要多次读取文件内容进行匹配,或者读取整个文本内容到内存再用AC算法匹配,匹配速度慢,占用内存较大。
发明内容
本发明提出一种基于快速的文本匹配方法,用于快速搜索文本内容。
本发明解决的技术问题:
本发明在常规多模算法的基础上合并多组要搜索的关键词在一起,通过建立关键词的多值索引来解决关键词重复和关键词分组的问题。通过对大文件分块内存映射和内存块拼接解决占用内存过大和性能问题。
本发明的技术方案:
本发明提供一种快速的多关键字文本匹配方法,包括以下步骤:(1)建立匹配规则,一条匹配规则包含多个关键词组,该多个关键词组之间是或的关系,一个关键词组包含多个关键词以及该关键词组的词频阈值,组内关键词与关键词之间是等价关系,定义关键词组内关键词出现的次数和为词频,若某关键词组的词频超过该关键词组的词频阈值则认为该关键词组所属的匹配规则命中;(2)建立关键词的多值索引,使不同匹配规则或不同关键词组之间重复的关键词对应多条“匹配规则+关键词组”组合,由此,通过关键词即可找到对应的所有“匹配规则+关键词组”组合,对找到的所有“匹配规则+关键词组”组合内的该关键词分别进行计数,即重复的关键词在不同的关键词组内分别计数,相当于每个关键词组都独立的进行一次匹配,从而使一次匹配达到多次匹配的效果。
本发明提供一种快速的多关键字文本匹配装置,包括以下模块:(1)匹配规则建立模块,用于建立匹配规则,一条匹配规则包含多个关键词组,该多个关键词组之间是或的关系,一个关键词组包含多个关键词以及该关键词组的词频阈值,组内关键词与关键词之间是等价关系,定义关键词组内关键词出现的次数和为词频,若某关键词组的词频超过该关键词组的词频阈值则认为该关键词组所属的匹配规则命中;(2)关键词多值索引建立及匹配模块,用于建立关键词的多值索引,使不同匹配规则或不同关键词组之间重复的关键词对应多条“匹配规则+关键词组”组合,由此,通过关键词即可找到对应的所有“匹配规则+关键词组”组合,对找到的所有“匹配规则+关键词组”组合内的该关键词分别进行计数,即重复的关键词在不同的关键词组内分别计数,相当于每个关键词组都独立的进行一次匹配,从而使一次匹配达到多次匹配的效果。
优选的,采用文件映射内存的方式来执行搜索。当被搜索的文件较大导致不能一次性加载到内存中时,采用将文件分块且重复搜索块边界的处理方式。采用记录匹配位置在整个文件中的偏移量的方法来滤除重复的匹配结果。多关键字文本匹配采用多模匹配算法,例如AC算法、正则表达式或WM算法。
本发明的技术效果:
1.真正利用AC算法等多模匹配算法,只对输入数据进行一次匹配,性能显著提高。
2.采用文件映射的分块处理方法,减少了内存占用,可以处理超大文件,同时不会降低搜索匹配性能。
附图说明
图1为关键词、关键词组、匹配规则的关系图。
图2为关键词多值索引图。
图3为文件分块处理示意图。
具体实施方式
以下给出相关缩略语和关键术语定义:
AC算法:全称Aho-Corasick算法,是一种字符串多模式匹配算法。用于在一段文本中查找多个模式字符串。
关键词:AC算法中要匹配搜索的词。
关键词组:一个关键词组包含多个关键词以及该关键词组的词频阈值,组内关键词与关键词之间是等价关系。
词频:关键词组内的关键词出现的次数和。
匹配规则:一条规则包含多个关键词组,关键词组之间是或的关系,任意一组关键词满足词频的阈值则认为匹配规则命中。
如图1所示,匹配规则包含多个“关键词组”,“关键词组”包含多个关键词及该关键词组的词频阈值,不同规则或关键词组内可以包含相同的关键词。
最终要在文本中确定哪些规则是命中的,即任意一个关键词组的词频超过该关键词组的词频阈值则认为该关键词组所在的规则命中。
要充分利用AC算法的优势就要把所有规则和关键词组内的关键词合并在一起,由AC算法一次匹配完成。考虑到规则之间的关键词会重复出现,则需要过滤掉重复的词,保证AC算法搜索的关键词不会出现重复,这里采用建立关键词的多值索引的方法解决规则或关键词组之间关键词重复的问题,建立多值索引后可以由关键词找到对应的规则和关键词组。关键词的多值索引如图2所示。
重复的关键词对应多条规则和关键词组。当搜索到一个关键词时要对所有规则和关键词组内的相同的关键词进行计数,即重复的关键词会在不同的关键词组内多次计数。相当于每个关键词组都独立的进行一次匹配。这样一次匹配达到了多次匹配的效果。
总结本发明的快速多关键字文本匹配方法,步骤如下:(1)建立匹配规则,一条匹配规则包含多个关键词组,该多个关键词组之间是或的关系,一个关键词组包含多个关键词以及该关键词组的词频阈值,组内关键词与关键词之间是等价关系,定义关键词组内关键词出现的次数和为词频,若某关键词组的词频超过该关键词组的词频阈值则认为该关键词组所属的匹配规则命中;(2)建立关键词的多值索引,使不同匹配规则或不同关键词组之间重复的关键词对应多条“匹配规则+关键词组”的组合,由此,通过关键词即可找到对应的所有“匹配规则+关键词组”组合,对找到的所有“匹配规则+关键词组”组合内的该关键词分别进行计数,即重复的关键词在不同的关键词组内分别计数,相当于每个关键词组都独立的进行一次匹配,从而使一次匹配达到多次匹配的效果。
由于被检索的内容通常是office、pdf、txt等包含文本内容的文件,经过解压缩和文件格式转换后生成纯文本的文件。当文本内容不大时可以一次性加载到内存中进行搜索匹配等处理,当文本内容较大时只能加载部分文本内容到内存中,需要对文件进行分块,每次加载文件的一块到内存进行搜索处理,最后需要合并多次处理结果。这样可以用较小内存来处理很大的文件。当文件分块后会导致文件中的词被拆分到前后两个文件块中,最终导致跨越块边界的词无法被搜索出来,这里采用重复搜索块边界的方法来解决,如图3所示。一般关键词长不会超过2048字节,选取4k字节作为相邻文件块的重复区域,每次搜索一个文件块在加上4k字节。为了提高性能,不采用读取文件的方式,而是采用文件映射内存的方式,每次搜索文件映射长度为一个文件块+4K。例如:文件分块大小为4MB,一次文件映射为4MB+4K,每次匹配的长度为4MB+4K,每块搜索会多搜索4K的数据。当在重复区域搜索出关键词时会导致下一块搜索时再次被搜索出来,这里采用记录上次匹配位置在整个文件中的偏移量的方法过滤掉,因为重复匹配位置的文件偏移量总是相同的。
本发明使用的AC算法可用正则表达式或WM算法等其它多模匹配算法替代。
Claims (10)
1.一种快速的多关键字文本匹配方法,其特征在于,包含以下步骤:(1)建立匹配规则,一条匹配规则包含多个关键词组,该多个关键词组之间是或的关系,一个关键词组包含多个关键词以及该关键词组的词频阈值,组内关键词与关键词之间是等价关系,定义关键词组内关键词出现的次数和为词频,若某关键词组的词频超过该关键词组的词频阈值则认为该关键词组所属的匹配规则命中;(2)建立关键词的多值索引,使不同匹配规则或不同关键词组之间重复的关键词对应多条“匹配规则+关键词组”的组合,由此,通过关键词即可找到对应的所有“匹配规则+关键词组”组合,对找到的所有“匹配规则+关键词组”组合内的该关键词分别进行计数,即重复的关键词在不同的关键词组内分别计数,相当于每个关键词组都独立的进行一次匹配,从而使一次匹配达到多次匹配的效果。
2.如权利要求1所述的多关键字文本匹配方法,其特征在于,采用文件映射内存的方式来执行搜索。
3.如权利要求2所述的多关键字文本匹配方法,其特征在于,当被搜索的文件较大导致不能一次性加载到内存中时,采用将文件分块且重复搜索块边界的处理方式。
4.如权利要求3所述的多关键字文本匹配方法,其特征在于,采用记录匹配位置在整个文件中的偏移量的方法来滤除重复的匹配结果。
5.如权利要求1所述的多关键字文本匹配方法,其特征在于,多关键字文本匹配采用多模匹配算法。
6.一种快速的多关键字文本匹配装置,其特征在于,包括以下模块:(1)匹配规则建立模块,用于建立匹配规则,一条匹配规则包含多个关键词组,该多个关键词组之间是或的关系,一个关键词组包含多个关键词以及该关键词组的词频阈值,组内关键词与关键词之间是等价关系,定义关键词组内关键词出现的次数和为词频,若某关键词组的词频超过该关键词组的词频阈值则认为该关键词组所属的匹配规则命中;(2)关键词多值索引建立及匹配模块,用于建立关键词的多值索引,使不同匹配规则或不同关键词组之间重复的关键词对应多条“匹配规则+关键词组”组合,由此,通过关键词即可找到对应的所有“匹配规则+关键词组”组合,对找到的所有“匹配规则+关键词组”组合内的该关键词分别进行计数,即重复的关键词在不同的关键词组内分别计数,相当于每个关键词组都独立的进行一次匹配,从而使一次匹配达到多次匹配的效果。
7.如权利要求6所述的多关键字文本匹配装置,其特征在于,采用文件映射内存的方式来执行搜索。
8.如权利要求7所述的多关键字文本匹配装置,其特征在于,当被搜索的文件较大导致不能一次性加载到内存中时,采用将文件分块且重复搜索块边界的处理方式。
9.如权利要求8所述的多关键字文本匹配装置,其特征在于,采用记录匹配位置在整个文件中的偏移量的方法来滤除重复的匹配结果。
10.如权利要求6所述的多关键字文本匹配装置,其特征在于,多关键字文本匹配采用多模匹配算法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201511009718.8A CN106933818B (zh) | 2015-12-29 | 2015-12-29 | 一种快速的多关键字文本匹配方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201511009718.8A CN106933818B (zh) | 2015-12-29 | 2015-12-29 | 一种快速的多关键字文本匹配方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106933818A true CN106933818A (zh) | 2017-07-07 |
CN106933818B CN106933818B (zh) | 2019-06-11 |
Family
ID=59457557
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201511009718.8A Active CN106933818B (zh) | 2015-12-29 | 2015-12-29 | 一种快速的多关键字文本匹配方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106933818B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109064121A (zh) * | 2018-07-11 | 2018-12-21 | 飞天诚信科技股份有限公司 | 一种签署电子合同的方法及装置 |
CN109241040A (zh) * | 2017-07-10 | 2019-01-18 | 北京京东尚科信息技术有限公司 | 数据清洗的方法和装置 |
CN110414251A (zh) * | 2019-07-31 | 2019-11-05 | 北京明朝万达科技股份有限公司 | 数据监测方法和装置 |
CN110956271A (zh) * | 2019-10-21 | 2020-04-03 | 北京明朝万达科技股份有限公司 | 一种海量数据的多级分类方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110016142A1 (en) * | 2008-03-31 | 2011-01-20 | Huawei Technologies Co., Ltd. | Method and apparatus for creating pattern matching state machine and identifying pattern |
CN104298762A (zh) * | 2014-10-22 | 2015-01-21 | 小米科技有限责任公司 | 提供信息的方法和装置 |
CN104714951A (zh) * | 2013-12-13 | 2015-06-17 | 世纪禾光科技发展(北京)有限公司 | 一种并行多模式匹配的方法及系统 |
-
2015
- 2015-12-29 CN CN201511009718.8A patent/CN106933818B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110016142A1 (en) * | 2008-03-31 | 2011-01-20 | Huawei Technologies Co., Ltd. | Method and apparatus for creating pattern matching state machine and identifying pattern |
CN104714951A (zh) * | 2013-12-13 | 2015-06-17 | 世纪禾光科技发展(北京)有限公司 | 一种并行多模式匹配的方法及系统 |
CN104298762A (zh) * | 2014-10-22 | 2015-01-21 | 小米科技有限责任公司 | 提供信息的方法和装置 |
Non-Patent Citations (3)
Title |
---|
央广网: "明朝万达发布数据防泄漏网关 保护企业数据安全", 《HTTP://TECH.QIANLONG.COM/2015/1110/81078.SHTML》 * |
田帆 等: "基于多模式匹配算法的供应商搜索系统", 《计算机工程》 * |
高朝勤 等: "一种面向入侵检测的快速多模式匹配算法", 《计算机应用》 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109241040A (zh) * | 2017-07-10 | 2019-01-18 | 北京京东尚科信息技术有限公司 | 数据清洗的方法和装置 |
CN109241040B (zh) * | 2017-07-10 | 2021-05-25 | 北京京东尚科信息技术有限公司 | 数据清洗的方法和装置 |
CN109064121A (zh) * | 2018-07-11 | 2018-12-21 | 飞天诚信科技股份有限公司 | 一种签署电子合同的方法及装置 |
CN110414251A (zh) * | 2019-07-31 | 2019-11-05 | 北京明朝万达科技股份有限公司 | 数据监测方法和装置 |
CN110956271A (zh) * | 2019-10-21 | 2020-04-03 | 北京明朝万达科技股份有限公司 | 一种海量数据的多级分类方法及装置 |
CN110956271B (zh) * | 2019-10-21 | 2022-12-09 | 北京明朝万达科技股份有限公司 | 一种海量数据的多级分类方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN106933818B (zh) | 2019-06-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111241241B (zh) | 基于知识图谱的案件检索方法、装置、设备及存储介质 | |
CN109241274B (zh) | 文本聚类方法及装置 | |
CN105095204B (zh) | 同义词的获取方法及装置 | |
CN103282902B (zh) | 字尾数组候选选择和索引数据结构 | |
CN110046298B (zh) | 一种查询词推荐方法、装置、终端设备及计算机可读介质 | |
WO2021227831A1 (zh) | 威胁情报的主题检测方法、装置和计算机存储介质 | |
CN111444330A (zh) | 提取短文本关键词的方法、装置、设备及存储介质 | |
CN112395395B (zh) | 文本关键词提取方法、装置、设备及存储介质 | |
CN108268539A (zh) | 基于文本分析的视频匹配系统 | |
CN105159938B (zh) | 检索方法和装置 | |
US20240160626A1 (en) | System and method for automatic creation of ontological databases and semantic searching | |
US9251289B2 (en) | Matching target strings to known strings | |
CN112148885B (zh) | 一种基于知识图谱的智能搜索方法及系统 | |
CN106933818A (zh) | 一种快速的多关键字文本匹配方法及装置 | |
CN109829151B (zh) | 一种基于分层狄利克雷模型的文本分割方法 | |
CN111460170B (zh) | 一种词语识别方法、装置、终端设备及存储介质 | |
CN102867049B (zh) | 一种基于单词查找树实现的汉语拼音快速分词方法 | |
CN105404677B (zh) | 一种基于树形结构的检索方法 | |
CN109522396B (zh) | 一种面向国防科技领域的知识处理方法及系统 | |
CN107844493A (zh) | 一种文件关联方法及系统 | |
GB2493587A (en) | Entity resolution system identifying non-distinct names in a set of names | |
CN111325030A (zh) | 文本标签构建方法、装置、计算机设备和存储介质 | |
US20180225382A1 (en) | System and method for automatic creation of ontological databases and semantic searching | |
CN111985212A (zh) | 文本关键字识别方法、装置、计算机设备及可读存储介质 | |
CN102722526B (zh) | 基于词性分类统计的重复网页和近似网页的识别方法 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |