CN107038230A - 一种基于后缀数组的短信查找方法及系统 - Google Patents

一种基于后缀数组的短信查找方法及系统 Download PDF

Info

Publication number
CN107038230A
CN107038230A CN201710224648.0A CN201710224648A CN107038230A CN 107038230 A CN107038230 A CN 107038230A CN 201710224648 A CN201710224648 A CN 201710224648A CN 107038230 A CN107038230 A CN 107038230A
Authority
CN
China
Prior art keywords
suffix array
short message
character
suffix
keyword
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
CN201710224648.0A
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.)
Sun Yat Sen University
SYSU CMU Shunde International Joint Research Institute
Original Assignee
Sun Yat Sen University
SYSU CMU Shunde International Joint Research Institute
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 Sun Yat Sen University, SYSU CMU Shunde International Joint Research Institute filed Critical Sun Yat Sen University
Priority to CN201710224648.0A priority Critical patent/CN107038230A/zh
Publication of CN107038230A publication Critical patent/CN107038230A/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/3331Query processing
    • 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/3331Query processing
    • G06F16/334Query execution
    • G06F16/3344Query execution using natural language analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/30Semantic analysis

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Artificial Intelligence (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • General Health & Medical Sciences (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明涉及一种基于后缀数组的短信查找方法,包括以下步骤:S1.为短信列表中的每条短信构建后缀数组,然后对构造得到的所有后缀数组中的各个后缀数组项进行排序;S2.当接收到一个查找短信的关键词时,按照接收字符的顺序,将接收到的关键词中的各个字符依次作为二分查找的索引;S3.使用关键词中的第i个字符作为索引在已排序的所有后缀数组项中进行二分查找,将首字符为该索引的后缀数组项对应的后缀数组作为第i次查找的结果;S4.令i=i+1然后使用关键词中的第i个字符作为索引在第i‑1次查找结果包含的后缀数组项中进行二分查找,然后将首字符为该索引的后缀数组项对应的后缀数组作为第i次查找的结果;S5.重复执行步骤S4直至第i>n,此时将第i次查找的结果对应的短信作为短信查找结果进行输出,n为关键词包含的字符数。

Description

一种基于后缀数组的短信查找方法及系统
技术领域
本发明涉及数据查找领域,更具体地,涉及一种基于后缀数组的短信查找方法及系统。
背景技术
后缀数组最初是作为后缀树的一种替代被提出的,与后缀树相比,存储后缀数组所需的空间更少,应用范围更广。在后缀数组被提出后,后缀数组作为一种重要的索引数据结构,被广泛的应用于生物信息学、全文索引、字符串匹配、频繁字符串挖掘以及顺序分析和聚类分析等领域。
目前,即时通讯设备一般都提供模糊查找短信的功能。模糊查找是指查找时不必以搜索目标的全称为关键词进行查找,而是可以以搜索目标的部分名称为关键词进行查找的过程。如何实现快速模糊查找短信对用户而言至关重要,尤其是当短信息数量越来越大时,会极大地影响用户的体验。现有的查找短信的方案是根据关键词对短信内容列表进行逐字符的多次遍历,文本的模式匹配多采用精确匹配的模式,这种模式在查找时需要耗费较长的时间。随着时间的推移,尤其是对模糊匹配的需求,这些技术都不太适合现实的需求。
发明内容
本发明为解决以上现有技术提供的短信查找方法耗时较长的缺陷,提供了一种基于后缀数组的短信查找方法。
为实现以上发明目的,采用的技术方案是:
一种基于后缀数组的短信查找方法,包括以下步骤:
S1.为短信列表中的每条短信根据其短信字符串内容构建后缀数组,然后按照预设的规则对构造得到的所有后缀数组中的各个后缀数组项进行排序;
S2.当接收到一个查找短信的关键词时,按照接收字符的顺序,将接收到的关键词中的各个字符依次作为二分查找的索引;
S3.使用关键词中的第i个字符作为索引在已排序的所有后缀数组项中进行二分查找,将首字符为该索引的后缀数组项对应的后缀数组作为第i次查找的结果;i的初始值为1;
S4.令i=i+1然后使用关键词中的第i个字符作为索引在第i-1次查找结果包含的后缀数组项中进行二分查找,然后将首字符为该索引的后缀数组项对应的后缀数组作为第i次查找的结果;
S5.重复执行步骤S4直至第i>n,此时将第i次查找的结果对应的短信作为短信查找结果进行输出,n为关键词包含的字符数。
上述方案中,本发明提供的方法具有查询速度快的特点,在进行查找时无需遍历每条短信,其查询效率高;尤其是当查询的关键词较长时,查找的速度提升明显。
优选地,所述步骤S1在对各个后缀数组项进行排序时,根据各个后缀数组项首字符的拼音首字母进行排序。
同时,本发明还提供了一种应用以上方法的系统,其具体的方案如下:
包括字符串读取模块、构造模块、排序模块和查找模块;
其中字符串读取模块用于读取短信列表中的每条短信的字符串内容;
构造模块用于为短信列表中的每条短信构建后缀数组;
排序模块用于对构造得到的所有后缀数组中的各个后缀数组项进行排序;
查找模块用于根据关键词在已排序的所有后缀数组项中进行二分查找,然后将查找得到的后缀数组项对应的后缀数组作为查找的结果。
与现有技术相比,本发明的有益效果是:
本发明提供的方法具有查询速度快的特点,在进行查找时无需遍历每条短信,其查询效率高;尤其是当查询的关键词较长时,查找的速度提升明显。
附图说明
图1为方法的流程示意图。
图2为系统的结构示意图。
具体实施方式
附图仅用于示例性说明,不能理解为对本专利的限制;
以下结合附图和实施例对本发明做进一步的阐述。
实施例1
如图1所示,本发明提供的方法包括以下步骤:
S1.为短信列表中的每条短信根据其短信字符串内容构建后缀数组,然后按照预设的规则对构造得到的所有后缀数组中的各个后缀数组项进行排序;
S2.当接收到一个查找短信的关键词时,按照接收字符的顺序,将接收到的关键词中的各个字符依次作为二分查找的索引;
S3.使用关键词中的第i个字符作为索引在已排序的所有后缀数组项中进行二分查找,将首字符为该索引的后缀数组项对应的后缀数组作为第i次查找的结果;i的初始值为1;
S4.令i=i+1然后使用关键词中的第i个字符作为索引在第i-1次查找结果包含的后缀数组项中进行二分查找,然后将首字符为该索引的后缀数组项对应的后缀数组作为第i次查找的结果;
S5.重复执行步骤S4直至第i>n,此时将第i次查找的结果对应的短信作为短信查找结果进行输出,n为关键词包含的字符数。
上述方案中,本发明提供的方法具有查询速度快的特点,在进行查找时无需遍历每条短信,其查询效率高;尤其是当查询的关键词较长时,查找的速度提升明显。
在具体的实施过程中,所述步骤S1在对各个后缀数组项进行排序时,根据各个后缀数组项首字符的拼音首字母进行排序。
实施例2
本实施例提供了一种应用实施例1方案的系统,如图2所示,其具体的方案如下:
包括字符串读取模块、构造模块、排序模块和查找模块;
其中字符串读取模块用于读取短信列表中的每条短信的字符串内容;
构造模块用于为短信列表中的每条短信构建后缀数组;
排序模块用于对构造得到的所有后缀数组中的各个后缀数组项进行排序;
查找模块用于根据关键词在已排序的所有后缀数组项中进行二分查找,然后将查找得到的后缀数组项对应的后缀数组作为查找的结果。
实施例3
本实施例为实施例1的方案的举例说明,如图2所示,其具体的流程如下:
步骤1、首先为两条短信的字符串内容进行后缀数组的构造,分别如表1,表2所示。
步骤2、为短信列表中的每个短信构造后缀数组后,按照预设的规则对构造得到的所有后缀数组中的各个后缀数组项进行排序。
此处所述规则为按首汉字的拼音首字母进行排序;得到表3的后缀数组的列表;
表3
步骤3、当接收到查找短信的关键词“吃*饭”(*代表任意字符)时,首先,根据用户输入的第一个字符“吃”,将该字符“吃”的拼音首字母“C”与表中后缀数组项“米饭”的首字符的拼音首字母“M”进行比较,确定字符“吃”的查找范围为“米饭”前面的后缀数组项,忽略“米饭”后面的后缀数组项。
步骤4、在“米饭”前面的后缀数组项中找到两个首字符为“吃”的后缀数组项“吃早点”和“吃米饭”,将“吃早点”所在的后缀数组和“吃米饭”所在的后缀数组作为本次查找的结果。
步骤5、然后,根据关键词中的下一个字符“饭”进行下一次查找,在上一次的查找结果的后缀数组中进行类似的查找,得到首字符为“饭”的后缀数组项“饭”,将该后缀数组项“饭”所在的数组作为本次查找的结果,由于字符“饭”为关键词中的最后一个字符,因此,该后缀数组对应的短信“吃米饭”就是查找到的短信。
显然,本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明权利要求的保护范围之内。

Claims (3)

1.一种基于后缀数组的短信查找方法,其特征在于:包括以下步骤:
S1.为短信列表中的每条短信根据其短信字符串内容构建后缀数组,然后按照预设的规则对构造得到的所有后缀数组中的各个后缀数组项进行排序;
S2.当接收到一个查找短信的关键词时,按照接收字符的顺序,将接收到的关键词中的各个字符依次作为二分查找的索引;
S3.使用关键词中的第i个字符作为索引在已排序的所有后缀数组项中进行二分查找,将首字符为该索引的后缀数组项对应的后缀数组作为第i次查找的结果;i的初始值为1;
S4.令i=i+1然后使用关键词中的第i个字符作为索引在第i-1次查找结果包含的后缀数组项中进行二分查找,然后将首字符为该索引的后缀数组项对应的后缀数组作为第i次查找的结果;
S5.重复执行步骤S4直至第i>n,此时将第i次查找的结果对应的短信作为短信查找结果进行输出,n为关键词包含的字符数。
2.根据权利要求1所述的基于后缀数组的短信查找方法,其特征在于:所述步骤S1在对各个后缀数组项进行排序时,根据各个后缀数组项首字符的拼音首字母进行排序。
3.一种根据权利要求1或2所述方法的系统,其特征在于:包括字符串读取模块、构造模块、排序模块和查找模块;
其中字符串读取模块用于读取短信列表中的每条短信的字符串内容;
构造模块用于为短信列表中的每条短信构建后缀数组;
排序模块用于对构造得到的所有后缀数组中的各个后缀数组项进行排序;
查找模块用于根据关键词在已排序的所有后缀数组项中进行二分查找,然后将查找得到的后缀数组项对应的后缀数组作为查找的结果。
CN201710224648.0A 2017-04-07 2017-04-07 一种基于后缀数组的短信查找方法及系统 Pending CN107038230A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710224648.0A CN107038230A (zh) 2017-04-07 2017-04-07 一种基于后缀数组的短信查找方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710224648.0A CN107038230A (zh) 2017-04-07 2017-04-07 一种基于后缀数组的短信查找方法及系统

Publications (1)

Publication Number Publication Date
CN107038230A true CN107038230A (zh) 2017-08-11

Family

ID=59534823

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710224648.0A Pending CN107038230A (zh) 2017-04-07 2017-04-07 一种基于后缀数组的短信查找方法及系统

Country Status (1)

Country Link
CN (1) CN107038230A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108664459A (zh) * 2018-03-22 2018-10-16 佛山市顺德区中山大学研究院 一种后缀数组自适应的合并方法及其装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103902599A (zh) * 2012-12-27 2014-07-02 北京新媒传信科技有限公司 模糊查找的方法和装置
CN105653567A (zh) * 2014-12-04 2016-06-08 南京理工大学常熟研究院有限公司 一种文本序列数据中快速查找特征字符串的方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103902599A (zh) * 2012-12-27 2014-07-02 北京新媒传信科技有限公司 模糊查找的方法和装置
CN105653567A (zh) * 2014-12-04 2016-06-08 南京理工大学常熟研究院有限公司 一种文本序列数据中快速查找特征字符串的方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108664459A (zh) * 2018-03-22 2018-10-16 佛山市顺德区中山大学研究院 一种后缀数组自适应的合并方法及其装置
CN108664459B (zh) * 2018-03-22 2021-09-17 佛山市顺德区中山大学研究院 一种后缀数组自适应的合并方法及其装置

Similar Documents

Publication Publication Date Title
Rathi et al. Sentiment analysis of tweets using machine learning approach
CN103198079B (zh) 相关搜索的实现方法和装置
CN103488724B (zh) 一种面向图书的阅读领域知识图谱构建方法
CN110019647B (zh) 一种关键词搜索方法、装置和搜索引擎
US11514063B2 (en) Method and apparatus of recommending information based on fused relationship network, and device and medium
US8756231B2 (en) Search using proximity for clustering information
US8533203B2 (en) Identifying synonyms of entities using a document collection
CN111868710B (zh) 搜索大规模非结构化数据的随机提取森林索引结构
CN108874996B (zh) 网站分类方法及装置
CN111801665B (zh) 用于大数据应用的分层局部敏感哈希(lsh)分区索引
CN108804642A (zh) 检索方法、装置、计算机设备及存储介质
CN110807101A (zh) 一种科技文献大数据分类方法
CN103412858B (zh) 用于文本或网络内容分析的大规模特征匹配的方法
CN101295319A (zh) 一种扩展查询的方法、装置及搜索引擎系统
CN108369497B (zh) 在示例编程中从输入模式中进行学习
CN102236706B (zh) 一种海量中文文件名快速模糊拼音查询方法
CN105302332A (zh) 一种拼音输入法及其实现装置
CN104008119B (zh) 一种一对多的混合字符串融合比对方法
CN103902599B (zh) 模糊查找的方法和装置
US20170083610A1 (en) Method and an apparatus for fast merging inverted chains
CN108446307A (zh) 一种多标签图像的二值向量生成方法及图像语义相似度查询方法
EP3955256A1 (en) Non-redundant gene clustering method and system, and electronic device
CN110083683A (zh) 基于随机游走的实体语义标注方法
CN107038230A (zh) 一种基于后缀数组的短信查找方法及系统
CN107679122B (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
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20170811