CN107038230A - 一种基于后缀数组的短信查找方法及系统 - Google Patents
一种基于后缀数组的短信查找方法及系统 Download PDFInfo
- 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
- array clustering
- character
- clustering
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 18
- 238000010276 construction Methods 0.000 claims description 7
- 235000013399 edible fruits Nutrition 0.000 claims 1
- 241000209094 Oryza Species 0.000 description 7
- 235000007164 Oryza sativa Nutrition 0.000 description 7
- 235000009566 rice Nutrition 0.000 description 7
- 235000012054 meals Nutrition 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 2
- 238000012300 Sequence Analysis Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000005065 mining Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000009958 sewing Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
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
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/30—Semantic 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所述方法的系统,其特征在于:包括字符串读取模块、构造模块、排序模块和查找模块;
其中字符串读取模块用于读取短信列表中的每条短信的字符串内容;
构造模块用于为短信列表中的每条短信构建后缀数组;
排序模块用于对构造得到的所有后缀数组中的各个后缀数组项进行排序;
查找模块用于根据关键词在已排序的所有后缀数组项中进行二分查找,然后将查找得到的后缀数组项对应的后缀数组作为查找的结果。
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108664459A (zh) * | 2018-03-22 | 2018-10-16 | 佛山市顺德区中山大学研究院 | 一种后缀数组自适应的合并方法及其装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103902599A (zh) * | 2012-12-27 | 2014-07-02 | 北京新媒传信科技有限公司 | 模糊查找的方法和装置 |
CN105653567A (zh) * | 2014-12-04 | 2016-06-08 | 南京理工大学常熟研究院有限公司 | 一种文本序列数据中快速查找特征字符串的方法 |
-
2017
- 2017-04-07 CN CN201710224648.0A patent/CN107038230A/zh active Pending
Patent Citations (2)
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)
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 |
---|---|---|
US9864808B2 (en) | Knowledge-based entity detection and disambiguation | |
Kaleel et al. | Cluster-discovery of Twitter messages for event detection and trending | |
RU2632133C2 (ru) | Способ (варианты) и система (варианты) создания модели прогнозирования и определения точности модели прогнозирования | |
KR101465770B1 (ko) | 단어 확률 결정 | |
CN100452042C (zh) | 数字串模糊匹配的方法 | |
CN104408191B (zh) | 关键词的关联关键词的获取方法和装置 | |
CN106033416A (zh) | 一种字符串处理方法及装置 | |
CN101950312B (zh) | 一种互联网网页内容解析方法 | |
CN110019647A (zh) | 一种关键词搜索方法、装置和搜索引擎 | |
CN110929125A (zh) | 搜索召回方法、装置、设备及其存储介质 | |
US20140081982A1 (en) | Method and Computer for Indexing and Searching Structures | |
CN113434636A (zh) | 基于语义的近似文本搜索方法、装置、计算机设备及介质 | |
CN110516118A (zh) | 一种字符串匹配方法、设备及计算机存储介质 | |
CN104281275B (zh) | 一种英文的输入方法和装置 | |
CN105404677A (zh) | 一种基于树形结构的检索方法 | |
CN102541901A (zh) | 一种文档阅读时的信息识别输出方法及系统 | |
CN103500222A (zh) | 通信软件聊天对象的搜索方法及装置 | |
CN107038230A (zh) | 一种基于后缀数组的短信查找方法及系统 | |
Li et al. | A Novel Approach for Protein‐Named Entity Recognition and Protein‐Protein Interaction Extraction | |
Yin et al. | Content‐Based Image Retrial Based on Hadoop | |
CN105426490A (zh) | 一种基于树形结构的索引方法 | |
CN102521418A (zh) | 用于存储拼音的存储结构及拼音输入方法 | |
Matsuoka et al. | Examination of effective features for CRF-based bibliography extraction from reference strings | |
Tabarcea et al. | Framework for location-aware search engine | |
EP2638481A1 (en) | Seed set expansion |
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: 20170811 |
|
RJ01 | Rejection of invention patent application after publication |