CN102184245A - 一种海量文本数据关键词的快速查找方法 - Google Patents
一种海量文本数据关键词的快速查找方法 Download PDFInfo
- Publication number
- CN102184245A CN102184245A CN 201110129111 CN201110129111A CN102184245A CN 102184245 A CN102184245 A CN 102184245A CN 201110129111 CN201110129111 CN 201110129111 CN 201110129111 A CN201110129111 A CN 201110129111A CN 102184245 A CN102184245 A CN 102184245A
- Authority
- CN
- China
- Prior art keywords
- keyword
- text
- data structure
- pos
- hash
- 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
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了数据检索技术领域中的一种海量文本数据关键词的快速查找方法。所述方法包括:设定关键词;对设定的关键词进行预处理,生成第一哈希数据结构和第二哈希数据结构;对文本进行扫描,获取其中的关键词。本发明将字符转换为数值,而后利用哈希数据结构进行关键词定位查找,提高了海量文本数据查找的速度,节省了计算资源。
Description
技术领域
本发明属于数据检索技术领域,尤其涉及一种海量文本数据关键词的快速查找方法。
背景技术
随着互联网的普及和WEB2.0技术的兴起,用户生成内容开始充斥着互联网,而移动互联网的蓬勃兴起将加速这一趋势。每个人都可以方便的发布自己的观点,互联网已经成为最有影响力的新媒体,但是带来的问题是恶意的人会发布非法的内容,比如政治、色情的内容。
为了净化互联网,有必要对用户生成内容进行审查,但是在每个人都可以方便的产生内容的情况下,人工审核显然不可能,工作量太大。一个可行的方法是维护一份词表,包含非法内容的核心关键词或短语,称为关键词表。使用程序来查找用户生成内容的关键词,这样仍然需要极大的计算能力,本发明提出一种新的实现快速扫描关键词的方法。
发明内容
本发明的目的在于,提供一种海量文本数据关键词的快速查找方法,用以在海量文本数据快速查找关键词。
为了上述目的,本发明提出的技术方案是,一种海量文本数据关键词的快速查找方法,其特征是所述方法包括:
步骤1:设定关键词;
步骤2:对设定的关键词进行预处理,生成第一哈希数据结构和第二哈希数据结构;
步骤3:对文本进行扫描,获取其中的关键词。
所述步骤2具体包括如下步骤:
步骤21:取每个关键词的第一个字符,计算所述字符的哈希值;
步骤22:建立所述哈希值到关键词长度的映射,记为第一映射;
步骤23:将第一映射装载到哈希数据结构中,从而生成第一哈希数据结构;
步骤24:将长度相同的关键词放入同一个集合中,记为同长度关键词集合;
步骤25:建立关键词长度到同长度关键词集合的映射,记为第二映射;
步骤26:将第二映射装载到哈希数据结构中,从而生成第二哈希数据结构。
所述步骤3具体包括:
步骤31:设定文本中字符串的位置为pos,且pos=1;
步骤32:取文本中的第pos个位置的字符并计算其哈希值;
步骤33:判断第一哈希数据结构中,是否找到计算出的哈希值,如果是,则执行步骤34;否则,执行步骤38;
步骤34:根据计算出的哈希值,找到与其对应的关键词长度;
步骤35:针对每个关键词长度,从第pos个位置开始,向后截取与关键词长度相等的子串;
步骤36:判断第二哈希数据结构中,是否找到截取的子串,如果是,则执行步骤37;否则,执行步骤38;
步骤37:截取的子串就是要查找的关键词;
步骤38:判断第pos个位置是否是文本的最后一个字符位置,如果是,则执行步骤39;否则,令pos=pos+1,返回步骤32;
步骤39:查找结束。
本发明提升了在海量文本数据中查找给定关键词表的速度,节省计算资源。
附图说明
图1是海量文本数据关键词的快速查找方法流程图;
图2是对设定的关键词进行预处理流程图;
图3是第一映射表;
图4是第二映射表;
图5是对文本进行扫描并获取其中的关键词流程图。
具体实施方式
下面结合附图,对优选实施例作详细说明。应该强调的是,下述说明仅仅是示例性的,而不是为了限制本发明的范围及其应用。
实施例
设定本实施例中给出的文本包含的字符串是“She enters into the garden forplanting”。
图1是海量文本数据关键词的快速查找方法流程图,图1中,本发明提供的方法包括:
步骤1:设定关键词。
关键词根据实际需要设定。在本发明中,设定关键词包括“enter”、“plant”、“come”、“go”和“enhance”。本发明就是在上述文本字符串中查找这几个关键词。
步骤2:对设定的关键词进行预处理,生成第一哈希数据结构和第二哈希数据结构。
图2是对设定的关键词进行预处理流程图,图2中,针对设定的上述5个关键词的预处理过程是:
步骤21:取每个关键词的第一个字符,计算所述字符的哈希值。
本步骤的目的是为了将关键词的第一个字符转换为整数数值。将字符转换成整数摘要的算法有很多,在本实施例中,将字符在英文字母表中的位置,作为该字符的整数数值,即哈希值。如字符“a”的哈希值为1,字符“b”的哈希值为2,依次类推。
根据上述计算规则,步骤1设定的关键词“enter”、“plant”、“come”、“go”和“enhance”的第一个字符的哈希值分别为5、16、3、7和5。
步骤22:建立所述哈希值到关键词长度的映射,记为第一映射。
步骤1设定的关键词“enter”、“plant”、“come”、“go”和“enhance”的长度分别为5、5、4、2和7。
建立哈希值到关键词长度的映射形成的映射表如图3所示。
步骤23:将第一映射装载到哈希数据结构中,从而生成第一哈希数据结构。
步骤24:将长度相同的关键词放入同一个集合中,记为同长度关键词集合。
在设定的关键词“enter”、“plant”、“come”、“go”和“enhance”中,“enter”和“plant”的长度相同,均为5,因此将“enter”和“plant”放入同一个集合{enter,plant}中,该集合为同长度关键词集合。
步骤25:建立关键词长度到同长度关键词集合的映射,记为第二映射。第二映射表如图4所示。
步骤26:将第二映射装载到哈希数据结构中,从而生成第二哈希数据结构。
步骤3:对文本进行扫描,获取其中的关键词。
图5是对文本进行扫描并获取其中的关键词流程图。图5中,对文本进行扫描并获取其中的关键词包括:
步骤31:设定文本中字符串的位置为pos,且pos=1。
步骤32:取文本中的第pos个位置的字符并计算其哈希值。
步骤33:判断第一哈希数据结构中,是否找到计算出的哈希值,如果是,则执行步骤34;否则,执行步骤38。
步骤34:根据计算出的哈希值,找到与其对应的关键词长度。
步骤35:针对每个关键词长度,从第pos个位置开始,向后截取与关键词长度相等的子串。
步骤36:判断第二哈希数据结构中,是否找到截取的子串,如果是,则执行步骤37;否则,执行步骤38。
步骤37:截取的子串就是要查找的关键词。
步骤38:判断第pos个位置是否是文本的最后一个字符位置,如果是,则执行步骤39;否则,令pos=pos+1,返回步骤32。
步骤39:查找结束。
为了使步骤3的过程更加清晰,本发明针对文本“She enters into the garden for planting”,以pos=1、pos=5和pos=32是为例进行说明,其他位置的扫描过程于此相同。
当pos=1时,上述文本的第1个位置的字符为“S”,其哈希值为19。由于该数值不在第一哈希数据结构中(可参见图3的第一映射表),则执行步骤38,即判断第1个位置是否是文本的最后一个字符位置,显然它不是最后一个位置,则令pos=pos+1=2,从文本的第2个位置继续扫描。
当pos=5时,上述文本的第5个位置的字符为“e”(空格也算1个字符位置),其哈希值为5。由于该数值在第一哈希数据结构中,因此在第一哈希数据结构中找到与其对应的关键词长度分别为5和7。针对关键词长度5和7,从第pos=5个位置开始,向后截取与关键词长度相等的子串,即从第5个位置向后分别截取5个子串和7个子串,分别得到“enter”和“enter”。由于第二哈希数据结构中存在截取的子串“enter”,则“enter”就是查找到的关键词。再判断第5个位置不是文本的最后一个字符位置,则令pos=pos+1=6,从文本的第6个位置继续扫描。
当pos=32时,上述文本的第32个位置的字符为“p”,其哈希值为16。由于该数值存在于第一哈希数据结构中,因此在第一哈希数据结构中找到与其对应的关键词长度分别为5。针对关键词长度5,从第pos=32个位置开始,向后截取与关键词长度相等的子串,即从第32个位置向后分别截取5个子串,得到“plant”。由于第二哈希数据结构中存在截取的子串“plant”,则“plant”就是查找到的关键词。再判断第32个位置不是文本的最后一个字符位置,则令pos=33,从文本的第33个位置继续扫描。
经过上述步骤,从文本“She enters into the garden for planting”中找出了两个关键词,分别为“enter”和“plant”。
本发明将字符转换为数值,而后利用哈希数据结构进行定位查找。由于哈希数据结构查找的时间复杂度为o(1),因此本发明大大提升了海量文本数据查找的速度,节省了计算资源。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。
Claims (3)
1.一种海量文本数据关键词的快速查找方法,其特征是所述方法包括:
步骤1:设定关键词;
步骤2:对设定的关键词进行预处理,生成第一哈希数据结构和第二哈希数据结构;
步骤3:对文本进行扫描,获取其中的关键词。
2.根据权利要求1所述的一种海量文本数据关键词的快速查找方法,其特征是所述步骤2具体包括如下步骤:
步骤21:取每个关键词的第一个字符,计算所述字符的哈希值;
步骤22:建立所述哈希值到关键词长度的映射,记为第一映射;
步骤23:将第一映射装载到哈希数据结构中,从而生成第一哈希数据结构;
步骤24:将长度相同的关键词放入同一个集合中,记为同长度关键词集合;
步骤25:建立关键词长度到同长度关键词集合的映射,记为第二映射;
步骤26:将第二映射装载到哈希数据结构中,从而生成第二哈希数据结构。
3.根据权利要求2所述的一种海量文本数据关键词的快速查找方法,其特征是所述步骤3具体包括:
步骤31:设定文本中字符串的位置为pos,且pos=1;
步骤32:取文本中的第pos个位置的字符并计算其哈希值;
步骤33:判断第一哈希数据结构中,是否找到计算出的哈希值,如果是,则执行步骤34;否则,执行步骤38;
步骤34:根据计算出的哈希值,找到与其对应的关键词长度;
步骤35:针对每个关键词长度,从第pos个位置开始,向后截取与关键词长度相等的子串;
步骤36:判断第二哈希数据结构中,是否找到截取的子串,如果是,则执行步骤37;否则,执行步骤38;
步骤37:截取的子串就是要查找的关键词;
步骤38:判断第pos个位置是否是文本的最后一个字符位置,如果是,则执行步骤39;否则,令pos=pos+1,返回步骤32;
步骤39:查找结束。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201110129111 CN102184245B (zh) | 2011-05-18 | 2011-05-18 | 一种海量文本数据关键词的快速查找方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201110129111 CN102184245B (zh) | 2011-05-18 | 2011-05-18 | 一种海量文本数据关键词的快速查找方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102184245A true CN102184245A (zh) | 2011-09-14 |
CN102184245B CN102184245B (zh) | 2013-03-06 |
Family
ID=44570422
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 201110129111 Expired - Fee Related CN102184245B (zh) | 2011-05-18 | 2011-05-18 | 一种海量文本数据关键词的快速查找方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102184245B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103885964A (zh) * | 2012-12-20 | 2014-06-25 | 北京新媒传信科技有限公司 | 一种内容审核方法和系统 |
CN106484730A (zh) * | 2015-08-31 | 2017-03-08 | 北京国双科技有限公司 | 字符串匹配方法和装置 |
CN107798004A (zh) * | 2016-08-29 | 2018-03-13 | 南京中兴新软件有限责任公司 | 关键词查找方法、装置及终端 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090063452A1 (en) * | 2007-08-29 | 2009-03-05 | Google Inc. | Search filtering |
CN101425084A (zh) * | 2008-11-20 | 2009-05-06 | 上海交通大学 | 基于有序二叉树的模式匹配方法 |
CN101464899A (zh) * | 2009-01-13 | 2009-06-24 | 阿里巴巴集团控股有限公司 | 低误查率的大规模词典存储方法及查询方法 |
-
2011
- 2011-05-18 CN CN 201110129111 patent/CN102184245B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090063452A1 (en) * | 2007-08-29 | 2009-03-05 | Google Inc. | Search filtering |
CN101425084A (zh) * | 2008-11-20 | 2009-05-06 | 上海交通大学 | 基于有序二叉树的模式匹配方法 |
CN101464899A (zh) * | 2009-01-13 | 2009-06-24 | 阿里巴巴集团控股有限公司 | 低误查率的大规模词典存储方法及查询方法 |
Non-Patent Citations (2)
Title |
---|
《四川大学学报(工程科学版)》 20070531 王艳秋,兰巨龙 基于Wu-Manber的快速跳跃多模式匹配算法 68-63 第39卷, * |
《计算机应用研究》 20110430 王培凤,李莉 基于Aho-Corasick算法的多模式匹配算法研究 1251-1259 第28卷, 第4期 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103885964A (zh) * | 2012-12-20 | 2014-06-25 | 北京新媒传信科技有限公司 | 一种内容审核方法和系统 |
CN106484730A (zh) * | 2015-08-31 | 2017-03-08 | 北京国双科技有限公司 | 字符串匹配方法和装置 |
CN107798004A (zh) * | 2016-08-29 | 2018-03-13 | 南京中兴新软件有限责任公司 | 关键词查找方法、装置及终端 |
CN107798004B (zh) * | 2016-08-29 | 2022-09-30 | 中兴通讯股份有限公司 | 关键词查找方法、装置及终端 |
Also Published As
Publication number | Publication date |
---|---|
CN102184245B (zh) | 2013-03-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Gottipati et al. | Linking entities to a knowledge base with query expansion | |
Sterckx et al. | Topical word importance for fast keyphrase extraction | |
CN108256063B (zh) | 一种面向网络安全的知识库构建方法 | |
CN104408191B (zh) | 关键词的关联关键词的获取方法和装置 | |
CN106777343A (zh) | 增量分布式索引系统和方法 | |
CN102867049B (zh) | 一种基于单词查找树实现的汉语拼音快速分词方法 | |
CN103092860B (zh) | 搜索提示信息生成方法及装置 | |
Guo et al. | Improving candidate generation for entity linking | |
CN104391923A (zh) | 一种查询数据集的方法及装置 | |
CN102184245B (zh) | 一种海量文本数据关键词的快速查找方法 | |
Bian et al. | Research on multi-document summarization based on LDA topic model | |
CN107025263A (zh) | 用于数据库语句的语句解析方法 | |
CN102999495B (zh) | 一种同义词语义映射关系确定方法及装置 | |
CN109271560A (zh) | 一种基于树模板的链接数据关键词查询方法 | |
CN103336765A (zh) | 一种文本关键词的马尔可夫矩阵离线修正方法 | |
CN105512226A (zh) | 一种查询优化方法及装置 | |
Pujara et al. | Reducing label cost by combining feature labels and crowdsourcing | |
CN102253983A (zh) | 一种汉语高危词识别方法和系统 | |
JP6495206B2 (ja) | 文書概念ベース生成装置、文書概念検索装置、方法、及びプログラム | |
JP5162215B2 (ja) | データ処理装置、データ処理方法、および、プログラム | |
CN104778247A (zh) | 一种基于给定数据资源的信息检索方法及装置 | |
Wan et al. | Query expansion approach based on ontology and local context analysis | |
Ma et al. | Opening machine translation black box for cross-language information retrieval | |
Tseng et al. | Keen-means: A web page clustering tool based on an self-adjustable k-means algorithm | |
JP2018206189A (ja) | 情報収集装置、および、情報収集方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20130306 Termination date: 20150518 |
|
EXPY | Termination of patent right or utility model |